Subprogramele (funcțiile) sunt „rețetele" programării: le scrii o singură dată, le apelezi de câte ori vrei, cu ingrediente diferite. De aici începe programarea modulară — și jumătate din subiectul III de BAC.
O colecție de instrucțiuni care îndeplinesc o sarcină, grupate sub un nume. Ca o rețetă de prăjitură: o scrii o dată, o folosești mereu — cu ingrediente diferite.
Numele funcției + lista de parametri. Cartea de vizită.
„Ingredientele" pe care le primește la fiecare apel.
Instrucțiunile care se execută efectiv.
Rezultatul trimis înapoi. Opțional — poate lipsi (void).
Procedural (void) = execută o acțiune (afișează), fără să întoarcă nimic. Operand (return) = calculează și returnează o valoare pe care o poți folosi mai departe.
Formali = numele din definiția funcției. Efectivi = valorile trimise la apel. La apel, efectivii se copiază în formali, în ordinea pozițiilor.
Același apel dubleaza(n) — două efecte total diferite. Privește memoria în paralel.
🐍 Python — la fel, tot pe copie:
🐍 Python — NU are & pentru numere; primești prin return:
Locală = trăiește doar cât rulează funcția. Globală = vizibilă peste tot. Cine „vede" ce?
⚙ C++
🐍 Python — aceeași regulă:
↑ ascunde x-ul global cât timp funcția rulează
Modele pe care le vei rescrie de zeci de ori. Observă: fiecare problemă = o funcție cu treabă clară.
🐍 Python
return în mijlocul buclei = ieșire imediată. Apel: if (estePrim(n)) …
🐍 Python
Funcție „void" în Python = funcție fără return (returnează None).
🐍 Python
n e transmis prin VALOARE → funcția „consumă" copia, originalul rămâne intact.
🐍 Python — fără &: returnezi valorile ordonate
& obligatoriu în C++ — altfel ordonează copiile și main nu vede nimic!
10 întrebări, exact conceptele de mai sus. Țintește 10/10.
Programarea modulară pe scurt.
Afișați 1!, 2!, …, n! — apelează funcția de mai multe ori.
Rezolvă pe pbinfo.ro →