Sunteți pe pagina 1din 12

Subprograme

Prin subprogram vom înţelege un ansamblu alcătuit din


declarări şi instrucţiuni scrise în vederea unei
prelucrări(calcule, citiri, scrieri) şi care poate fi utilizat(rulat)
doar dacă este apelat de un program sau de alt subprogram.

O problemă mai complexă se rezolva mai uşor dacă este


descompusă în altele mai mici(citire, sortare, tipărire).
Avantajele utilizării subprogramelor:

· reutilizarea codului(o dată scris, un subprogram poate fi utilizat de


mai multe programe)

· elaborarea algoritmilor prin descompunerea problemei în altele mai


simple

· reducerea numărului de erori ce pot apărea la scrierea programelor

· depistarea cu uşurinţă a erorilor.


OBS. În C++ subprogramele sunt de tip funcţie.
În esenţă o funcţie este alcătuită din:
Antet
Corpul funcției
Antet – acesta conţine mai multe informaţii importante
necesare compilatorului: numele funcţiei, lista parametrilor
formali, tipul rezultatului.
Structura antetului este:

tip nume(lista parametrilor formali)


Există posibilitatea ca lista parametrilor formali să fie vidă.
Exemple de antete:
◦ int suma(int a, int b) – funcţia se numeşte suma,
returnează un rezultat întreg şi are doi parametri formali de
tip int, a şi b.
◦ void t(int n, float v[20]) - funcţia se numeşte t, este de tip
void(nu returnează rezultat prin nume), are doi parametri
formali, primul numit n de tip întreg, al doilea un vector cu
20 de componente de tip float.
Corpul funcției – acesta cuprinde declaraţiile
variabilelor locale şi instrucţiunile propriu-zise.
O funcţie returnează rezultatul la întâlnirea instrucţiunii
return, care are forma:
return expresie.
OBS. trebuie ca tipul expresiei să coincidă cu tipul funcţiei
În absenţa instrucţiunii return, execuţia funcţiei se
încheie după execuţia ultimei instrucţiuni, dar în acest caz
nu va întoarce nicio 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ă ultimă formă de apel nu este valabilă în cazul
funcţiilor de tip void.
În terminologia utilizată în teoria subprogramelor (în caz particular
în cazul funcţiilor) se utilizează termenii parametrii formali şi
parametrii efectivi.
◦ Parametrii care se găsesc în antetul funcţiei se numesc parametri
formali.
Atunci când scriem o funcţie nu cunoaştem valoare 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 acestora sunt cunoscute)
Între parametrii formali şi cei efectivi trebuie să existe o
anuită concordanţă, descrisă prin următoarele reguli:
◦ numărul parametrilor formali trebuie să coincidă cu
numărul parametrilor efectivi
◦ tipul parametrilor formali trebuie sa conincidă cu tipul
parametrilor efectivi
OSB. Nu este obligatoriu ca numele parametrilor formali sa
coincidă cu numele parametrilor efectivi
Aplicații

1. Se citește n, număr natural. Să se scrie programele care


tipăresc valoarea expresiilor.
2. Se citește n un număr natural. Se citește un vector cu n
componente numere reale. Se cere să se tipărească
vectorul sortat crescător, programul urmând să conțină trei
funcții: citire, sortare și afisare.

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