SlideShare a Scribd company logo
1 of 8
CAPITOLUL 1 
Funcții și proceduri 
• Subprograme 
• Funcții 
• Proceduri 
• Domenii de vizibilitate 
• Comunicarea prin variabile globale 
• Efecte colaterale 
• Recursia
Subprograme 
O problemă complexă poate fi rezolvată prin divizarea ei 
într-un set de părți mai mici. Pentru fiecare parte se scrie o 
anumită secvență de instrucțiuni, denumi 
tă subprogram. 
Interacțiunea între program și subprogram 
În limbajul PASCAL există 2 
tipuri de suprograme, și anume, 
funcții și proceduri: 
<Suprograme>::={<Funcție>;| 
<Procedură>;}
Funcții 
Funcțiile sunt subprograme care calculează și returnează o valoare. Limbajul PASCAL 
conține un set de funcții predefinite, cunoscute oricărui program : sin, cos, eof etc. În 
completare, programul poate defini funcții proprii, care se apelează în același mod ca 
funcțiile-standart. Prin urmare, conceptul de funcție extinde noțiunea de expresie 
PASCAL. 
Textul PASCAL al unei declarații de funcție are forma: 
Function f(x1, x2, ..., xn ) : tr; 
D; 
begin 
... 
f : = e; 
... 
end; 
f- numele funcției; 
(x1, x2, ..., xn )- lista opțională de paremetri 
formali reprezintînd argumentele funcției; 
tr- tipul rezultatului; acesta trebuie să fie 
numele unui tip simplu sau tip referință. 
Antetul este urmat de corpul funcției, format 
din declarațiile locale opționale D și 
instrucțiunea compusă begin ... end. 
Numele f al funcției apare cel puțin o datî în 
partea stîngă a unei instrucțiuni de atribuire care 
se execută: f:=e. Ultima valoare atribuită lui f va 
fi introdusă în programul principal.
Proceduri 
Procedurile sînt subprograme care efectuează prelucrarea datelor comunicate în 
momentul apelului. Limbajul conține procedurile predefinite read, readln,write, writeln ș.a. 
În completare, programatorul poate defini proceduri proprii, care se apelează în același 
mod ca procedurile-standart. Prin urmare, conceptul de procedură extinde noțiunea de 
instrucțiune PASCAL. 
Forma generală a textului unei declarații de procedură este: 
Procedure p(x1, x2, ..., xn ) ; 
D; 
begin 
... 
end; 
p- numele procedurii; 
(x1, x2, ..., xn ) –lista opțională de parametri formali; 
În corpul procedurii sînt incluse: 
D- declarațiile locale( opționale) grupate după aceleași 
reguli ca în cazul funcțiilor; 
Begin...end- instrucțiune compusă; ea nu conține 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);
Domenii de vizibilitate 
Corpul unui program sau subprogram se numește bloc. Deoarece 
subprogramele sînt incluse în programul principal și pot conține la 
rîndul lor alte subprograme, rezultă că blocurile pot fi 
imbricate(incluse unul în altul). Această imbricare de blocuri este 
denumită structură de bloc a programului PASCAL. 
Prin Domeniul de vizibilitate al unei declarații se înțelege textul de program, în care 
numele introdus desemnează obiectul specificat de declarația în studiu. Domeniul de 
vizibilitate începe imediat dupî terminarea declarației și se sfîrșește o dată cu textul 
blocului respectiv.Domeniul de vizibilitate al unei declarației inclus acoperă domeniul de 
vizibilitate al declarației ce implică același nume din blocul exterior. 
Cunoașterea domeniilor de vizibilitate ale declarațiilor este necesară pentru determinarea 
obiectului curent desemnat de un nume. 
De exemplu, identificatorul c din instrucțiunea c:=chr(d) desemnează o variabilă de tip 
char.
Comunicarea prin variabile globale 
Orice variabilă este locală în subprogramul în care a 
fost declarată. O variabilă este globală relativ la un 
subprogram atunci cînd ea se declară în programul 
sau subprogramul ce îl cuprinde fără să fie 
redeclarată în subprogramul, cît și în afara lui, ele 
pot fi folosite pentru transmiterea datelor de 
prelucrat și returnarea rezultatelor.
Efectele colaterale 
Destinația unei funcții este să întoarcă ca rezultat o 
singură valoare. În mod obișnuit, argumentele se 
transmit funcției prin parametr-valoare, iar rezultatul 
calculat se returnează în locul de apel prin numele 
funcției. În completare, limbajul PASCAL permite 
transmiterea argumentelor prin variabile globale și 
parametri-variabilă. 
Prin efect colateral se înțelege o atribuire( în corpul 
funcției) a unei valori la o variabilă globală sau la un 
parametru formal variabilă. Efectele colaterale pot 
influența în mod neașteptat execuția unui program și 
complică procesele de depanare.
Recursia 
Recursia se definește ca o situație în care un subprogram se autoapelează 
fie direct, fie prin intermediul altei funcții sau proceduri. Subprogramul 
care se autoapelează se numește recursiv. 
La orice apel de subprogram, în memoria calculatorului vor fi 
depuse următoarele informații: 
 Valorile curente ale parametrilor transmiși prin valoare; 
 Locațiile(adresele) parametrilor-variabilă; 
 Adresa return, adică adresa instrucțiunii 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-mașină, grafica pe calculator, 
