2. Forma general a declara釘ii de procedur este:
procedure p(x1;x2;xn);
D;
begin
end;
unde:
p numele procedurii;
(x1;x2;xn); lista op釘ional de parametri formali;
D declara釘iile locale (op釘ionale)
begin ... end instruc釘iune compus, ea nu
con釘ine vreo atribuire asupra numelui procedurii.
3. Parametrii din lista introdui prin declara釘ii de
forma v1,v2vn:tp se numesc parametri-valoare.
Acetia servesc pentru transmiterea de valori din
programul principal 樽n procedur.
Parametrii formali introdui 樽n list prin declara釘ii
de forma
var v1,v2vn:tp
se numesc parametri-variabil i servesc pentru
樽ntoarcerea rezultatelor din procedur 樽n
programul principal.
4. Apelul are forma
P(a1,a2,an);
unde (a1,a2,an) este lista de parametri
actuali.
Reinei !
樽n cazul unui parametru-variabil drept
parametri actuali pot fi utilizate numai
variabile.
5. Program P99;
var a, b, c,
t, q : real;
procedure Lac(r : real; var l, s : real);
const Pi=3.14159;
begin
l:=2*Pi*r;
s:=Pi*sqr(r);
end; { Lac }
begin
a:=1.0;
Lac(a, b, c);
writeln(a:10:5, b:10:5, c:10:5);
Lac(3.0, t, q);
writeln(3.0:10:5, t:10:5, q:10:5);
End.
6. 1. Se consider declara釘iile:
Var k, m, n : integer;
a, b, c : real;
procedure P(i : integer; var j : integer; x : real; var y : real);
begin
{ . . .}
end.
Care din apelurile ce urmeaz s樽nt corecte?
a) P(k,m,a,b) ;
b) P(3,m,a,b) ;
c) P(k,3,a,b) ;
d) P(m,m,a,b);
e) P (m, k, 6.1, b) ;
Argumenta釘i rspunsul.
f) P(n,m, 6,b) ;
g) P(n,m,6,20);
h) P(a,m,b,c) ;
i) P(i, i, i, i) ;
j) P(a,a,a,a) ;
7. Program P101;
var a, b : integer;
procedure P(x : integer; var y : integer);
begin
x:=x+1;
y:=y+1;
writeln('x=', x, ' y=', y);
end; { P }
begin
a:=5;
b:=9;
P(a, b);
writeln('a=', a, ' b=', b);
readln;
end.
8. a) calculeaz rdcinile ecua釘iei ax2+bx+ c=0;
b) radiaz dintr-un ir caracterul indicat 樽n apel;
c) 樽ncadreaz un ir de caractere 樽ntre
simbolurile "#";
d) ordoneaz componentele unui tablou array [
1. . 100] of real 樽n ordine cresctoare;