Subprograme
1. Structura și modul de definire al subprogramelor
Un subprogram este o secvență de instrucțiuni care poate fi apelată în mod repetat într-un program. Acesta permite modularizarea codului și îmbunătățește claritatea și reutilizarea acestuia.
Subprogramele pot fi de două tipuri:
- Proceduri – nu returnează o valoare
- Funcții – returnează o valoare
2. Declararea și apelul subprogramelor
Un subprogram trebuie declarat și definit înainte de a putea fi apelat. În limbajele de programare moderne, subprogramele pot fi definite astfel:
Exemplu: Declarația și apelul unei funcții în Python
def suma(a, b):
return a + b
rezultat = suma(5, 10)
print(rezultat)
3. Transferul parametrilor la apel
Există două moduri principale de a transfera parametrii către un subprogram:
- Prin valoare – se transmite o copie a valorii
- Prin adresă (referință) – se transmite adresa variabilei, permițând modificarea valorii inițiale
Exemplu: Parametri prin valoare vs. prin referință în Python
def modifica_valoare(x):
x = x + 10
def modifica_lista(lst):
lst.append(100)
numar = 5
lista = [1, 2, 3]
modifica_valoare(numar)
modifica_lista(lista)
print(numar) # Rămâne 5
print(lista) # Se modifică [1, 2, 3, 100]
4. Returnarea valorilor de către subprograme
O funcție returnează o valoare utilizând cuvântul cheie return. Această valoare poate fi utilizată în expresii sau stocată într-o variabilă.
Exemplu: Funcție care returnează valoarea maximă
def maxim(a, b):
if a > b:
return a
else:
return b
rezultat = maxim(10, 20)
print(rezultat)
5. Variabile locale și globale
Variabilele într-un subprogram pot fi:
- Locale – definite în interiorul subprogramului, accesibile doar acolo.
- Globale – definite în afara subprogramului, accesibile oriunde în program.
Exemplu: Variabile locale vs. globale
x = 10 # Variabilă globală
def functie():
y = 20 # Variabilă locală
print(x, y)
functie()
print(x) # Va funcționa
print(y) # Va genera eroare
6. Aplicaţii folosind subprograme
Subprogramele sunt folosite în multe aplicații practice, cum ar fi:
- Calculul sumelor, produselor, mediilor
- Sortarea și căutarea într-un tablou
- Generarea de rapoarte și statistici
Exemplu: Calculul sumei unei liste de numere
def suma_lista(lista):
suma = 0
for num in lista:
suma += num
return suma
numere = [1, 2, 3, 4, 5]
rezultat = suma_lista(numere)
print(rezultat)