04 expresii, functii predefinite, etichete, constante, tipuri, vqariabile

7

Click here to load reader

Upload: sucea-marius-cristinel

Post on 26-Jul-2015

148 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: 04 Expresii, Functii Predefinite, Etichete, Constante, Tipuri, Vqariabile

29

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 )

abs ( x )

sqr ( i )

sqr ( x )

sqrt ( x )

int (x)

trunc (x)

round ( x )

frac ( x )

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

valoarea (real•) absolut• a realului x

p•tratul întregului i (dac• i*i < Maxint) (valoare întreag•)

p•tratul num•rului real x

radical din x, x>=0

partea întreag• a num•rului real x

întregul ob•inut din num•rul real x prin eliminarea p•r•ii frac•ionare

cel mai apropiat întreg de num•rul real x

valoarea x - int(x) , pentru x real

exp ( x )

ln ( x )

e la puterea x, x întreg sau real

logaritm natural din x, x întreg sau real>0

sin ( x )

cos ( x )

arctan ( x )

sinusul lui x, x reprezint• m•sura în radiani a unui unghi

cosinusul lui x,

arctangenta din x,

succ ( i )

pred ( i )

ord ( e )

chr ( i )

odd ( i )

succesorul valorii ordinale i

predecesorul valorii ordinale i

num•rul de ordine al valorii lui e în tipul expresiei ordinale e

caracterul de ordin i în tipul Char

func•ie logic• cu valoarea True dac• i este impar •i False dac• este par

Page 2: 04 Expresii, Functii Predefinite, Etichete, Constante, Tipuri, Vqariabile

30

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•.

Page 3: 04 Expresii, Functii Predefinite, Etichete, Constante, Tipuri, Vqariabile

31

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 ’;’ .

Page 4: 04 Expresii, Functii Predefinite, Etichete, Constante, Tipuri, Vqariabile

32

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’;

Page 5: 04 Expresii, Functii Predefinite, Etichete, Constante, Tipuri, Vqariabile

33

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•) �

Page 6: 04 Expresii, Functii Predefinite, Etichete, Constante, Tipuri, Vqariabile

34

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) .

Page 7: 04 Expresii, Functii Predefinite, Etichete, Constante, Tipuri, Vqariabile

35