Sunteți pe pagina 1din 10

Capitolul : Subprograme.

REALIZAT:PLATON VICTORIA
Notiunea de subprogram.
• Prin subprogram vom înţelege un
ansamblu alcătuit din tipuri de date,
variabile şi instrucţiuni scrise în vederea
unei anumite prelucrări (calcule, citiri,
scrieri) şi care poate fi utilizat (rulat) doar
dacă este apelat de un program sau de alt
subprogram.
AVANTAJELE UTILIZĂRII SUBPROGRAMELOR:
• realizarea codului – o dată scris, un subprogram poate fi utilizat de
mai multe programe;
• • elaborarea algoritmilor prin descompunerea problemei în altele
mai simple. În acest fel, rezolvăm cu mult mai uşor problema;
• • reducerea numărului de erori care pot apărea la scrierea
programelor;
• • depistarea cu uşurinţă a erorilor – verificăm la început
subprogramele, apoi modul în care le-am apelat în cadrul
programului.
Tipuri de parametri
• Parametrii care se găsesc în apelul funcţiei se numesc
parametri formali. Atunci când scriem o funcţie nu
cunoaştem valoarea propriu-zisă a parametrilor.
• Funcţia trebuie să întoarcă rezultatul corect, oricare ar fi
valoarea lor. Din acest punct de vedere ei se numesc
formali.
• Parametrii care se utilizează la apel se numesc parametri
efectivi. La apel, valorile sunt cunoscute. De aceea se
numesc efectivi. Pentru apelul rez=subp(n); parametrul
efectiv este n.
Structura funcţiilor şi apelul lor
• O funcţie este alcătuită din: • Antet – acesta conţine mai multe
informaţii importante necesare compilatorului: numele funcţiei,
lista parametrilor formali, tipul rezultatului
Stuctura antetului este: tip nume(lista parametrilor formali) Lista
parametrilor formali este de forma:
parametru1,parametru2,…parametrun Există posibilitatea ca lista
parametrilor formali să fie vidă. Fiecare parametru are forma: tip
nume
O instrucţiune compusă – aceasta cuprinde declaraţiile variabilelor
locale ţi instrucţiunile propriu-zise. • O funcţie returnează rezultatul
la întâlnirea instrucţiunii return, care este de forma: return
expresie; Trebuie ca tipul expresiei să coincidă cu tipul funcţiei.
• La întâlnirea instrucţiunii return, după atribuirea valorii, execuţia
funcţiei se încheie şi se revine la funcţia care a apelat-o. În absenţa
instrucţiunii return, execuţia funcţiei se încheie după execuţia
ultimei instrucţiuni. În acest caz nu se întoarce nici o valoare.
O funcţie poate fi apelată de sine stătător (prin nume şi lista
parametrilor efectivi), dar poate fi inclusă şi în cadrul expresiilor ,
caz în care, la evaluarea expresiei este apelată. Această formă de
apel nu este valabilă în cazul funcţiilor de tip void.
Variabile Globale
• Se declară în afara corpului oricărei funcţii. Variabilele a şi b sunt
globale. În astfel de cazuri, variabilele respective pot fi utilizate de
toate funcţiile care urmează în textul sursă declaraţiei variabilei
respective. Din acest motiv, astfel de variabile se numesc globale. La
declarare, variabilele globale sunt iniţializate cu 0. # include
<iostream.h> int a; void t() { a=3; cout<<a; } int b; main() { b=4;
cout<<a<<endl; t(); }

Atributele variabilelor globale sunt:
• Clasa de memorare – segmentul de date.
• • Durata de viaţă a variabilelor globale este statică. Ele au spaţiu
rezervat în tot timpul execuţiei programului.
• • Vizibilitatea – În cazul în care declaraţiile acestora sunt înaintea
tuturor funcţiilor, acestea sunt vizibile la nivelul întregului
program(fişier). Dacă anumite funcţii se află plasate înaintea
declaraţiilor acestor variabile, atunci ele sunt vizibile doar pentru
funcţiile care sunt plasate după aceste declaraţii
Variabilele locale
• Sunt declarate în corpul funcţiilor.
• Atributele variabilelor locale • Clasa de memorare a variabilelor
locale este, implicit, segmentul de stivă. Există posibilitatea ca
acestea să fie alocate în registrele microprocesorului, caz în care
declaraţia lor trebuie precedată de cuvîntul cheie register. register
int b=4;
• Atributele variabilelor locale Variabilele locale nu sunt iniţializate
implicit cu 0. Dacă nu sunt iniţializate explicit de programator, ele
reţin o valoare oarecare, numită valoare reziduală.
Reguli în transmiterea parametrilor
• Numărul parametrilor formali trebuie să coincidă cu numărul
parametrilor efectivi.
• Tipul parametrilor formali trebuie să coincidă cu tipul parametrilor
efectivi sau tipul parametrilor efectivi să poată fi convertit implicit
către tipul parametrilor formali la fel ca în cazul atribuirii

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