ENUNTUL PROBLEMEI:
PROB.1):
Elaborati o functie care returneaza media aritmetica a patru numere intregi.
PROB:2):
Elaborati o procedura care afiseaza la ecran tabelul de adevar al functiei y=not x.
PARTEA TEORETICA:
FUNCTII:
Conceptul de functie corespunde celui uzua matematic si extinde pe cel de expresie Pascal.
In general textul Pascal al unei declaratii de functii are forma:
Function f(x1; . ; xn) : t;
D1;
Begin
.
f:= e;
end; {f}
Primul rand ilustreaza antetul functiei cu:
- f: identificator reprezentand numele functiei;
- (x1;..;xn ): lista (optionala) de parametri formali reprezentand argumentele functiei;
- t: identificator reprezentand tipul rezultatului; acesta trebuie sa fie un tip simplu
(scalar) sau pointer.
Antetul este urmat de corpul functiei, format din:
- D1: declaratii locale ale functiei (optionale) grupate in sectiuni (eventual vide)scri-
se in ordinea:
label
const
type
var
function / procedure
- begin f:=e; end; : instructiune compusa specificand prelucrarile de date ce se
produc prin executia functiei; numele f al functiei (fara parametri) apare cel putin
o data in partea stanga a unei instructiuni de atribuire care se executa f:=e. Rezul-
tatul intors de functie, de tipul t, este ultima valoare atribuita lui f.
Utilizarea unei functii se specifict printr-un apel de forma: f(a1, . .,an), cu
- f: numele functiei;
- (a1, . . ,an): lista de parametri actuali reprezentand expresii ale caror valori sau adrese sint furnizate functiei.
Apelul de functie este un operand intr-o expresie; el se insereaza in locul in care este
dorita valoarea produsa de functie. Cand expresia este evaluata, functia este activata, iar
operandului devine valoarea intoarsa de functie.
PROCEDURI:
Conceptul de procedura extinde pe cel de instructiune. Formele sintactice ale decla-
ratiei si apelului sant similare celor pentru functii.
Forma generala a textului unei declaratii de procedura este:
Procedure p(x1; . . . ;xn);
D1;
Begin
. . .
end; {p}
In antetul procedurii apar:
- p: numele procedurii;
- (x1; . . . ;xn): lista (optionala) de parametri formali.
In corpul procedurii sant incluse:
- D1: declaratii locale procedurii (optionale) grupate dupa aceleasi reguli ca in cazul
functiilor;
- begin end; : instructiune compusa; ea nu contine vreo atribuirii asupra numelui
procedurii.
Procedura poate sa intoarca mai multe rezultate, dar nu prin numele ei, ci prin va-riabilele desemnate special (prefixul var) in lista de parametri; tipurile rezultatelor se spe-
cifica in lista de parametri ca tipuri ale acestor variabile.
Activarea unei proceduri se specifica printr-un apel de forma: p(a1, . . . ,an) cu
- p:numele procedurii;
- (a1, . . . ,an): lista (optionala) de parametri actuali.
Spre deosebire de functie, apelul de procedura este o instructiune; aceasta se insereaza in
program in locul in care sant dorite efectele produse de executia procedurii pentru eventualii parametri actuali a1, . . . ,an.