Proceduri
-
Upload
colegiul-de-industrie-usoara -
Category
Education
-
view
217 -
download
0
description
Transcript of Proceduri
PROCEDURI
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.
Parametrii din lista introduşi prin declaraţii de forma v1,v2…vn:tp se numesc parametri-valoare. Aceştia servesc pentru transmiterea de valori din programul principal în procedură.
Parametrii formali introduşi în listă prin declaraţii de forma
var v1,v2…vn:tp
se numesc parametri-variabilă şi servesc pentru întoarcerea rezultatelor din procedură în programul principal.
Parametri-valoare și parametri-variabilă
Apelul are formaP(a1,a2,…an);
unde (a1,a2,…an) este lista de parametri actuali.
Rețineți !în cazul unui parametru-variabilă drept
parametri actuali pot fi utilizate numai variabile.
Apelul Procedurii
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.
Exemplu
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 răspunsul.
Sarcini
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) ;
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.
2.Ce va afişa pe ecran programul ce urmează?
a) calculează rădăcinile 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 crescătoare;
3.Elaboraţi o procedură care: