narzędziaW innych językach
|
Pascal (język programowania)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 International – Turbo 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 programistyDla 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 programNajprostszy formalnie poprawny program (wypisujący tekst): begin writeln('Hello World'); end. Obliczanie n–tego wyrazu ciągu Fibonacciego: program fibonacci; uses CRT; var a, b, c, i, liczba : integer; begin clrscr; 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; clrscr; 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 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
ABAP • Ada • AWK • Asembler • C • C++ • C-- • C# • COBOL • Common Lisp • D • F# • Forth • Fortran • GAUSS • Icon • Java • JavaScript • Lisp • Lustre• Modula 2 • Ocaml • Oberon • Object Pascal • Objective-C • Pascal • Perl • PHP • PL/SQL • Python • REXX • Ruby • SAS 4GL • sh • Smalltalk • Snobol • SQL • Visual Basic • VB.NET • XUL Akademickie: Comal • Eiffel • Haskell • Logo • MCPL • ML • Nemerle • Prolog • Scheme • Rey Historyczne: ALGOL • APL • BASIC • Clipper • JAS • MUMPS • PLAN • PL/I • PL/M • SAKO • SAS (asembler) • Simula Ezoteryczne: INTERCAL • Brainfuck • BeFunge • Unlambda • Malbolge • Whitespace • FALSE • HQ9+ • Shakespeare • Whirl • Ook |
| kreatyna kreatyna www.activebody.pl | Gry Online Gry Online www.pozycjonarka.in… | Plaza 3 star hotel Los Angeles www.triptake.com | krynica noclegi krynica noclegi,ośrodek, wypoczynk… gornik.com.pl | Kredyty odnawialne Kredyty odnawialne www.eskarbiec.pl |