recunoașterea formelor ș.a.

More Related Content

What's hot

Prezentarefunctiadegrad2
Prezentarefunctiadegrad2Prezentarefunctiadegrad2
Prezentarefunctiadegrad2tatiana torgai
 
Functii in pascal
Functii in pascalFunctii in pascal
Functii in pascalm_gutu
 
Tip de date String Pascal
Tip de date String PascalTip de date String Pascal
Tip de date String Pascalm_gutu
 
Sintaxa si limbajul pascal
Sintaxa si limbajul pascalSintaxa si limbajul pascal
Sintaxa si limbajul pascalalinabacalim
 
Fenomene electrice.-campul-electr.
Fenomene electrice.-campul-electr.Fenomene electrice.-campul-electr.
Fenomene electrice.-campul-electr.radubug
 
Codificarea şi decodificarea mesajelor în sistemele de transmisie a informaţiei
Codificarea şi decodificarea mesajelor în sistemele de transmisie a informaţieiCodificarea şi decodificarea mesajelor în sistemele de transmisie a informaţiei
Codificarea şi decodificarea mesajelor în sistemele de transmisie a informaţieiColegiul de Industrie Usoara
 
Sisteme de numeratie calculatoare
Sisteme de numeratie calculatoareSisteme de numeratie calculatoare
Sisteme de numeratie calculatoareroxanaolteanu
 
Proiect didactic. Matematică, cl.9. Proprietățile funcției de gradul doi. Pr...
Proiect didactic. Matematică, cl.9.  Proprietățile funcției de gradul doi. Pr...Proiect didactic. Matematică, cl.9.  Proprietățile funcției de gradul doi. Pr...
Proiect didactic. Matematică, cl.9. Proprietățile funcției de gradul doi. Pr...Angelaruban1
 
Forta - marime vectoriala. Forte coliniare
Forta - marime vectoriala. Forte coliniareForta - marime vectoriala. Forte coliniare
Forta - marime vectoriala. Forte coliniareAlianta INFONET
 
Proiect la inyformatica
Proiect la inyformaticaProiect la inyformatica
Proiect la inyformaticaMakariIuliana
 
Congresul de la Viena. ” Sfânta Alianță„
Congresul de la Viena. ” Sfânta Alianță„Congresul de la Viena. ” Sfânta Alianță„
Congresul de la Viena. ” Sfânta Alianță„MariaChitul
 
