Subprogramele sunt blocuri de cod reutilizabil care îndeplinesc o sarcină specifică, fiind esențiale pentru modularizare și evitarea replicării codului. În C/C++, există funcții (care returnează o valoare) și proceduri (implementate ca funcții de tip void, care nu returnează nimic). Parametrii pot fi transmiși prin valoare (copie) sau prin referință (pointeri/referințe), iar înțelegerea acestor concepte este crucială pentru Bacalaureat.
Subprogramele reprezintă blocuri de cod reutilizabil care îndeplinesc o sarcină specifică. În programare, ele sunt esențiale pentru modularizare, evitând replicarea codului și facilitând întreținerea.
În limbajul C/C++ (utilizat frecvent la Bacalaureat), distingem două tipuri principale: funcții și proceduri.
Parametrii sunt variabile locale care permit transferul datelor între programul principal și subprogram. Aceștia pot fi:
int suma(int a, int b) returnează suma.int getNumber() citește de la tastatură.void afisare(int x) afișează valoarea.Exemplul 1 (Funcție cu parametri prin valoare): Să se scrie o funcție care primește două numere întregi și returnează maximul dintre ele. În C: int max(int a, int b) { if (a > b) return a; else return b; } Apel: int m = max(10, 20); Rezultat: m = 20. Se observă că parametrii a și b sunt copii ale valorilor 10 și 20; modificarea lor în funcție nu afectează variabilele din program.
Exemplul 2 (Procedură cu parametri prin referință): Să se scrie o procedură care interschimbă valorile a două variabile întregi. În C: void swap(int *x, int *y) { int temp = *x; *x = *y; *y = temp; } Apel: int a=3, b=7; swap(&a, &b); // acum a=7, b=3. Se folosesc pointeri pentru a modifica direct variabilele originale.
Exemplul 3 (Funcție recursivă): Să se calculeze factorialul unui număr n folosind o funcție recursivă. În C: long factorial(int n) { if (n == 0) return 1; else return n * factorial(n-1); } Apel: long rez = factorial(5); Rezultat: 120. Explicație: funcția se autoapelează până la cazul de bază (n=0), apoi se întoarce calculând produsul.
Vrei exerciții pe lecția asta + AI care te ajută pas cu pas?
Cont gratuit — 20 întrebări AI/zi, exerciții nelimitate.