Sunteți pe pagina 1din 5

Subprograme Pascal

Deseori n practica programrii se ntlnesc situaii de ndeplinire repetat a unor secvene de program
aplicate pe seturi diferite de date. Pentru a evita aceste repetri i n scopul organizrii mai compacte a programului,
n Pascal exist posibilitatea de a separa aceste secvene de program intr-un bloc autonom n cadrul aceluiai
program sub un anumit nume. Aa set de instruciuni, ce realizeaz un anumit algoritm, se numete subprogram.
Subprogramele pot fi:
-functie- returneaza intotdeauna o singura valoare;
-proceduri-pot returna zero, una sau mai multe valori;
Functiile si procedurile pot fi standard(existente deja in limbajul pascal) si definite de utilizator.
Functii standard: int, trunc, sqr, sqrt, abs, chr, ord, pred, succ;
Proceduri standard: read, readln, write, writeln, val, str, inc, dec;
Dac grupm instruciunile ntr-un subprogram, trebuie s comandm execuia secvenei respective. Vom spune c
apelm subprogramul.
Blocul de program din interiorul cruia se apeleaz un subprogram, poart numele de modul apelant. Acesta poate
fi programul principal sau chiar un alt subprogram. Aadar subprogramele se pot apela unul pe altul.

La fiecare apel al unui subprogram, modulul apelant poate transmite acestuia nite date, pe care
subprogramul le va folosi atunci cnd se execut.
Aceste date se numesc parametri.
La fiecare execuie a sa, n urma unui apel, subprogramul poate s lucreze cu alte date, pe care le-a recepionat sub forma
unor parametri. Exist i subprograme fr parametri, care opereaz direct asupra variabilelor programului.
Dac grupm instruciunile ntr-un subprogram, trebuie s comandm execuia secvenei respective. Vom spune c
apelm subprogramul.
Blocul de program din interiorul cruia se apeleaz un subprogram, poart numele de modul apelant. Acesta poate
fi programul principal sau chiar un alt subprogram. Aadar subprogramele se pot apela unul pe altul.

La fiecare apel al unui subprogram, modulul apelant poate transmite acestuia nite date, pe care
subprogramul le va folosi atunci cnd se execut.
Aceste date se numesc parametri.
La fiecare execuie a sa, n urma unui apel, subprogramul poate s lucreze cu alte date, pe care le-a recepionat sub forma
unor parametri. Exist i subprograme fr parametri, care opereaz direct asupra variabilelor programului.

Avantajele folosirii subprogramelor sunt:


O mai mare claritate i coeziune a programelor;
Posibilitatea de a executa instruciunile dintr-un subprogram de mai multe ori, la fiecare execuie cu alte
date.

Proceduri. Declarare i apel. Variabile globale i locale


O procedur este un modul de program alctuit dintr-o secven de instruciuni care se execut ca urmare a apelrii
procedurii dintr-un alt modul.
Exemplu: Fie dou numere reale a i b, realizeaz un program care afieaz media aritmetic a celor dou numere.
Vom prezenta, pentru comparaie:
varianta cu un singur modul principal(Varianta V1)
varianta n care folosim o procedur pentru calcularea mediei aritmetice (Varianta V2)

Deci, o procedur poate s primeasc date din partea modulului apelant, date numite parametri. n cazul procedurii
calcul_media, din exemplul nostru nu are parametri. Ea folosete valorile a i b citite anterior n programul
principal.
Sunt aceste variabile cunoscute de procedur, dei ele au fost stabilite n afara acesteia? Da, deoarece
variabilele a i b au fost declarate la nceputul programului, deci valorile lor sunt vzute n tot programul.
Ele se numesc variabile globale.

Conclzii:
Comparnd {Varianta V2} i {Varianta V3} putem formula cteva concluzii:
Domeniu de vizibilitate al unei variabile(constante) este zona din program n care este vzut declaraia acesteia,
adic zona de program n care e cunoscut valoarea sa.
Dac o variabil e declarat n interiorul unui subprogram = variabil local.
Dac o variabil e declarat la nceputul programului principal = variabil global.
Putem avea ntr-un program o variabil local i una global cu acelai nume. n acest caz, n subprogramul n care
a fost declarat, variabila local ascunde variabila global cu acelai nume, adic n timpul execuiei
subprogramului este vzut valoarea variabilei locale, iar n afara subprogramului este cunoscut variabila global.
Exemplu: Ilustrm deosebire ntre variabilele globale i cele locale:
Considerm un program care conine:
- un modul principal P
- trei subprograme, notate P1, P2, P3.
presupunem c avem urmtoarele variabile:
x, variabil global
b, variabil local n P1
m, variabil local n P2
programul principal apeleaz procedurile P1 i P2, iar P1 apeleaz
P3
Care va fi domeniul de vizibilitate n acest caz?
Astfel:
variabila x, fiind global, este vizibil n tot programul, adic n
modulul principal P i n procedurile P1, P2, P3.
Variabila b, ea nu e vizibil n modulul principal P i nici n
procedura P2.
variabila m, fiind variabil local n procedura P2, este vizibil n
procedura P2

Probleme rezolvate