Sunteți pe pagina 1din 7

4. Expresii, funcii predefinite, declaraii (etichete, constante, tipuri,variabile).

4.1. Expresii Pascal.


O expresie este format din operanzi i operatori avnd forma : a1 o1 a2 o2 . . . an on an+1 unde :

ai, i=1, 2, ..., n+1 sunt operanzi ,iar oi, i=1, 2, ..., n sunt operatori. n funcie de tipurile operatorilor expresiile pot fi aritmetice, relaionale, logice sau mixte. ntruct n definirea expresiilor se folosesc i funcii, prezentm n tabelul urmtor cteva funcii Pascal predefinite :
Funcia abs ( i ) abs ( x ) sqr ( i ) sqr ( x ) sqrt ( x ) int (x) trunc (x) round ( x ) frac ( x ) exp ( x ) ln ( x ) sin ( x ) cos ( x ) arctan ( x ) succ ( i ) pred ( i ) ord ( e ) chr ( i ) odd ( i ) S e m n i f i c a i a valoarea (ntreag) absolut a ntregului i valoarea (real) absolut a realului x ptratul ntregului i (dac i*i < Maxint) (valoare ntreag) ptratul numrului real x radical din x, x>=0 partea ntreag a numrului real x ntregul obinut din numrul real x prin eliminarea prii fracionare cel mai apropiat ntreg de numrul real x valoarea x - int(x) , pentru x real e la puterea x, x ntreg sau real logaritm natural din x, x ntreg sau real>0 sinusul lui x, x reprezint msura n radiani a unui unghi cosinusul lui x, arctangenta din x, succesorul valorii ordinale i predecesorul valorii ordinale i numrul de ordine al valorii lui e n tipul expresiei ordinale e caracterul de ordin i n tipul Char funcie logic cu valoarea True dac i este impar i False dac este par

29

