CATEGORII DOCUMENTE |
SUBPROGRAME DE TIP FUNCTIE
Subprogramele de tip func ie sunt in linii mari, la fel ca procedurile, cu urmatoarele excep ii:
a. numele unei func ii va fi un identificator ce desemneaza pe langa entitatea respectiva (func ia), i o variabila a carui tip va fi specificat la sfar itul liniei de definire a func iei.
SUBPROGRAME DE TIP FUNCTIE
b. o func ie se define te cu ajutorul cuvantului rezervat function (in loc de procedure).
c. pe parcursul func iei (blocului de instruc iuni), inainte de revenirea in programul apelant, numele func iei (variabila) trebuie sa primeasca o valoare (rezultata din calculele din corpul func iei).
d. apelul unei func ii se realizeaza ca i apelul unei proceduri in ce priveste parametrii actuali, dar, apari ia apelului nu va fi independenta, ci undeva intr‑o instruc iune sau expresie sau mai bine zis oriunde are voie sa apara o variabila (in membrul drept).
e. modul de func ionare al apelului este asemanator cu cel al unei proceduri cu excep ia ca dupa ce se realizeaza apelul in momentul apari iei numelui func iei, i dupa ce se evalueaza func ia (execu ia ei), se revine in instruc iunea respectiva cu o valoare in numele func iei i se continua cu evaluarea expresiei (sau execu ia instruc iunii) exact dupa numele func iei i nu cu instruc iunea imediat urmatoare.
SUBPROGRAME DE TIP FUNCTIE
Exemplu:
program maxim5;
var
a,b,c,d,max:integer;
procedure maxab(a,b:integer):integer;
begin
if a>b then maxab:=a
else maxab:=b;
end;
begin
writeln ('introduceti a si b');
readln(a,b);
writeln ('introduceti c si d');
readln(c,d);
max:=maxab(a,b);
writeln('max(a,b)=',max);
writeln('max(c,d)=',maxab(c,d));
end.
Acum observam ca numele func iei (respectiv apelul func iei) apare in program, sau mai bine spus in instruc iuni, expresii etc., oriunde este corect sa apara o variabila.
Exemplu de aplica ie:
Se da un sir de numere (vector) de n elemente. Sa se calculeze suma i maximul dintre elemente.
SUBPROGRAME DE TIP FUNCTIE
program aplicatie1;
var
a:array[1..100] of integer;
n,i,s,max:integer;
procedure introd;
begin
write('nr. elemente=? ');
readln(n);
for i:=1 to n do
begin
write('a(',i,')=');
readln(a[i]);
end;
end;
procedure calc_suma;
begin
s:=0;
for i:=1 to n do s:=s+a[i];
end;
procedure calc_max;
function maxab(a,b:integer):integer;
begin
if a>b then maxab:=a
else maxab:=b;
end;
begin
max:=a[1];
for i:=2 to n do
if maxab(max,a[i]) > max then
max:=maxab(max,a[i]);
end;
begin
introd;
calc_suma;
calc_max;
writeln;
writeln('suma celor ',n,' elemente este: ',s);
writeln('maximul dintre elemente este: ',max);
end.
SUBPROGRAME DE TIP FUNCTIE
Obs: In interiorul unui program, putem insera comentarii care sa faca programul PASCAL mai explicit i mai usor de depanat, dar care sa nu fie luate in considerare de catre compilator. Astfel, tot ce apare intre doua paranteze acolade se considera comentariu.
Iata rezultatul unei execu ii a programului aplica ie1:
nr. elemente=? 4
a(1)=34
a(2)=56
a(3)=32
a(4)=12
suma celor 4 elemente este: 134
maximul dintre elemente este: 56
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1383
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved