Subprograme: antet, parametri, apel și variabile locale
The topic in the ANCE tests: Subprograme
zzz
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.
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 predefinite length(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ă.
The rest of the lesson is in the subscription
The real ANCE items where the topic appears, the step-by-step solved example, the typical mistakes and the 7 check questions open with the subscription. “What you must know” stays free.
Source of the tests: the National Agency for Curriculum and Assessment, ance.gov.md. Nota10 is not affiliated with MEC or ANCE. Automatic grading is an estimate, not an official grade.