Lecții · BAC · Informatica
Subprograme: antet, parametri, apel și variabile locale
Tema din testele ANCE: Subprograme
Subiectul III începe cu un program de analizat: antetul unui subprogram, tipul returnat, parametrii formali, numărul de apeluri și ce afișează la final. Aici ai regulile și felul în care baremul plătește fiecare răspuns scurt.
- Ce trebuie să știi
- Cum apare la examen
- Exemplu rezolvat
- Greșeli tipice
- Verifică-te
Ce trebuie să știi
Funcție și procedură
O funcție întoarce o valoare și se folosește într-o expresie; o procedură face o acțiune și se apelează ca instrucțiune. În C++ ambele sunt funcții, iar procedura este o funcție cu tipul void.
| Pascal | C++ | |
|---|---|---|
| antet de funcție | function vrf(q: integer): boolean; | bool vrf(int q) |
| antet de procedură | procedure cifre(q : string); | void cifre(string q) |
| întoarcerea valorii | vrf := b; | return b; |
| apel de procedură | afisare; | afisare(); |
| apel de funcție | x := sir; | x = sir(); |
Antetul
Antetul este primul rând al subprogramului: cuvântul cheie, numele, lista parametrilor formali și, la funcție, tipul rezultatului. Când itemul cere „subliniați antetul”, subliniezi exact acest rând, nu tot subprogramul și nu apelul.
Parametri formali și parametri efectivi
Parametrii formali sunt numele din antet, de exemplu p și q din function medie (p, q: integer): real;. Parametrii efectivi sunt valorile trimise la apel, de exemplu medie(x[i], y[i]). Numărul și tipul lor trebuie să corespundă.
Variabile locale și globale
O variabilă declarată în interiorul subprogramului este locală: există doar cât timp el se execută și nu se vede din afară. O variabilă declarată înaintea subprogramelor este globală și poate fi folosită în toate.
Când un subprogram citește sau modifică o variabilă globală în loc să primească totul prin parametri, spunem că programul conține comunicare prin variabile globale. Itemii din teste cer tocmai recunoașterea acestei situații: dacă funcția schimbă un contor global, afirmația este adevărată.
Întoarcerea valorii în Pascal
Rezultatul se dă atribuindu-l numelui funcției: m := rez;. Dacă uiți această atribuire, funcția întoarce o valoare nedefinită, chiar dacă restul calculului este corect. În C++ rolul acesta îl are return.
Numărul de apeluri
Apelurile se numără acolo unde apar în execuție, nu în textul programului: un apel scris o singură dată, dar aflat într-un ciclu cu patru repetări, înseamnă patru apeluri.
Subprograme în problemele de calcul
La itemii cu metode numerice, funcția matematică se scrie ca subprogram separat și se apelează în ciclu:
function f(x : real) : real;
begin
f := sqr(x) / sqrt(x + 0.8) + 2;
end;Baremul dă un punct separat pentru scrierea corectă a acestei funcții și alt punct pentru apelul ei, deci merită scrisă chiar dacă restul programului nu este gata.
Funcții predefinitelength(s) dă numărul de caractere ale unui șir, ord și chr trec între caracter și cod, abs, sqr, sqrt, trunc fac calculul obișnuit. Ele se apelează la fel ca subprogramele proprii, dar nu se declară.
Restul lecției e în abonament
Itemii reali ANCE în care apare tema, exemplul rezolvat pas cu pas, greșelile tipice și cele 7 întrebări de verificare se deschid cu abonamentul. „Ce trebuie să știi” rămâne gratuit.
Se deschide cu abonamentul
- Cum apare la examen
- Exemplu rezolvat
- Greșeli tipice
- Verifică-te