Functii aplicatii practice
Functii aplicatii practiceFunctii aplicatii practice
Functii aplicatii practiceliamoraru
 
tabel derivate si integrale
tabel derivate si integraletabel derivate si integrale
tabel derivate si integraleClimenteAlin
 

What's hot (20)

Prezentarefunctiadegrad2
Prezentarefunctiadegrad2Prezentarefunctiadegrad2
Prezentarefunctiadegrad2
 
Tipul tablou
Tipul tablouTipul tablou
Tipul tablou
 
Functii in pascal
Functii in pascalFunctii in pascal
Functii in pascal
 
Tip de date String Pascal
Tip de date String PascalTip de date String Pascal
Tip de date String Pascal
 
Cantitatea de informatie
Cantitatea de informatieCantitatea de informatie
Cantitatea de informatie
 
Sintaxa si limbajul pascal
Sintaxa si limbajul pascalSintaxa si limbajul pascal
Sintaxa si limbajul pascal
 
Sir de caractere in turbo pascal
Sir de caractere in turbo pascalSir de caractere in turbo pascal
Sir de caractere in turbo pascal
 
Proteine Ppt
Proteine PptProteine Ppt
Proteine Ppt
 
Clasificarea undelor
Clasificarea undelorClasificarea undelor
Clasificarea undelor
 
Fenomene electrice.-campul-electr.
Fenomene electrice.-campul-electr.Fenomene electrice.-campul-electr.
Fenomene electrice.-campul-electr.
 
Codificarea şi decodificarea mesajelor în sistemele de transmisie a informaţiei
Codificarea şi decodificarea mesajelor în sistemele de transmisie a informaţieiCodificarea şi decodificarea mesajelor în sistemele de transmisie a informaţiei
Codificarea şi decodificarea mesajelor în sistemele de transmisie a informaţiei
 
Sisteme de numeratie calculatoare
Sisteme de numeratie calculatoareSisteme de numeratie calculatoare
Sisteme de numeratie calculatoare
 
Proiect didactic. Matematică, cl.9. Proprietățile funcției de gradul doi. Pr...
Proiect didactic. Matematică, cl.9.  Proprietățile funcției de gradul doi. Pr...Proiect didactic. Matematică, cl.9.  Proprietățile funcției de gradul doi. Pr...
Proiect didactic. Matematică, cl.9. Proprietățile funcției de gradul doi. Pr...
 
Forta - marime vectoriala. Forte coliniare
Forta - marime vectoriala. Forte coliniareForta - marime vectoriala. Forte coliniare
Forta - marime vectoriala. Forte coliniare
 
Proiect la inyformatica
Proiect la inyformaticaProiect la inyformatica
Proiect la inyformatica
 
Functii derivabile
Functii derivabileFunctii derivabile
Functii derivabile
 
Congresul de la Viena. ” Sfânta Alianță„
Congresul de la Viena. ” Sfânta Alianță„Congresul de la Viena. ” Sfânta Alianță„
Congresul de la Viena. ” Sfânta Alianță„
 
Functii aplicatii practice
Functii aplicatii practiceFunctii aplicatii practice
Functii aplicatii practice
 
Prezentare STEM
Prezentare STEMPrezentare STEM
Prezentare STEM
 
tabel derivate si integrale
tabel derivate si integraletabel derivate si integrale
tabel derivate si integrale
 

Viewers also liked

Proceduri si functii pentru sirurile de caractere
Proceduri si functii pentru sirurile de caractereProceduri si functii pentru sirurile de caractere
Proceduri si functii pentru sirurile de caractereguesta0622
 
Formulare+access[1]
Formulare+access[1]Formulare+access[1]
Formulare+access[1]Claudia
 
Operatii Cu Siruri De Caractere
Operatii Cu Siruri De CaractereOperatii Cu Siruri De Caractere
Operatii Cu Siruri De Caractereguestd77c5a
 
