Referat Functii Si Proceduri

Mai jos puteti citi fragmente din Referat Functii Si Proceduri si de asemenea puteti face Download Referat Functii si proceduri

Citeste fragmente din Referat Functii Si Proceduri

TEMA: FUNCŢII ŞI PROCEDURI ÎN LIMBAJUL DE PROGRAMARE PASCAL. ENUNŢUL PROBLEMEI: PROB.1): Elaboraţi o funcţie care returnează media aritmetică a patru numere întregi. PROB:2): Elaboraţi o procedură care afişează la ecran tabelul de adevăr al funcţiei y=not x. PARTEA TEORETICĂ: FUNCŢII: Conceptul de funcţie corespunde celui uzua matematic şi extinde pe cel de expresie Pascal. În general textul Pascal al unei declaraţii de funcţii are forma: Function f(x1;…; xn) : t; D1; Begin … f:= e; ... end; {f} Primul rând ilustrează antetul funcţiei cu: f: identificator reprezentând numele funcţiei; (x1;..;xn ): listă (opţională) de parametri formali reprezentând argumentele funcţiei; t: identificator reprezentând tipul rezultatului; acesta trebuie să fie un tip simplu (scalar) sau pointer. Antetul este urmat de corpul funcţiei, format din: - D1: declaraţii locale ale funcţiei (opţionale) grupate în secţiuni (eventual vide)scri- se în ordinea: label const type var function / procedure - begin ... f:=e; ... end; : instrucţiune compusă specificând prelucrările de date ce se produc prin execuţia funcţiei; numele f al funcţiei (fără parametri) apare cel puţin o dată în partea stângă a unei instrucţiuni de atribuire care se execută f:=e. Rezul- tatul întors de funcţie, de tipul t, este ultima valoare atribuită lui f. Utilizarea unei funcţii se specificţ printr-un apel de forma: f(a1, . .,an), cu - f: numele funcţiei; - (a1, . . ,an): lista de parametri actuali reprezentând expresii ale căror valori sau adrese sînt furnizate funcţiei. Apelul de funcţie este un operand într-o expresie; el se inserează în locul în care este dorită valoarea produsă de funcţie. Când expresia este evaluată, funcţia este activată, iar operandului devine valoarea întoarsă de funcţie. PROCEDURI: Conceptul de procedură extinde pe cel de instrucţiune. Formele sintactice ale decla- raţiei şi apelului sânt similare celor pentru funcţii. Forma generală a textului unei declaraţii de procedură este: Procedure p(x1; . . . ;xn); D1; Begin . . . end; {p} În antetul procedurii apar: p: numele procedurii; (x1; . . . ;xn): listă (opţională) de parametri formali. În corpul procedurii sânt incluse: - D1: declaraţii locale procedurii (opţionale) grupate după aceleaşi reguli ca în cazul funcţiilor; - begin ... end; : instrucţiune compusă; ea nu conţine 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 spe- cifică î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; †   ¢ ¬ ® ¾ À Þ à ü † ˆ ¼ Æ Ò Ø è ò l l "): lista (opţională) de parametri actuali. Spre deosebire de funcţie, apelul de procedură este o instrucţiune; aceasta se inserează în program în locul în care sânt dorite efectele produse de execuţia procedurii pentru eventualii parametri actuali a1, . . . ,an. PROGRAMELE OBŢINUTE: 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 funcţiilor şi procedurilor permite elaborarea unor programe mai mici ca volum, deci care ocupă mai puţin spaţiu de memorie şi care sunt mai bine de înţeles pen- tru alţi utilizatori(alţii decât cei care au elaborat programul). Plus la asta aduce şi o eco- nomie de timp programatorului la elaborarea programului, deoarece odată elaborate, funcţiile şi procedurile pot fi apelate ori de câte ori nu am avea nevoie de instrucţiunea în cauză în program. 쥁@