|
|
Ten artykuł od 2010-05 wymaga uzupełnienia źródeł podanych informacji.
Informacje nieweryfikowalne potrafią zostać zakwestionowane oraz usunięte.
Aby uczynić artykuł weryfikowalnym, trzeba podać przypisy do materiałów opublikowanych w wiarygodnych źródłach. |
Pascal – dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego poziomu, ogólnego zastosowania, oparty na języku Algol. Został opracowany przez Niklausa Wirtha w 1970 roku. Nazwa języka pochodzi od nazwiska francuskiego fizyka, matematyka oraz filozofa Blaise Pascala.potrzebne źródło
Pierwszy opis języka Wirth zawarł w The programming language Pascal, Acta Informatica 1/1971, a kolejny, poprawiony w The programming language Pascal (Revised Report), Bericht der Fachrgruppe Computer – Wissenschaften 5/1972. Pierwszym podręcznikiem języka Pascal była pozycja Jensen, Wirth, Pascal, User Manual and Report 1974.
Pierwotnie służył celom edukacyjnym do nauki programowania strukturalnegopotrzebne źródło. Popularność Pascala w Polsce była większa niż w innych krajach ze względu na dostępność kompilatorów w pirackich wersjach (zanim ukazało się prawo ochrony własności intelektualnej), prostotę języka oraz jego popularyzację przez wyższe uczelnie. Szczyt popularności tego języka przypadł na lata 80. oraz początek 90 XX wieku. Wraz ze zniesieniem ograniczeń COCOM, upowszechnieniem się sieci oraz systemu Unix (następnie Linuksa) stopniowo stał się wyparty przez C oraz C++.
Jedną z popularniejszych implementacji kompilatorów tego języka był produkt firmy Borland International – Turbo Pascal. W chwili obecnej nader mocno rozpowszechnionym obiektowym dialektem języka Pascal jest Object Pascal, który stanowi podstawę dla takich języków jak Delphi, Delphi.NET, Oxygene
Istnieją wolne kompilatory Pascala, dla przykładu Free Pascal, a także bazujące na nim, wolne środowisko IDE jak Lazarus.
Pascal jako narzędzie programisty
Dla poniektórych programistów pewne cechy Pascala wykluczają jego zastosowanie w poważnych projektach oraz są powodem krytyki tego języka. Wedle nich powinien zostać zaledwie narzędziem do nauki programowania. Jednak w latach 80. oraz 90. w języku tym powstawało tysiące aplikacji (również komercyjnych).
Zalety Pascala – czytelność kodu, rygorystyczna kontrola typów danych, wraz z pojawieniem się C zostały uznane za mało istotne. Wypromowanym przez C standardem stała się zwięzłość kodu:
Porównanie wybranych elementów składni języków Pascal oraz C++
|
Pascal |
C++ |
| blok |
begin
end;
|
{
}
|
| działania arytmetyczne |
Inc (a,5);
Inc (a);
Dec (a);
c := 5; b := 5; a := 5;
|
a += 5;
a++;
a--;
a = b = c = 5;
|
| pętla z licznikiem |
for i:=1 to 10 do
begin
end;
|
for (i=1; i<=10; ++i)
{
}
|
| pętla z warunkiem |
while W = 5 do
begin
end;
|
while (W == 5)
{
}
|
| pętla nieskończona |
while true do
begin
end;
repeat
until false;
|
while (true)
{
}
do {
} while (!false)
|
Pascal bardzo rygorystycznie podchodzi do kontroli typów, tj. sprawdza czy do zmiennej typu A nie próbuje się przypisać wartości typu B. Jest zatem językiem silnie typowanym.
Popularność Pascala wzrosła z pojawieniem się Delphi – środowiska programistycznego, opartego na obiektowym Pascalu, pozwalającego na błyskawiczne wykonywanie atrakcyjnych wizualnie aplikacji pod Windows. Wraz z pojawieniem się biblioteki windows dla C++ oraz narzędzi do automatycznego tworzenia GUI, Pascal znów stracił na znaczeniu.
Przykładowy program
Najprostszy formalnie poprawny program (wypisujący tekst):
begin
writeln('Hello World');
end.
Obliczanie n–tego wyrazu ciągu Fibonacciego:
program fibonacci;
var
i, liczba: word;
a, b, c: longint;
begin
writeln('Podaj, ktora liczbe z ciagu Fibonacciego chcesz zobaczyc: ');
readln(liczba);
a := 1;
b := 1;
if liczba <= 2 then
writeln('Wynik: ', a)
else
begin
for oraz := 3 to liczba do
begin
c := a+b;
a := b;
b := c;
end;
writeln('Wynik: ', c);
end;
end.
Funkcja obliczająca liczbę w ciągu Fibonacciego metodą rekurencyjną.
function fibonacci(nr: integer): integer;
begin
if (nr = 1) or (nr = 2) then
fibonacci := 1
else
fibonacci := fibonacci(nr-1) + fibonacci(nr-2);
end;
Oto przykład innego programu napisanego w Pascalu. Wylicza on miejsca zerowe funkcji kwadratowej.
program funkcja;
var
delta , x1 , x2: real;
a, b, c: real;
begin
writeln('Podaj wspolczynniki a, b, c trojmianu kwadratowego: ');
readln(a, b, c);
if a = 0 then
writeln('TO NIE JEST FUNKCJA KWADRATOWA')
else
begin
delta := (b * b) - (4 * a * c);
writeln('Delta = ', delta);
if delta < 0 then
writeln('BRAK MIEJSC ZEROWYCH FUNKCJI ! (w zbiorze liczb rzeczywistych)')
else
if delta > 0 then
begin
x1 := ((- b) - sqrt(delta)) / (2 * a);
x2 := ((- b) + sqrt(delta)) / (2 * a);
writeln('X1 = ' , x1);
writeln('X2 = ' , x2);
end
else
begin
x1 := (- b) / (2 * a);
writeln('X1 = ' , x1);
end;
end;
end.
Program oblicza silnię dowolnej liczby naturalnej n (w praktyce dowolność ta ograniczona jest zakresem danych typu integer).
program silnia_liczby;
var
n: integer;
function silnia(n: integer): integer;
begin
if n = 0 then
silnia := 1
else
silnia := n * silnia(n-1);
end;
begin
writeln('Program oblicza silnie z dowolnej liczby');
write('Podaj liczbe: ');
readln(n);
writeln(n,'! = ',silnia(n));
end.
Program sortujący tablicę liczb metodą bąbelkową.
program sortowanie;
const
zakres = 99;
var
Liczby: array 1..zakres of integer;
i, j, k, n: integer;
procedure czytaj;
begin
writeln('Program sortuje dane metoda babelkowa');
write('Podaj ilosc liczb: ');
read(n);
for oraz := 1 to n do
begin
write('Liczba ',i,' = ');
read(Liczbyi);
end;
end;
procedure pisz;
begin
writeln('Oto posegregowane elementy:');
for oraz := 1 to n do
write(liczbyi,' ');
readln;
end;
begin
czytaj;
for oraz := 2 to n do
begin
for j := n downto oraz do
begin
if Liczbyj-1 > Liczbyj then
begin
k := liczbyj-1;
Liczbyj-1:=Liczbyj;
Liczbyj:=k;
end;
end;
end;
pisz;
readln;
end.
Program symulujący kostkę do gry:
program kostka;
uses
crt;
var
kost: integer;
znak: string;
begin
randomize;
repeat
clrscr;
write ('Ilu scienna kostka chcesz grac ?:');
readln(kost);
if (kost < 4) then
begin
writeln('Kostka musi miec min 4 sciany');
readln;
end;
until (kost >= 4);
clrscr;
repeat
write('Wylosowano : ');
write(random(kost)+1);
writeln(' aby zakonczyc wcisnij "q"');
readln(znak);
until (znak =' q') or (znak = 'Q');
end.
Bibliografia
- Michał Iglewski, Jan Madey, Stanisław Matwin, Pascal. Język wzorcowy – Pascal 360., Wydawnictwa Naukowo-Techniczne, Warszawa 1984, wydanie trzecie – zmienione, Seria: Biblioteka Inżynierii Oprogramowania, ISBN 83-204-0597-1,
- Andrzej Marciniak, Borland Pascal 7.0, Wyd. Nakom, Poznań 1994 r., ISBN 83-85060-53-7, ISSN 0867-6011,
Sprawdź też
Linki zewnętrzne