Pascal (język programowania)

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Pascaljęzyk programowania wysokiego poziomu opracowany przez Niklausa Wirtha w 1970 roku.

Historia[edytuj | edytuj kod]

Nazwa języka ma pochodzić od nazwiska francuskiego fizyka, matematyka i filozofa Blaise Pascala[potrzebne źródło].

Pascal jako język programowania pojawił się stosunkowo późno (Fortran, Cobol i IBM PL/1 pojawiły się już we wczesnych latach sześćdziesiątych). Niklaus Wirth miał zacząć tworzyć Pascala w 1968, a pierwsza implementacja tego języka miała nastąpić w 1970 w serii komputerów CDC 6000. Korzenie języka mają sięgać linii języków programowania Algol-60 i Algol-W. W przeciwieństwie do języka C który został stworzony jako język programowania wysokiego poziomu ale zapewniający ciągle dostęp niskopoziomowy jak języki asemblera, Pascal został stworzony przede wszystkim jako język do tworzenia strukturalnych aplikacji. 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. W 1977 Wirth zarzucił pracę nad Pascalem na rzec Modula. W 1982 pojawił się ISO Pascal. Mniej więcej w tym samym czasie pojawił się Compas Pascal stworzony przez Andersa Hajlsberga. Poźniej produkt ten został przebudowany i przemianowany na PolyPascal przez firmę PolyData A/S (początkowo firma ta należała do Hajlsberga, który sprzedał ją później Borlandowi). W listopadzie 1983 pojawił się Turbo Pascal od firmy Borland, który do 1987 osiągnął wersję 4. Turbo Pascal jako środowisko programistyczne wyróżniał się wówczas na tle konkurencji szybkością kompilacji i uruchomienia[1].

Pierwotnie Pascal służył celom edukacyjnym do nauki programowania strukturalnego[potrzebne ź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 pojawił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. i początek 90 XX wieku. Wraz ze zniesieniem ograniczeń COCOM, upowszechnieniem się sieci oraz systemu Unix (następnie Linuksa) stopniowo został wyparty przez C i C++.

Jedną z popularniejszych implementacji kompilatorów tego języka był produkt firmy Borland InternationalTurbo Pascal. W chwili obecnej dość 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, na przykład Free Pascal, a także bazujące na nim, wolne środowiska IDE jak Lazarus.

Pascal jako narzędzie programisty[edytuj | edytuj kod]

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 znacznie wzrosła z pojawieniem się Delphi – środowiska programistycznego, opartego na obiektowym Pascalu, pozwalającego na błyskawiczne tworzenie atrakcyjnych wizualnie aplikacji pod Windows.

Porównanie wybranych elementów składni języków Pascal i 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)

Przykładowe programy[edytuj | edytuj kod]

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 i := 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 i := 1 to n do 
  begin
    write('Liczba ',i,' = '); 
    read(Liczby[i]);
  end;
end;
 
procedure pisz;
begin
  writeln('Oto posegregowane elementy:');
  for i := 1 to n do 
    write(liczby[i],' ');
  readln;
end;
 
begin
  czytaj;
  for i := 2 to n do 
  begin
    for j := n downto i do 
    begin
      if Liczby[j-1] > Liczby[j] then 
      begin
        k := liczby[j-1];
        Liczby[j-1]:=Liczby[j];
        Liczby[j]:=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.

Przypisy

  1. Neil Moffatt: DelphiBasics - Krótka historia Borland Delphi (ang.). [dostęp 17.06.2014].

Bibliografia[edytuj | edytuj kod]

  1. 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,
  2. Andrzej Marciniak, Borland Pascal 7.0, Wyd. Nakom, Poznań 1994 r., ISBN 83-85060-53-7, ISSN 0867-6011,

Zobacz też[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]

Wikibooks-logo.svg
Zobacz publikację na Wikibooks:
Object Pascal