Prin subprogram se intelege un ansamblu alcatuit din tipuri de date, variabile si instructiuni scrise in vederea unei anumite prelucrari (calcule, citiri, scrieri) si care poate fi utilizat (rulat) doar daca este apelat de un program sau de un alt subprogram.
Subprogramul este cea mai mica unitate de program care poate fi compilata separat.
Exemplu: Se citeste un vector cu n componente numere intregi. Se cere sa se tipareasca vectorul sortat.
Aceasta problema poate fi rezolvata si clasic, utilizand functia main in care se vor realiza toate prelucrarile necesare pentru rezolvarea problemei:
- citeste dimensiunea vectorului n
- citeste elementele vectorului
- sorteaza vectorul utilizand unul din algoritmii cunoscuti
- afiseaza vectorul sortat
De aceasta data vom incerca sa rezolvam problema utilizand tehnica programarii modularizate, adica "spargand" problema in subprobleme mai mici care vor fi rezolvate, fiecare, de cate un subprogram. In acest caz, programul ar arata astfel:
- apeleaza subprogramul care citeste dimensiunea si elementele vectorului
- apeleaza subprogramul care sorteaza vectorul
- apeleaza subprogramul care afiseaza vectorul
Utilizand acesta metoda, vom obtine urmatoarea structura de program:
In structura modulara de mai sus am notat cu v vectorul supus prelucrarii, iar cu n dimensiunea lui, adica numarul de elemente.
In general, o problema complexa se rezolva mai usor daca o descompunem in altele mai simple; sansele de a gresi la scrierea unui subprogram sunt mai mici decat acelea de a gresi la scrierea unui program mare. Acesta din urma rezulta din asamblarea subprogramelor la care se adauga, eventual, cateva linii scrise in programul principal. Avantajele utilizarii subprpogramelor sunt:
- reutilizarea codului : o data scris, un subprogram poate fi utilizat de mai multe programe
- elaborarea algoritmilor prin descompunerea problemei in altele mai simple; in acest fel putem rezolva mai usor problema, eventual prin colaborarea unei echipe de programatori
- reducerea numarului de erori care pot aparea la scrierea programelor
- depistarea cu usurinta a erorilor : verificam subprogramele, apoi modul in care le-am asamblat
In limbajul C/C++ subprogramele sunt de tip functie, inclusiv functia main este un subprogram, primul care se executa la rularea unui program.
2. Structura functiilor si apelul lor
2.1 Generalitati
In esenta, o functie are structura:
antet
instructiune compusa
a) Anteul contine mai multe informatii importante necesare compilatorului si anume: numele functiei, lista parametrilor formali, tipul rezultatului.
Structura antetului este:
tip nume(lista parametrilor formali)
Lista parametrilor formali este de forma:
parametru1,parametru2, ,parametrun
Fiecare parametru are forma:
tip nume
Observatie:
Exista si posibilitatea ca lista parametrilor formali sa fie vida.
b) Instructiunea compusa cuprinde declaratiile variabilelor locale si instructiunile propriu-zise care descriu operatiile realizate de catre functie.
Observatii:
- poate fi tip al unei functii orice tip de data cu exceptia tablourilor
Pentru a descărca acest document,
trebuie să te autentifici in contul tău.