Proiect cl ix
Proiect cl ixProiect cl ix
Proiect cl ixClaudia
 
Functii, tablouri si pointeri in c si c++
Functii, tablouri si pointeri  in c si c++Functii, tablouri si pointeri  in c si c++
Functii, tablouri si pointeri in c si c++Serghei Urban
 

Viewers also liked (8)

Functii si proceduri rom
Functii si proceduri romFunctii si proceduri rom
Functii si proceduri rom
 
Proceduri si functii pentru sirurile de caractere
Proceduri si functii pentru sirurile de caractereProceduri si functii pentru sirurile de caractere
Proceduri si functii pentru sirurile de caractere
 
Formulare+access[1]
Formulare+access[1]Formulare+access[1]
Formulare+access[1]
 
Operatii Cu Siruri De Caractere
Operatii Cu Siruri De CaractereOperatii Cu Siruri De Caractere
Operatii Cu Siruri De Caractere
 
Recursivitate
RecursivitateRecursivitate
Recursivitate
 
Proiect cl ix
Proiect cl ixProiect cl ix
Proiect cl ix
 
Functii, tablouri si pointeri in c si c++
Functii, tablouri si pointeri  in c si c++Functii, tablouri si pointeri  in c si c++
Functii, tablouri si pointeri in c si c++
 
Comenzi fox pro
Comenzi fox proComenzi fox pro
Comenzi fox pro
 

Similar to Functii si-proceduri

Similar to Functii si-proceduri (13)

Cap06
Cap06Cap06
Cap06
 
baze c++sructura unui program declarare variabilepdf.
baze c++sructura unui program declarare variabilepdf.baze c++sructura unui program declarare variabilepdf.
baze c++sructura unui program declarare variabilepdf.
 
manual-de-programare-c
manual-de-programare-cmanual-de-programare-c
manual-de-programare-c
 
Manual de programare c
Manual de programare cManual de programare c
Manual de programare c
 
Subprograme
SubprogrameSubprograme
Subprograme
 
Cap02
Cap02Cap02
Cap02
 
0.0 particularitatile programarii с++
0.0 particularitatile programarii с++0.0 particularitatile programarii с++
0.0 particularitatile programarii с++
 
Recursivitatea
RecursivitateaRecursivitatea
Recursivitatea
 
2006 intro java_v01
2006 intro java_v012006 intro java_v01
2006 intro java_v01
 
Reprezentarea algoritmilor ap 21feb2011
Reprezentarea algoritmilor ap 21feb2011Reprezentarea algoritmilor ap 21feb2011
Reprezentarea algoritmilor ap 21feb2011
 
Manual limbaj c
Manual limbaj cManual limbaj c
Manual limbaj c
 
C++
C++C++
C++
 
Tutorial C++
Tutorial C++Tutorial C++
Tutorial C++
 

