Procesul de compilare a programului

Funcția. Transmiterea parametrilor către funcții. Supraîncărcarea funcției

Funcția este fragmente de programe relativ independente, proiectate corespunzător și prevăzute cu un nume (blocuri de programe). Antetul blocului definește forma apelului de subrutină. Antetele de funcții constau întotdeauna în identificatorul funcției (cuvântul de serviciu în diferite limbi este diferit) al numelui, variabilele în paranteze care trebuie transmise funcției și valoarea returnată.

Există două moduri de a transfera parametrii funcției:

Atunci când se trece prin valoare în stivă RAM, sunt scrise copii ale valorii argumentului, iar operatorii de funcții lucrează cu aceste copii, nu există acces la valorile parametrilor inițiali ai funcțiilor și, ca urmare, nu există posibilitatea de a le schimba. Stiva este eliberată când se termină apelul pentru funcții.

Când se solicită o funcție, memoria este alocată în plus parametrilor săi formali și fiecare parametru formal este inițializat cu parametrul său real corespunzător. Semantica trecerii parametrilor este identică cu semantica de inițializare. În particular, tipul parametrului actual este mapat la tipul parametrului formal și sunt efectuate toate conversiile de tip standard și definite de utilizator. Există reguli speciale pentru transmiterea vectorilor, mijloacele de trecere a parametrului fără verificare și mijloacele de specificare a parametrilor impliciți.

La stabilirea funcțiilor în programele dumneavoastră, trebuie să specificați tipul valorii funcției de returnare, precum și numărul de parametri și tipul de fiecare dintre ele. Pentru a evita suprapunerea funcțiilor, programul vă permite să definiți mai multe funcții cu același nume. În timpul compilării, programul ia în considerare numărul de argumente utilizate de fiecare funcție, și apoi solicită o opțiune. Oferirea compilatorului a unei opțiuni între mai multe funcții se numește supraîncărcare.

Testarea este procesul de executare a unui program cu diferite date inițiale, pentru care rezultatele cunoscute anterior. Intuitiv începători programatori de obicei

Scopul testării este de a verifica corectitudinea programului, ceea ce este complet greșit. În cele mai multe cazuri, prin toate combinațiile posibile de date-1ii imposibilă, și aleatorie de testare nu dovedește corectă-Ness a programului, deoarece acest program ruleaza pe zece seturi de date, nu înseamnă că va produce rezultate corecte cu privire la acel set-odinnadtsa . Prin urmare, scopul testării este de a detecta erorile.

În consecință, un test care detectează o eroare ar trebui să fie considerat bun. Pentru a forma astfel de teste, sunt definite două strategii:

strategia casetei "albe" (sau testarea rutelor);

strategie cutie neagră.

Când testați folosind strategia "cutie albă", încercările sunt încercate astfel încât cel puțin o dată să treacă prin fiecare ramură a algoritmului. Strategia are un dezavantaj semnificativ: este fundamental imposibil să găsim ruta ratată.

Când se testează folosind strategia "cutie neagră", structura programului este considerată necunoscută și testele sunt selectate astfel încât să se verifice executarea tuturor funcțiilor programului și apoi să se urmărească răspunsul la intrarea datelor incorecte.

În practică, cele mai bune rezultate sunt obținute prin utilizarea ambelor strategii în dezvoltarea testelor.

Articole similare