See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Pascal (język programowania) - Wikipedia, wolna encyklopedia

Pascal (język programowania)

Z Wikipedii

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 i filozofa Blaise Pascala.

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 strukturalnego. 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 osadzony w Delphi oraz Kyliksie (również wyprodukowanych przez Borland International).

Istnieją wolne kompilatory Pascala, na przykład Free Pascal, a także wolne środowisko IDE jak Lazarus.

[edytuj] Pascal jako narzędzie programisty

Dla niektórych programistów niektóre cechy Pascala wykluczają jego zastosowanie w poważnych projektach i są powodem krytyki tego języka. Według nich powinien zostać jedynie narzędziem do nauki programowania. Natomiast nie potwierdzają tego tysiące aplikacji (również komercyjnych) stworzonych w Pascalu w latach 80. i 90..

Zalety Pascala - czytelność kodu, rygorystyczna kontrola typów danych, wraz z pojawieniem się C stały się dla programistów wadami. Wypromowanym przez C standardem stała się zwięzłość kodu:

Pascal:                    C++:

****************** Blok ***********************

begin                      {
  
end;                       }

*********** Działania arytmetyczne ************

a := a + 5;                a += 5;  
 
Inc(a);                    a++;
Dec(a);                    a--;

c := 5;
b := 5;                    a = b = c = 5;
a := 5;

************ Pętla z licznikiem ***************

for i := 10 downto 1 do    for (i=10; i; --i)
begin                      {

end;                       }

************ Pętla z warunkiem ****************

while W <> 0 do            while(W)
begin                      {     

end;                       }

**************Pętla nieskończona***************

while true do             for(;;)
begin                     {  

end;                      }

repeat                    while(true)
                          {
until 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 to dobra cecha języka dydaktycznego, ale dla doświadczonego programisty może być uciążliwa. Zabiegi w rodzaju rzutowania zmiennej typu całkowitego na typ Bool są częstą praktyką - w Pascalu kompilator się na to nie zgodzi.

Popularność Pascala wzrosła z pojawieniem się Delphi - środowiska programistycznego, opartego na obiektowym Pascalu, pozwalającego na błyskawiczne tworzenie 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.

[edytuj] Przykładowy program

Zestawienie przykładów kodu źródłowego

Najprostszy formalnie poprawny program (wypisujący tekst):

begin
   writeln('Hello World');
end.

Obliczanie n–tego wyrazu ciągu Fibonacciego:

program fibonacci;
 
var a, b, c, i, liczba : integer;
 
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;
var a, b, c : real;
begin
    writeln ('Podaj wspolczynniki a, b, c trojmianu kwadratowego: ');
    readln (a, b, c);
    delta := (b * b) - (4 * a * c);
    writeln ('Delta = ', delta);
 
    if delta < 0 then
        writeln('BRAK MIEJSC ZEROWYCH FUNKCJI !')
    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.

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
      begin
        write(liczby[i],' ');
      end;
  readln
  end;
 
begin
  czytaj;
  for i:=2 to n do
  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;
  pisz;
  readln
end.

[edytuj] Linki zewnętrzne

Wikibooks
Zobacz podręcznik na Wikibooks:
Object Pascal


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -