You are on page 1of 26

CURS 8- LIMBAJE DE PROGRAMARE(2

)

LIMBAJUL PASCAL (2)

Variabile şi constante
Toate variabilele cu care se lucrează într-un program trebuie să fie declarate în secţiunea VAR , iar constantele în CONST. Exemplu: VAR x,y,z: Real; t: BOOLEAN; sir: CHAR; nota: 1..10; culori: (roşu,galben,albastru,verde);

.. cu valori [-128.258]  WORD întreg fără semn..TIPUL ÎNTREG Tipurile întregi de date sunt:  BYTE întreg fără semn. cu valori [0.65635]  SHORTINT întreg cu semn. cu valori [0. cu valori [2147483648. 2147483647] ..127]  INTEGER întreg cu semn. cu valori [32768.32767]  LONGINT întreg cu semn..

*.Operaţiile aritmetice Operaţiile aritmetice ce se pot efectua cu aceste date: +. -.DIV(câtul împarţirii în numere întregi). MOD (câtul împărţirii în numere întergi) – – x DIV y = câtul x MOD y = restul .

< >. =. > =. PRED (x) Exemple:  ORD(4)=4 8 DIV 10 =0  ORD(-135)=-135 7/2 = 3.5  PRED(8)=7 7 DIV 2 = 3  SUCC(-1)=0 7 MOD 2 = 1 . Există două funcţii predefinite (ca pentru orice tip ordinal): SUCC (x). cu ajutorul operatorilor relaţionali: <. <=. >.OPERATORI RELAŢIONALI Datele de tip întreg pot fi puse în relaţie.

scădere (-).TIPUL REAL Reprezintă un număr real cuprins între două limite care diferă de la un compilator la altul şi de la un tip la altul. înmulţire (*) şi împărţire reală (/). . tipurile reale pot fi:  REAL  SINGLE  DOUBLE  EXTENDED  COMP În ISO Standard Pascal este inclus doar tipul REAL. Operatorii aritmetici sunt valabili: adunare (+). Astfel. toate tipurile reale sunt compatibile între ele. În cadrul operaţiilor.

