Pascal (limbaj de programare)

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare

Pascal este unul dintre limbajele de programare de referință în știința calculatoarelor. Pascal a fost dezvoltat de elvețianul Niklaus Wirth în 1970 pentru a pune în practică programarea structurată, aceasta fiind mai ușor de compilat. Unul din marile sale avantaje este asemănarea cu limbajul natural limba engleză, ceea ce îl face limbajul ideal pentru cei care sunt la primul contact cu programarea. Pascal este bazat pe limbajul Algol și a fost denumit astfel în onoarea matematicianului Blaise Pascal, creditat pentru construirea primelor mașini de calcul numeric. Wirth a mai dezvoltat limbajele Modula-2 și Oberon, similare cu Pascal.

Cele mai populare implementări a acestui limbaj au fost Turbo Pascal și Borland Pascal, ambele ale firmei Borland cu versiuni pentru Macintosh și DOS, care i-au adăugat limbajului obiecte și au fost continuate cu versiuni destinate programării vizuale pentru Microsoft Windows (utilizate de mediul de dezvoltare Delphi) și pentru Linux (Kylix).

În prezent există și alte implementări mai mult sau mai puțin populare, dar gratuite, printre care se remarcă Free Pascal și GNU Pascal.

Deși în prezent este relativ rar folosit în industria software, el este încă util elevilor și studenților care doresc să se inițieze în programare. Spre deosebire de BASIC, care a stat în trecut la baza învățării programării, Pascal este un limbaj structurat. De aceea, el formează un anumit tip de gândire, similar limbajelor moderne, precum C++, dar nu deține complexitatea și abstractizarea acestuia din urmă, fiind mai ușor de înțeles datorită sintaxei simple și apropiate de pseudocod.

Tipuri de date de bază[modificare | modificare sursă]

  • Integer (numere întregi)
  • Real (numere reale)
  • Char (caractere)
  • String (șiruri de caractere)
  • Text (fișiere text)
  • File (fișiere binare)
  • Array (vectori)

Operatori (clasificare după tipul de date)[modificare | modificare sursă]

Pentru datele numerice (integer, real, byte, word)[modificare | modificare sursă]

  ( )   grupează expresiile
  +,-   adunare și scădere
  *,/   înmulțire și împărțire (împărțirea cu virgulă se face în numere reale)
  mod   returnează restul (doar în întregi)
  div   returnează câtul (doar în întregi)

Operatori relaționali[modificare | modificare sursă]

  <   mai mic
  >   mai mare
  =   egal
  <>   diferit
  <=   mai mic sau egal
  >=   mai mare sau egal

Pentru datele de tip șir de caractere (string)[modificare | modificare sursă]

  +   concatenarea a două șiruri

Operatori relaționali[modificare | modificare sursă]

  <,>   mai mare sau mai mic, pe baza ordinii lexicografice în funcție de codurile ASCII
  =   cele două șiruri sunt identice

Instrucțiuni de bază[modificare | modificare sursă]

Instrucțiune multiplă[modificare | modificare sursă]

   begin
      <instrucțiuni>
   end.

Condiție[modificare | modificare sursă]

   if <condiție> then
      <instrucțiune>;  

sau

   if <condiție> then
      <instrucțiune>
   else
      <instrucțiune>;

Cicluri[modificare | modificare sursă]

Cu test inițial[modificare | modificare sursă]

    while <condiție> do
         <instrucțiune> 

Cu test final[modificare | modificare sursă]

    repeat
        <instrucțiuni>
    until <condiție> 

Cu număr cunoscut de pași[modificare | modificare sursă]

    for <variabilă>:=<valoare_inițială> to <valoare_finală> do
        <instrucțiune> 

sau

    for <variabilă>:=<valoare_inițială> downto <valoare_finală> do
        <instrucțiune>;

Structura unui program Pascal[modificare | modificare sursă]

program <nume_program>;
uses <biblioteci cu funcții și proceduri folosite în program>
type <tipuri de date definite de utilizator>
const <constante folosite în program>
var <variabile globale folosite în program>
<aici se pot scrie funcții și proceduri folosite în program>
begin
  <aici se scrie programul principal>
