Forma generala a unei functii este:
function f(x1.. xn): t;
D1;
begin
...
end;
Pentru a scrie o functie trebuie precizate:
numele functiei precedat de cuvântul cheie function;
parametrul(sau parametrii) sai formali (x1.. xn);
t - tipul rezultatului obtinut prin executia functiei;
D1 - declaratii locale ale functiei;
instructiunile ce specifica modul în care se calculeaza rezultatul functiei pe baza parametrilor actuali.
Parametrii formali(reprezinta argumentele functiei) sunt disponibili doar în interiorul functiei.
Apelul unei functii este de forma:
f(a1.. an)
unde f reprezinta numele functiei;
(a1.. an) reprezinta parametrii actuali;
Numarul parametrilor actuali(reprezinta expresii ale caror valori sau adrese sunt furnizate functiei) trebuie sa fie identic cu cel al parametrilor for mali. Valorile parametrilor actuali se atribuie parametrilor formali exact în ordinea precizata la definirea functiei. Rezultatul functiei este reprezentat printr-o unica valoare.
In corpul functiei trebuie sa existe cel putin o instructiune de atribuire prin care sa se transmita numelui functiei valoarea rezultatului.
O functie poate avea ea însasi propria-i parte declarativa, în care sunt definite constante, tipuri, variabile locale(sunt create la fiecare activare a functiei si desfiintate la completarea executiei. 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:O functie poate avea ea însasi propria-i parte declarativa, în care sunt definite constante, tipuri, variabile locale(sunt create la fiecare activare a functiei si desfiintate la completarea executiei. Conceptul de functie corespunde celui uzua matematic si extinde pe cel de expresie Pascal.
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.
Functia abs(x)
Poate cea mai simpla functie matematica este |x| (modul de x sau valoarea absoluta a lui x) careia оn PASCAL оi corespunde functia abs(x). Functia abs returneaza valoarea lui x fara semn. Iata cвteva exemple: Limbajul PASCAL contine un set de functii,cunoscute oricarui program.
Exemple:
...abs(9)=9......abs(8.5)=8.5
...abs(-9)=9.....abs(-8.5)=8.5
...abs(0)=0......abs(-12.0)=12.0
Observatii:
daca x este real, abs(x) este de asemenea real
daca x este оntreg, abs(x) este tot оntreg
Remarca:
Functia abs se aplica numai argumentelor al caror semn nu-l cunoastem. Pentru x"0, abs(x) reprezinta consum de timp si energie. Atunci cвnd stim ca x < 0, cea mai buna solutie pentru obtinerea valorii absolute a lui x este folosirea lui -x; solutia este mult mai rapida decвt prin apelarea functiei abs
Reguli:
functia abs returneaza valori оntregi daca argumentul ei este оntreg;
functia abs returneaza valori reale daca argumentul ei este real
Functia sqrt(x)
O alta functie matematica simpla este (radacina patrata a lui x) careia оi corespunde оn PASCAL functia sqrt(x). Argumentul x poate fi real sau оntreg, dar rezultatul este оntodeauna real, оn oricare din cazuri. Este o eroare sa calculati sqrt(x) pentru valori negative ale lui x (mai mici ca zero).
Remarca:
Functia sqrt are o quasi-inversa numita sqr care calculeaza patratul lui x - pozitiv sau negativ - cu conditia ca patratul (lui x) sa nu depaseasca maxint, pentru x оntreg, sau sa nu depaseasca maxreal (!) atunci cвnd x are valori reale.
O numim quasi - inversa deoarece numai pentru x real si pozitiv este adevarat ca
sqr(sqrt(x))=x=sqrt(sqr(x))
si chiar оn acest caz este adevarat numai pentru x pentru care:
sqr(x)<=maxreal.
Regula:
Functia sqrt returneaza оntotdeauna o valoare reala, indiferent de tipul argumentului (оntreg sau real).
Alte functii:
odd(x)
paritatea num lui x (false pentru x par shi true in caz contrar)
Ex:
odd(3) are valoarea true
odd(4) are valoarea de false
x mod y
restul
ex:
5mod 2 = 1
x div y
chitul
ex:
5 div 2 = 2
alte exemple:
frac(1,6)=6
int(2,6)=2
sqr(4)=16
sqrt(4)=2
Poate cea mai simpla functie matematica este |x| (modul de x sau valoarea absoluta a lui x) careia оn PASCAL оi corespunde functia abs(x). Functia abs returneaza valoarea lui x fara semn. Iata cвteva exemple: Limbajul PASCAL contine un set de functii,cunoscute oricarui program.
Exemple:
...abs(9)=9......abs(8.5)=8.5
...abs(-9)=9.....abs(-8.5)=8.5
...abs(0)=0......abs(-12.0)=12.0
Observatii:
daca x este real, abs(x) este de asemenea real
daca x este оntreg, abs(x) este tot оntreg
Remarca:
Functia abs se aplica numai argumentelor al caror semn nu-l cunoastem. Pentru x"0, abs(x) reprezinta consum de timp si energie. Atunci cвnd stim ca x < 0, cea mai buna solutie pentru obtinerea valorii absolute a lui x este folosirea lui -x; solutia este mult mai rapida decвt prin apelarea functiei abs
Reguli:
functia abs returneaza valori оntregi daca argumentul ei este оntreg;
functia abs returneaza valori reale daca argumentul ei este real
Functia sqrt(x)
O alta functie matematica simpla este (radacina patrata a lui x) careia оi corespunde оn PASCAL functia sqrt(x). Argumentul x poate fi real sau оntreg, dar rezultatul este оntodeauna real, оn oricare din cazuri. Este o eroare sa calculati sqrt(x) pentru valori negative ale lui x (mai mici ca zero).
Remarca:
Functia sqrt are o quasi-inversa numita sqr care calculeaza patratul lui x - pozitiv sau negativ - cu conditia ca patratul (lui x) sa nu depaseasca maxint, pentru x оntreg, sau sa nu depaseasca maxreal (!) atunci cвnd x are valori reale.
O numim quasi - inversa deoarece numai pentru x real si pozitiv este adevarat ca
sqr(sqrt(x))=x=sqrt(sqr(x))
si chiar оn acest caz este adevarat numai pentru x pentru care:
sqr(x)<=maxreal.
Regula:
Functia sqrt returneaza оntotdeauna o valoare reala, indiferent de tipul argumentului (оntreg sau real).
Alte functii:
odd(x)
paritatea num lui x (false pentru x par shi true in caz contrar)
Ex:
odd(3) are valoarea true
odd(4) are valoarea de false
x mod y
restul
ex:
5mod 2 = 1
x div y
chitul
ex:
5 div 2 = 2
alte exemple:
frac(1,6)=6
int(2,6)=2
sqr(4)=16
sqrt(4)=2