parte fracţionară} {E întreg} Cel puţin partea întreagă sau partea fracţionară trebuie să apară. . <=. > =. >. =. tipul REAL nefiind ordinal. < >.OPERATORI Datele de tip real pot fi puse în relaţie cu ajutorul operatorilor relaţionali <.  Formatul unui număr real: NR_REAL:= {semn} {parte întreagă} {. Observaţii:  Funcţiile SUCC şi PRED nu funcţionează.

765. 123. n: integer.7. 123.765 E7.y: real. -123. 123. .EXEMPLE VAR x.765 E-7. .

=. > =. O constantă de tip caracter poate fi:  ‘a’ ‘:’ Literele mari au alte valori decât cele mici. .TIPUL CARACTER (CHAR) O variabilă de tip caracter poate avea drept valoare un caracter. <=. dar există şi funcţionează operatorii relaţionali:  <.  x:char Se reprezintă în memorie pe un octet (0/255)255 de coduri  x:= ‘a’ sau x:=a e interpretat drept variabilă pe care compilatorul o caută Nu există operatori aritmetici. >. < >.

FUNCŢII Tipul caracter e un tip ordinal.  x:=CHR (64)  ORD (caracter) este o funcţie care întoarce codul ASCII al caracterului respectiv.  CHR (cod) este o funcţie care întoarce ca rezultat caracterul respectiv. . fiecărui caracter asociindu-i-se un număr (cod) între 0-255  există funcţiile:  SUCC (x)  PRED (x) ASCII reprezintă standardul american de codificare a caracterelor în numere.

în care relaţia FALSE <TRUE este adevărată. care ocupă un octet memorie şi poate lua două valori logice:  adevărat  fals Declaraţia de tip se face : TYPE BOOLEAN =(TRUE. enumerativ. .TIPUL BOOLEAN Este un tip ordinal. rezultatul logic obţinut derivând din caracterul ordinal al acestui tip. FALSE) Datele de tip boolean pot fi puse în relaţie.PRED.  Tipul boolean e ordinal. deci se pot utiliza funcţiile:SUCC.

prin enumerarea valorilor posibile.  SUCC (joi)=vineri  PRED (marţi)=luni  ORD (joi)=4 adică numărul de ordine al elementului respectiv în listă. Se crează astfel un tip zi_săpt cu 7 componente. …. Operatorii relaţionali sunt valabili:  luni<joi adevărat . astfel:  TYPE identif tip = (listă elemente) TYPE zi_săpt= (luni. deci asupra lui lucrează funcţiile PRED.TIPUL DECLARAT (ENUMERATIV) E definit de utilizator ca o listă ordonată. marţi. duminică). SUCC. tipul scalar e ordonat. ORD.

CHAR) se regăsesc în tipul subdomeniului. mulţime specificată prin elementul de început şi cel de sfârşit. ordonate crescător. Toate caracteristicile tipului părinte (INTEGER. . singura deosebire dintre ele constând în mulţimea valorilor pe care le pot lua. El reprezintă deci o submulţime de elemente aparţinând unui tip scalar ordinal.TIPUL SUBDOMENIU   Se mai numeşte tip interval şi se defineşte ca submulţime a unui tip ordinal (numit „tip părinte”) prin precizarea intervalului închis de valori.

..70.EXEMPLU TYPE Valori = 20.’i’ Z : Litere_mari . Y : ‘a’.’Z’ VAR X : valori. Litere_mari = ‘A’..

numele tipului declaraţia Exemplu:  TYPE  CIFRA = 0…9.  INTREG = INTEGER  VECTOR = ARRAY [1…100] OF REAL.Declaraţia de tip TYPE identif_tip = definiţie tip.  .

se înşiră separate cu “. Dacă vreau ca o variabilă să o transmit unei funcţii sau proceduri.”. numele variabilei tipul căreia îi aparţine Observaţie: Dacă sunt mai multe variabile de acelaşi tip. ea trebuie obligatoriu să aparţină unui tip predefinit (declarat cu TYPE).Declaraţia de constante şi variabile Declaraţia constantelor: CONST ident = valoare.  .  Declaraţia variabilelor: VAR identif var : tip variabilă.

FUNCTION fact (n: integer): integer.” separă variabilele  Funcţia întoarce ca rezultat o singură valoare .Declaraţia de funcţii FUNCTION nume funcţie (declaraţie de variabile): tip rezultat. Mai multe variabile se separă prin “. “. y:real):real.” FUNCTION f(x:integer .

Declaraţia de proceduri PROCEDURE nume procedură (listă parametri). Observaţie: Atât funcţiile. în sensul că în interiorul oricărei funcţii sau proceduri se pot face declaraţii (chiar şi alte funcţii sau proceduri) şi au şi partea executabilă (instrucţiuni). . cât şi procedurile au o structură asemănătoare cu cea a programului.

la limită.Instrucţiuni Pascal După modul de realizare a sintaxei şi a numărului de acţiuni descrise. chiar dacă. fără condiţionări  instrucţiuni compuse (structurate) Un program trebuie să execute cel puţin o instrucţiune. aceasta e o instrucţiune vidă. . comenzile Pascal pot fi grupate astfel:  instrucţiuni simple. care descriu acţiuni unice.

Instrucţiuni simple:      instrucţiunea vidă instrucţiunea de atribuire apeluri de procedură (funcţie) instrucţiunea de salt necondiţionat (GO TO) instrucţiunea vidă .

Instrucţiuni pentru implementarea structurilor fundamentale :    instrucţiunea condiţională simplă IF instrucţiunea condiţională multiplă -CASE clasa instrucţiunilor repetitive – – – WHILE REPEAT FOR .

Se prezintă ca o linie goală. .Instrucţiuni simple   Instrucţiunea vidă descrie acţiunea vidă. .” i:=1 . urmată de “. 2 instrucţiuni vide Instrucţiunea de atribuire evaluează o expresie şi atribuie rezultatul obţinut unei variabile sau funcţii Identificator := valoare. .

Prioritatea operatorilor în Pascal .

. procedura e apelată. după încheierea execuţiei ei. procedura e căutată în lista de declaraţii de proceduri a programului. programul e continuat cu instrucţiunea care urmează instrucţiunii care a apelat procedura. Dacă e găsită. Procedurile întâlnite în program ca simple instrucţiuni generează o serie de operaţii (exemplu READ). Compilatorul caută numele de procedură în biblioteca sa. Dacă nu este nici acolo. ea se execută corespunzător şi.Apelul de procedură Orice rutină scrisă de noi pentru a efectua anumite operaţii se numeşte procedură. Dacă nu este găsită acolo. se afişează un mesaj de eroare corespunzător.

La întâlnirea ei se execută un salt la linia care este precedată de etichetă(declarată ca LABEL).Instrucţiunea de salt necondiţionat GO TO Format: GO TO etichetă. urmată de “:” (ca separator). .

END .