Functii si-proceduri

  • 1. CAPITOLUL 1 Funcții și proceduri • Subprograme • Funcții • Proceduri • Domenii de vizibilitate • Comunicarea prin variabile globale • Efecte colaterale • Recursia
  • 2. Subprograme O problemă complexă poate fi rezolvată prin divizarea ei într-un set de părți mai mici. Pentru fiecare parte se scrie o anumită secvență de instrucțiuni, denumi tă subprogram. Interacțiunea între program și subprogram În limbajul PASCAL există 2 tipuri de suprograme, și anume, funcții și proceduri: <Suprograme>::={<Funcție>;| <Procedură>;}
  • 3. Funcții Funcțiile sunt subprograme care calculează și returnează o valoare. Limbajul PASCAL conține un set de funcții predefinite, cunoscute oricărui program : sin, cos, eof etc. În completare, programul poate defini funcții proprii, care se apelează în același mod ca funcțiile-standart. Prin urmare, conceptul de funcție extinde noțiunea de expresie PASCAL. Textul PASCAL al unei declarații de funcție are forma: Function f(x1, x2, ..., xn ) : tr; D; begin ... f : = e; ... end; f- numele funcției; (x1, x2, ..., xn )- lista opțională de paremetri formali reprezintînd argumentele funcției; tr- tipul rezultatului; acesta trebuie să fie numele unui tip simplu sau tip referință. Antetul este urmat de corpul funcției, format din declarațiile locale opționale D și instrucțiunea compusă begin ... end. Numele f al funcției apare cel puțin o datî în partea stîngă a unei instrucțiuni de atribuire care se execută: f:=e. Ultima valoare atribuită lui f va fi introdusă în programul principal.
  • 4. Proceduri Procedurile sînt subprograme care efectuează prelucrarea datelor comunicate în momentul apelului. Limbajul conține procedurile predefinite read, readln,write, writeln ș.a. În completare, programatorul poate defini proceduri proprii, care se apelează în același mod ca procedurile-standart. Prin urmare, conceptul de procedură extinde noțiunea de instrucțiune PASCAL. Forma generală a textului unei declarații de procedură este: Procedure p(x1, x2, ..., xn ) ; D; begin ... end; p- numele procedurii; (x1, x2, ..., xn ) –lista opțională de parametri formali; În corpul procedurii sînt incluse: D- declarațiile locale( opționale) grupate după aceleași reguli ca în cazul funcțiilor; Begin...end- instrucțiune compusă; ea nu conține 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);
  • 5. Domenii de vizibilitate Corpul unui program sau subprogram se numește bloc. Deoarece subprogramele sînt incluse în programul principal și pot conține la rîndul lor alte subprograme, rezultă că blocurile pot fi imbricate(incluse unul în altul). Această imbricare de blocuri este denumită structură de bloc a programului PASCAL. Prin Domeniul de vizibilitate al unei declarații se înțelege textul de program, în care numele introdus desemnează obiectul specificat de declarația în studiu. Domeniul de vizibilitate începe imediat dupî terminarea declarației și se sfîrșește o dată cu textul blocului respectiv.Domeniul de vizibilitate al unei declarației inclus acoperă domeniul de vizibilitate al declarației ce implică același nume din blocul exterior. Cunoașterea domeniilor de vizibilitate ale declarațiilor este necesară pentru determinarea obiectului curent desemnat de un nume. De exemplu, identificatorul c din instrucțiunea c:=chr(d) desemnează o variabilă de tip char.
  • 6. Comunicarea prin variabile globale Orice variabilă este locală în subprogramul în care a fost declarată. O variabilă este globală relativ la un subprogram atunci cînd ea se declară în programul sau subprogramul ce îl cuprinde fără să fie redeclarată în subprogramul, cît și în afara lui, ele pot fi folosite pentru transmiterea datelor de prelucrat și returnarea rezultatelor.
  • 7. Efectele colaterale Destinația unei funcții este să întoarcă ca rezultat o singură valoare. În mod obișnuit, argumentele se transmit funcției prin parametr-valoare, iar rezultatul calculat se returnează în locul de apel prin numele funcției. În completare, limbajul PASCAL permite transmiterea argumentelor prin variabile globale și parametri-variabilă. Prin efect colateral se înțelege o atribuire( în corpul funcției) a unei valori la o variabilă globală sau la un parametru formal variabilă. Efectele colaterale pot influența în mod neașteptat execuția unui program și complică procesele de depanare.
  • 8. Recursia Recursia se definește ca o situație în care un subprogram se autoapelează fie direct, fie prin intermediul altei funcții sau proceduri. Subprogramul care se autoapelează se numește recursiv. La orice apel de subprogram, în memoria calculatorului vor fi depuse următoarele informații:  Valorile curente ale parametrilor transmiși prin valoare;  Locațiile(adresele) parametrilor-variabilă;  Adresa return, adică adresa instrucțiunii 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-mașină, grafica pe calculator, recunoașterea formelor ș.a.