Sunteți pe pagina 1din 7

4.

Expresii, func•ii predefinite, declara•ii


(etichete, constante, tipuri,variabile).

4.1. Expresii Pascal.

O expresie este format• din operanzi •i operatori având 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 func•ie de
tipurile operatorilor expresiile pot fi aritmetice, rela•ionale, logice sau mixte.

Întrucât în definirea expresiilor se folosesc •i func•ii, prezent•m în tabelul


urm•tor câteva func•ii Pascal predefinite :

Func•ia S e m n i f i c a •i a

abs ( i ) valoarea (întreag•) absolut• a întregului i


abs ( x ) valoarea (real•) absolut• a realului x
sqr ( i ) p•tratul întregului i (dac• i*i < Maxint) (valoare întreag•)
sqr ( x ) p•tratul num•rului real x
sqrt ( x ) radical din x, x>=0
int (x) partea întreag• a num•rului real x
trunc (x) întregul ob•inut din num•rul real x prin eliminarea p•r•ii frac•ionare
round ( x ) cel mai apropiat întreg de num•rul real x
frac ( x ) valoarea x - int(x) , pentru x real
exp ( x ) e la puterea x, x întreg sau real
ln ( x ) logaritm natural din x, x întreg sau real>0
sin ( x ) sinusul lui x, x reprezint• m•sura în radiani a unui unghi
cos ( x ) cosinusul lui x,
arctan ( x ) arctangenta din x,
succ ( i ) succesorul valorii ordinale i
pred ( i ) predecesorul valorii ordinale i
ord ( e ) num•rul de ordine al valorii lui e în tipul expresiei ordinale e
chr ( i ) caracterul de ordin i în tipul Char
odd ( i ) func•ie 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 permi•i de tipurile întreg •i real; se cere ca
opera•ia 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, func•ii 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• f•r• semn> | <variabil• de tip numeric>
|
<element de tablou de tip numeric>|<func•ie de tip numeric> |
( <exp_a> ) | ( - <exp_a> )

Prioritatea opera•iilor este cea cunoscut• •i folosit• în matematic•, iar


pentru schimbarea acestei priorit••i se utilizeaz• parantezele.

Expresia rela•ional• are scopul de a permite scrierea în Pascal a unor


rela•ii matematice care pot fi adev•rate sau false. Ea are forma

<e1> <op._rel.> <e2>,

unde <e1> •i <e2> sunt expresii de acela•i tip în care s-a definit opera•ia
rela•ional• <op.rel.>, iar

< op.rel.> ::= < | <= | = | > | >= | < > ( pentru : <, ≤, =, >, ≥ •i ≠ )

Prin aceste simboluri se noteaz• rela•iile cunoscute din matematic•.

30
Expresia logic• utilizeaz• operatorii logici And (conjunc•ia), Or
(disjunc•ia) •i Not (nega•ia). Operanzi sunt expresii a c•ror valoare este boolean•.
Pentru determinarea valorii unei expresii logice se evalueaz• mai întâi
operanzii •i apoi opera•iile logice binare în ordinea priorit••ii lor: mai întâi
conjunc•iile logice (opera•iile And) •i apoi disjunc•iile logice (opera•iile logice
Or). Opera•iile logice cu aceea•i prioritate se evalueaz• de la stânga spre dreapta
în ordinea scrierii lor.
În expresiile mixte, subexpresiile vor fi scrise între paranteze. De
exemplu în expresia

(x<5) And (y>7) $

parantezele sunt obligatorii.

4.2. Declara•ii 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 întâi declarat în partea de declara•ii a programului.
Dup• obiectele pe care le reprezint• avem urm•toarele declara•ii Pascal:
declara•ii de etichete, de constante, de tipuri, de variabile •i de subprograme.
Deci,

<decl> ::= <def-et> | <def-const> | <def-tip> | <def-var> | <def-subp>

În defini•ia sintactic• a unui program Pascal s-a folosit metasimbolul


<Lista-decl>. Evident, elementele acestei liste sunt declara•ii, separatorul folosit
fiind caracterul ’;’ .

31
Primele patru tipuri de declara•ii vor fi descrise în continuare, iar
descrierea (declararea) subprogramelor va fi abordat• doar în lec•iile 8 •i 9.
4.2.1. Declara•ia de etichete.

Declara•ia de etichete, notat• prin <def-et> are forma

Label <eticheta> { , <eticheta> } ,

unde <eticheta> este un identificator sau un întreg f•r• semn format din cel mult
patru cifre.
De exemplu

Label 123, 57, 1989, 44, Sfâr•it ; $

este o declara•ie de cinci etichete, cele scrise dup• cuvântul 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 când ne referim la ea în mai
multe p•r•i ale programului, pentru a prescurta scrierea sau pentru a permite
modificarea ulterioar• u•oar• a programului. Este posibil• •i definirea unei
constante cu tip, prin care se define•te 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.

Declara•ia 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, Ro•u) $

se define•te un tip enumerare cu numele culoare •i care are cele patru valori
men•ionate.

Prin

Type Zile = (Luni,Mar•i,Miercuri,Joi,Vineri,Sâmb•t•,Duminic•) $

33
se define•te 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. Declara•ia 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 având 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, având 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 .

Declara•ia
Var C : Array [1..10, 1..10] Of Char ; $

permite utilizarea unei matrice p•tratice de ordin mai mic sau egal cu zece, având
elemente de tip caracter notate cu c11, c12, ... , c1n , ... , cij, ... , cnn (n ≤ 10) .

34
35

S-ar putea să vă placă și