end.
  • Notă: După fiecare comandă se pune " ; " cu următoarele excepții: înainte de "else" (pentru testul if <conditie> then <instrucțiune_1> <"else"> <instrucțiune_2> , după "do" sau "then" pentru repetitive respectiv testul "if" ,care, în structura lor nu au decât o singură instrucțiune ; înainte de "begin" (dacă există) al oricărei repetitive (for <condiție> do , while <condiție> do), după testul " if <conditie> then " , după "repeat" ,sau înainte de "until" (condiția repetitivei cu test final - "repeat",aceasta fiind pusa pe post de "end;") .

Câteva instrucțiuni[modificare | modificare sursă]

WRITE[modificare | modificare sursă]

Este o instrucțiune pentru afișarea pe ecran a unui text (șir de caractere) sau a valorii unor constante, unor variabile sau unor expresii, exceptând date de tip vector sau fișier. Conținutul a ceea ce urmează să fie afișat pe ecran este încadrat de două paranteze rotunde. Lista a ceea ce urmează să fie afișat pe ecran este despărțită prin virgulă. Instrucțiunea WRITELN face aceeași acțiune ca și WRITE dar după afișare mută cursorul la începutul rândului următor al ecranului.

Exemplu[modificare | modificare sursă]

write ('a=', a);

Descriere: afișează pe ecran șirul a= după care afișează valoarea variabilei sau constantei a.

READ[modificare | modificare sursă]

Este o instrucțiune care citește de la tastatură o variabilă, cu excepția tipului boolean și a vectorilor. Variabilele se scriu între paranteze și, dacă sunt mai multe variabile, se despart prin virgulă. Instrucțiunea READLN face același lucru ca READ dar așteaptă un <ENTER> înainte de a prelucra datele primite. În caz că sunt citite mai multe variabile, introducerea acestora se va face prin separarea valorilor prin spații albe (<Space>, <TAB> sau <ENTER>).

Exemple[modificare | modificare sursă]

  • write ('Dati x='); readln (x);

Descriere: afișează pe ecran Dati x= după care citește de la tastatură valoarea variabilei x.

  • readln;

Descriere: așteaptă apăsarea tastei <ENTER> după care continuă cu restul de instrucțiuni din program.

READKEY[modificare | modificare sursă]

Este o instrucțiune de citire de la tastatură a caracterelor (valori de tip char) fără ca acestea să fie afișate pe ecran. Variabila caracter citită se scrie între paranteze.

Exemplu[modificare | modificare sursă]

write ('Parasiti aplicatia? (d/n)'); readkey (x);

Descriere: afișează pe ecran Parasiti aplicatia? apoi așteaptă să fie introdusă de la tastatură o literă.

STR[modificare | modificare sursă]

Transformă un număr într-un string (șir de caractere). Odată transformat în string, numărului nu i se mai pot efectua operații matematice deoarece acum este considerat un cuvânt.

Exemplu[modificare | modificare sursă]

str (x, s);

Descriere: Creează un string din numărul x în șirul s.

VAL[modificare | modificare sursă]

Transformă un string într-un număr atât timp cât stringul conține o reprezentare validă.

Exemplu[modificare | modificare sursă]

val (s, x, er);

Descriere: creează un număr din stringul s în variabila x. Dacă în timpul execuției se întâlnește o eroare, variabila de tip integer er va conține poziția caracterului de la care s-a constatat că nu se poate transforma stringul în număr. Spre exemplu, pentru șirul de caractere ' 1234a6 ' variabila er va conține 5.

BREAK[modificare | modificare sursă]

Oprește forțat un ciclu (FOR, REPEAT sau WHILE), chiar dacă acesta nu s-a încheiat.

EXIT[modificare | modificare sursă]

Oprește automat programul.

HALT[modificare | modificare sursă]

Oprește automat programul cu posibilitatea de transmite sistemului de operare un cod de eroare.

Exemplu[modificare | modificare sursă]

halt (5);

Descriere: oprește programul și transmite codul de eroare 5.

DELETE[modificare | modificare sursă]

Șterge o porțiune dintr-un string.

Exemplu[modificare | modificare sursă]

delete (s, 8, 4);

Descriere: șterge 4 caractere din șirul s începând cu poziția 8.

INSERT[modificare | modificare sursă]

Introduce un șir de caractere în altul.

Exemplu[modificare | modificare sursă]

insert ('abc',s, 8);

Descriere: introduce în șirul s pe poziția 8 caracterele abc.