Expresiile aritmetice sunt expresii n care operanzii sunt valori numerice ntregi sau reale. Operatorii sunt cei permii de tipurile ntreg i real; se cere ca operaia care leag doi operanzi s fie definit n tipul acestor operanzi. Operanzii unei expresii aritmetice pot fi constante numerice, variabile simple de tip numeric, elemente de tablou de tip numeric, funcii numerice, subexpresii aritmetice (expresie aritmetic, eventual precedat de semnul -', ntre paranteze) . Deci ,o expresie aritmetic, notat <exp_a> se poate defini astfel:

<exp_a> ::= <term> | <exp_a> + <term> | <exp_a> - <term> , unde <term> ::= <factor> | <term> * <factor> | <term> / <factor> | <term> Div <factor> | <term> Mod <factor> , iar <factor>::=<constant numeric fr semn> | <variabil de tip numeric> | <element de tablou de tip numeric>|<funcie de tip numeric> | ( <exp_a> ) | ( - <exp_a> ) Prioritatea operaiilor este cea cunoscut i folosit n matematic, iar pentru schimbarea acestei prioriti se utilizeaz parantezele. Expresia relaional are scopul de a permite scrierea n Pascal a unor relaii matematice care pot fi adevrate sau false. Ea are forma <e1> <op._rel.> <e2>, unde <e1> i <e2> sunt expresii de acelai tip n care s-a definit operaia relaional <op.rel.>, iar < op.rel.> ::= < | <= | = | > | >= | < > ( pentru : <, , =, >, i )

Prin aceste simboluri se noteaz relaiile cunoscute din matematic.

30

Expresia logic

utilizeaz operatorii logici And (conjuncia), Or

(disjuncia) i Not (negaia). Operanzi sunt expresii a cror valoare este boolean. Pentru determinarea valorii unei expresii logice se evalueaz mai nti operanzii i apoi operaiile logice binare n ordinea prioritii lor: mai nti conjunciile logice (operaiile And) i apoi disjunciile logice (operaiile logice Or). Operaiile logice cu aceeai prioritate se evalueaz de la stnga spre dreapta n ordinea scrierii lor. n expresiile mixte, subexpresiile vor fi scrise ntre paranteze. exemplu n expresia (x<5) And (y>7) parantezele sunt obligatorii. $ De

4.2. Declaraii Pascal

ntr-un program Pascal trebuie declarate toate variabilele i denumirile simbolice folosite. Orice obiect pe care dorim s-l folosim ntr-un program Pascal trebuie mai nti declarat n partea de declaraii a programului. Dup obiectele pe care le reprezint avem urmtoarele declaraii Pascal: declaraii de etichete, de constante, de tipuri, de variabile i de subprograme. Deci, <decl> ::= <def-et> | <def-const> | <def-tip> | <def-var> | <def-subp> n definiia sintactic a unui program Pascal s-a folosit metasimbolul <Lista-decl>. Evident, elementele acestei liste sunt declaraii, separatorul folosit fiind caracterul ; .

31

Primele patru tipuri de declaraii vor fi descrise n continuare, iar descrierea (declararea) subprogramelor va fi abordat doar n leciile 8 i 9. 4.2.1. Declaraia de etichete. Declaraia de etichete, notat prin <def-et> are forma Label <eticheta> { , <eticheta> } , unde <eticheta> este un identificator sau un ntreg fr semn format din cel mult patru cifre. De exemplu Label 123, 57, 1989, 44, Sfrit ; este o declaraie de cinci etichete, cele scrise dup cuvntul Label. Etichetele se folosesc pentru marcarea unor puncte n program pe care dorim s le referim. $

4.2.2. Definirea constantelor. Prin metasimbolul <def_const> am notat o definire de constante, care are sintaxa Const <id> = <constanta> { ; <id> = <constanta> } unde <id> este un identificator care va nota numele constantei definite, iar constanta care urmeaz va preciza valoarea constantei definite. Ea poate fi numeric, boolean, sau un ir de caractere. De exemplu: Const Pi = 3.141592653; e = 2.718281828; Path = f:Soft/Tp/Bgi; $

32

Definirea unei constante este necesar atunci cnd ne referim la ea n mai multe pri ale programului, pentru a prescurta scrierea sau pentru a permite modificarea ulterioar uoar a programului. Este posibil i definirea unei

constante cu tip, prin care se definete numele, tipul i valoarea constantei respective. De exemplu: Const X : ir_el_reale = (3,4,5,6,1,2,7); $

4.2.3. Definirea tipurilor.

Declaraia de definire a unor tipuri noi, notat prin metasimbolul <def-tip>, are sintaxa Type <id> = <tip> { ; <id> = <tip> } unde <id> este un identificator ce reprezint numele tipului definit, iar <tip> este un tip definit cu ajutorul tipurilor deja cunoscute (predefinite sau definite anterior de utilizator). De exemplu, prin Type Culoare = (Alb, Albastru, Galben, Rou) $

se definete un tip enumerare cu numele culoare i care are cele patru valori menionate. Prin Type Zile = (Luni,Mari,Miercuri,Joi,Vineri,Smbt,Duminic) $

33

se definete tipul enumerare Zile cu cele apte valori declarate. 4.2.4. Declararea variabilelor.

Toate variabilele folosite ntr-un program Pascal trebuie declarate nainte de a fi folosite. Declaraia de variabile, notat prin metasimbolul <def-var> are sintaxa Var <Lista_id> : <tip> { ; <Lista_id> : <tip> } , unde <Lista_id> este o list de identificatori, iar <tip> este un tip predefinit sau definit de utilizator. Prin ea se declar toate variabilele din lista de identificatori <Lista_id> ca avnd tipul precizat dup caracterul : . De exemplu, prin Var i, j, k, l, m, n : Integer; a, b, x, y, z : Real; Cond : Boolean; se declar : - ase variabile de tip ntreg, avnd numele i, j, k, l, m, n ; - cinci variabile de tip real cu numele a, b, x, y, z ; - o variabil logic denumit Cond . Prin Var S : Array [1..9] Of Real ; se declar un vector S cu nou componente reale s1, s2, ... , s9 . Declaraia Var C : Array [1..10, 1..10] Of Char ; $ $ $

permite utilizarea unei matrice ptratice de ordin mai mic sau egal cu zece, avnd elemente de tip caracter notate cu c11, c12, ... , c1n , ... , cij, ... , cnn (n 10) .

34

35