FUNCTII PASCAL
O functie Turbo Pascal are o structura sintactica asemanatoare cu a unui proceduri Turbo Pascal. Sintaxa functiei este urmatoarea:
FUNCTION nume ([VAR] l1:t1;[var] l2:t2;…;[var] ln:tn):tip nume;
[sectiunea declaratii locale]
BEGIN
{NUME :=…. ;} sectiunea instructiuni
END:
unde:
tip nume este valorii pe care o ia nume sip e care o va returna programului apelat. El poate fi : intreg, real, CHAR, BOOLEAN, pointer, STRING. O functie calculeaza o valoare ce se asociaza numelui functiei nume, prin urmare este necesara precizarea tipului numelui. De asemenea este necesara, in cadrul sectiuni de instructiuni, prezenta numelui functiei: nume cel putin odata, in membrul sting a unei instructiuni de atribuire. Specificarea tipului de functie se face in antet. In urma executiei unei functii rezultatul obtinut este atribuit numelui functiei, prin intermediul caruia se face returnarea acestui rezultat.
li:ti sint declaratori de tip aiparametrilor formali si au aceeai semnificatie ca la proceduri. La functii lista parametrilorformali nu poate fi vida.
Exemplu. Sa se elaboreze o functie Turbo Pascal care sa calculeze minimul a doua numere reale.
Apelul functiei se face prin numele sau, urmat in paranteza de lista parametrilor actuali, nume ce apare in cadrul unei expresii. In apelul functiei parametrii actuali nume ce apare in cadrul unei expresii de acelasi tip cu parametrul formal corespunzator. Ca si la apelul procedurilor parametri actuali trebuie sa se corespunda cu parametrii formali in numar, ordine si tip.
Aplicatia 1. Se citesc in programul principal n parechi de numere reale (a,b)si se cere sa se calculeze si sa se afiseze pentru fiecare pereche citita tripletul (a,bmin(a,b)) pentur calculul lui min (a,b) folosind o functie.
program Project3; Numele Programului
Type vector=array[1..1000] of integer; Declararea tabloului unideminsional
var a:vector; Atribuirea variabilei unui vector unideminsional
var i,n,sum_par:integer; Declararea Variabilelor
Function suma:integer; Declararea functiei
begin
sum_par:=0;
for i :=1 to n do
if a[i] mod 2=0 then sum_par:=sum_par+a[i]; Calcularea sumei numerelor pare
suma:=sum_par; Atribuirea numelui functiei rezultatului
end;
begin
Writeln('Introdu nr de termeni');readln(n);
for i := 1 to n do begin Introducerea datelor in tabloul unideminsional
Writeln('A[',i,']='); readln(a[i]);
end;
suma;
Writeln('Suma elementelor pare este: ', sum_par); Scoaterea la ecran a sumei
readln
end.
O functie Turbo Pascal are o structura sintactica asemanatoare cu a unui proceduri Turbo Pascal. Sintaxa functiei este urmatoarea:
FUNCTION nume ([VAR] l1:t1;[var] l2:t2;…;[var] ln:tn):tip nume;
[sectiunea declaratii locale]
BEGIN
{NUME :=…. ;} sectiunea instructiuni
END:
unde:
tip nume este valorii pe care o ia nume sip e care o va returna programului apelat. El poate fi : intreg, real, CHAR, BOOLEAN, pointer, STRING. O functie calculeaza o valoare ce se asociaza numelui functiei nume, prin urmare este necesara precizarea tipului numelui. De asemenea este necesara, in cadrul sectiuni de instructiuni, prezenta numelui functiei: nume cel putin odata, in membrul sting a unei instructiuni de atribuire. Specificarea tipului de functie se face in antet. In urma executiei unei functii rezultatul obtinut este atribuit numelui functiei, prin intermediul caruia se face returnarea acestui rezultat.
li:ti sint declaratori de tip aiparametrilor formali si au aceeai semnificatie ca la proceduri. La functii lista parametrilorformali nu poate fi vida.
Exemplu. Sa se elaboreze o functie Turbo Pascal care sa calculeze minimul a doua numere reale.
Apelul functiei se face prin numele sau, urmat in paranteza de lista parametrilor actuali, nume ce apare in cadrul unei expresii. In apelul functiei parametrii actuali nume ce apare in cadrul unei expresii de acelasi tip cu parametrul formal corespunzator. Ca si la apelul procedurilor parametri actuali trebuie sa se corespunda cu parametrii formali in numar, ordine si tip.
Aplicatia 1. Se citesc in programul principal n parechi de numere reale (a,b)si se cere sa se calculeze si sa se afiseze pentru fiecare pereche citita tripletul (a,bmin(a,b)) pentur calculul lui min (a,b) folosind o functie.
program Project3; Numele Programului
Type vector=array[1..1000] of integer; Declararea tabloului unideminsional
var a:vector; Atribuirea variabilei unui vector unideminsional
var i,n,sum_par:integer; Declararea Variabilelor
Function suma:integer; Declararea functiei
begin
sum_par:=0;
for i :=1 to n do
if a[i] mod 2=0 then sum_par:=sum_par+a[i]; Calcularea sumei numerelor pare
suma:=sum_par; Atribuirea numelui functiei rezultatului
end;
begin
Writeln('Introdu nr de termeni');readln(n);
for i := 1 to n do begin Introducerea datelor in tabloul unideminsional
Writeln('A[',i,']='); readln(a[i]);
end;
suma;
Writeln('Suma elementelor pare este: ', sum_par); Scoaterea la ecran a sumei
readln
end.