Proceduri

8
PROCEDURI

description

Proceduri Pascal

Transcript of Proceduri

Page 1: Proceduri

PROCEDURI

Page 2: 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.

Page 3: Proceduri

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ă

Page 4: Proceduri

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

Page 5: Proceduri

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

Page 6: Proceduri

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) ;

Page 7: Proceduri

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ă?

Page 8: Proceduri

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: