Sunteți pe pagina 1din 6

MINISTERUL EDUCAIEI AL REPUBLICII MOLDOVA UNIVERSITATEA DE STAT DIN MOLDOVA FACULTATEA MATEMATIC I INFORMATIC

DARE DE SEAM
LA DISCIPLINA:INFORMATIC LA LUCRAREA DE LABORATOR 4 TEMA: FUNCII I PROCEDURI N LIMBAJUL DE PROGRAMARE PASCAL.

A EFECTUAT STUDENTUL GRUPEI G4: LEAHU IGOR. A VERIFICAT LECTORUL: RUSU CAROLINA.

CHIINU 2003 ENUNUL PROBLEMEI: PROB.1): Elaborai o funcie care returneaz media aritmetic a patru numere ntregi. PROB:2): Elaborai o procedur care afieaz la ecran tabelul de adevr al funciei y=not x. PARTEA TEORETIC: FUNCII: Conceptul de funcie corespunde celui uzua matematic i extinde pe cel de expresie Pascal. n general textul Pascal al unei declaraii de funcii are forma: Function f(x1;; xn) : t; D1; Begin f:= e; ... end; {f} Primul rnd ilustreaz antetul funciei cu: - f: identificator reprezentnd numele funciei; - (x1;..;xn ): list (opional) de parametri formali reprezentnd argumentele funciei; - t: identificator reprezentnd tipul rezultatului; acesta trebuie s fie un tip simplu (scalar) sau pointer. Antetul este urmat de corpul funciei, format din: - D1: declaraii locale ale funciei (opionale) grupate n seciuni (eventual vide)scrise n ordinea: label const type var function / procedure - begin ... f:=e; ... end; : instruciune compus specificnd prelucrrile de date ce se produc prin execuia funciei; numele f al funciei (fr parametri) apare cel puin o dat n partea stng a unei instruciuni de atribuire care se execut f:=e. Rezultatul ntors de funcie, de tipul t, este ultima valoare atribuit lui f. Utilizarea unei funcii se specific printr-un apel de forma: f(a1, . .,an), cu

- f: numele funciei; - (a1, . . ,an): lista de parametri actuali reprezentnd expresii ale cror valori sau adrese snt furnizate funciei. Apelul de funcie este un operand ntr-o expresie; el se insereaz n locul n care este dorit valoarea produs de funcie. Cnd expresia este evaluat, funcia este activat, iar operandului devine valoarea ntoars de funcie. PROCEDURI: Conceptul de procedur extinde pe cel de instruciune. Formele sintactice ale declaraiei i apelului snt similare celor pentru funcii. Forma general a textului unei declaraii de procedur este: Procedure p(x1; . . . ;xn); D1; Begin ... end; {p} n antetul procedurii apar: - p: numele procedurii; - (x1; . . . ;xn): list (opional) de parametri formali. n corpul procedurii snt incluse: - D1: declaraii locale procedurii (opionale) grupate dup aceleai reguli ca n cazul funciilor; - begin ... end; : instruciune compus; ea nu conine vreo atribuirii asupra numelui procedurii. Procedura poate s ntoarc mai multe rezultate, dar nu prin numele ei, ci prin va-riabilele desemnate special (prefixul var) n lista de parametri; tipurile rezultatelor se specific n lista de parametri ca tipuri ale acestor variabile. Activarea unei proceduri se specific printr-un apel de forma: p(a1, . . . ,an) cu - p:numele procedurii; - (a1, . . . ,an): lista (opional) de parametri actuali. Spre deosebire de funcie, apelul de procedur este o instruciune; aceasta se insereaz n program n locul n care snt dorite efectele produse de execuia procedurii pentru eventualii parametri actuali a1, . . . ,an. PROGRAMELE OBINUTE: PROB.1): program lucr4a; uses

crt; var a,b,c,d:integer; med:real; function media(a,b,c,d:integer):real; var med:real; begin med:=(a+b+c+d)/4; media:=med; end; begin clrscr; writeln('Introduceti 4 numere intregi a, b, c, d:'); write('a= ');readln(a); write('b= ');readln(b); write('c= ');readln(c); write('d= ');readln(d); med:=media(a,b,c,d); writeln('Media aritmetica a numerelor ',a,' ',b,' ',c,' ',d,' este: ',med:3:3); readkey end. PROB.2): program lucr4b; uses crt; var x,y,z1,z2,z3:boolean; procedure tabel_de_adevar(x,y:boolean;var z1,z2,z3:boolean); begin z1:=not y; z2:=x and y; z3:=x or y; end; begin clrscr; writeln('Primul caz: x ia valoare adevarata:'); x:=true; y:=not x; writeln('x= ',x); writeln('y= ',y); tabel_de_adevar(x,y,z1,z2,z3); writeln('not y= ',z1); writeln('x and y= ',z2); writeln('x or y= ',z3);

writeln; writeln('Al doilea caz: x ia valoare falsa:'); x:=false; y:=not x; writeln('x= ',x); writeln('y= ',y); tabel_de_adevar(x,y,z1,z2,z3); writeln('not y= ',z1); writeln('x and y= ',z2); writeln('x or y= ',z3); readkey end. REZULTATE: PROB.1): Introduceti patru numere intregi a, b, c, d: a=1 b=2 c=3 d=4 Media aritmetica a numerelor 1, 2, 3, 4 este : 2.500 RPOB.2): Primul caz: x ia valoare adevarata: x=TRUE y=FALSE not y = TRUE x and y = FALSE x or y = TRUE Al doilea caz: x ia valoare falsa: x=FALSE y=TRUE not y = FALSE x and y = FALSE x or y = TRUE CONCLUZII: Utilizarea funciilor i procedurilor permite elaborarea unor programe mai mici ca volum, deci care ocup mai puin spaiu de memorie i care sunt mai bine de neles pentru ali utilizatori(alii dect cei care au elaborat programul). Plus la asta aduce i o economie de timp programatorului la elaborarea programului, deoarece odat elaborate, funciile i procedurile pot fi apelate ori de cte ori nu am avea nevoie de instruciunea n cauz n program.

S-ar putea să vă placă și