Documente Academic
Documente Profesional
Documente Cultură
1.1 Subprograme
O problem complex poate fi rezolvat prin divizarea ei ntr-un set de pri mai mici. Pentru fiecare parte se scrie o anumit secven de instruciuni, denumit subprogram. n limbajul PASCAL exist 2 tipuri de suprograme, i anume, funcii i proceduri:
<Suprograme>::={<Funcie>;| <Procedur>;}
1.2 Funcii
Funciile sunt subprograme care calculeaz i returneaz o valoare. Limbajul PASCAL conine un set de funcii predefinite, cunoscute oricrui program : sin, cos, eof etc. n completare, programul poate defini funcii proprii, care se apeleaz n acelai mod ca funciile-standart. Prin urmare, conceptul de funcie extinde noiunea de expresie PASCAL. Textul PASCAL al unei declaraii de funcie are forma: f- numele funciei; (x1, x2, ..., xn )- lista opional de paremetri formali reprezintnd argumentele funciei; tr- tipul rezultatului; acesta trebuie s fie numele unui tip simplu sau tip referin. Antetul este urmat de corpul funciei, format din declaraiile locale opionale D i instruciunea compus begin ... end. Numele f al funciei apare cel puin o dat n partea stng a unei instruciuni de atribuire care se execut: f:=e. Ultima valoare atribuit lui f va fi introdus n programul principal.
1.3 Proceduri
Procedurile snt subprograme care efectueaz prelucrarea datelor comunicate n momentul apelului. Limbajul conine procedurile predefinite read, readln,write, writeln .a. n completare, programatorul poate defini proceduri proprii, care se apeleaz n acelai mod ca procedurile-standart. Prin urmare, conceptul de procedur extinde noiunea de instruciune PASCAL. Forma general a textului unei declaraii de procedur este: p- numele procedurii; (x1, x2, ..., xn ) lista opional de parametri formali; n corpul procedurii snt incluse: D- declaraiile locale( opionale) grupate dup aceleai reguli ca n cazul funciilor; Begin...end- instruciune compus; ea nu conine vreo atribuire asupra numelui procedurii. Procedura poate s ntoarc mai multe rezultate, dar nu prin numele ei, ci prin variabile desemnate special( cu prefixul var) n lista de parametri formali: Parametri-valoare v1, v2, ..., vk:tp ( servesc pentru transmiterea de valori din programul principal n procedur);
Parametri-variabil var v1, v2, ..., vk:tp (serves pentru ntoarcerea rezultatelor din procedur n programul principal);
1.7 Recursia
Recursia se definete ca o situaie n care un subprogram se autoapeleaz fie direct, fie prin intermediul altei funcii sau proceduri. Subprogramul care se autoapeleaz se numete recursiv. La orice apel de subprogram, n memoria calculatorului vor fi depuse urmtoarele informaii: Valorile curente ale parametrilor transmii prin valoare;
Locaiile(adresele) parametrilor-variabil; Adresa return, adic adresa instruciunii ce urmeaz dup apel.
Recursia este deosebit de util n cazurile n care elaborarea unor algoritmi nerecursivi este foarte complicat: translarea programelor PASCAL, n limbajul cod-main, grafica pe calculator, recunoaterea formelor .a.
Pentru procedur:
Apelul unui subprogram se face fie n programul principal, fie n alt subprogram. Diagrama de sintax pentru apelul unui subprogram este : Pentru funcie:
Pentru procedur: