Subiectul II cere să urmărești ce afișează un ciclu, să transformi un for în while și să scrii un program cu repetare. Aici ai cele trei instrucțiuni în Pascal și C++, tehnica tabelului de urmărire și punctele pe care le dă baremul.
Instrucțiunea for are contorul, valoarea inițială și cea finală scrise în antet, iar numărul de repetări este cunoscut dinainte: de la a la b se execută b−a+1 ori. while verifică înainte de fiecare repetare, deci poate să nu se execute niciodată. repeat verifică la sfârșit, deci corpul lui se execută cel puțin o dată; atenție că until oprește când condiția devine adevărată, iar while continuă cât timp este adevărată.
Corpul ciclului Dacă repeți mai mult de o instrucțiune, ai nevoie de begin ... end; în Pascal și de acolade în C++. Fără ele se repetă doar prima instrucțiune, iar restul se execută o singură dată, după ciclu.
Transformarea unui for în while Aceasta este cerința care apare în teste și baremul o punctează pe elemente:
1)atribuirea valorii inițiale a contorului, înainte de ciclu
2)condiția din while, cu aceeași limită ca în for
3)instrucțiunea compusă, cu toate instrucțiunile din corp
4)incrementarea contorului, în interiorul corpului
Dacă lipsește incrementarea, ciclul nu se mai oprește; dacă lipsește atribuirea inițială, contorul pornește de la o valoare nedefinită.
for i := 1 to 5 do
begin
read(x);
s := s + x;
end;
i := 1;
while i <= 5 do
begin
read(x);
s := s + x;
i := i + 1;
end;
Tabelul de urmărire Când se cere ce afișează programul, scrie un tabel cu o coloană pentru fiecare variabilă și un rând pentru fiecare repetare. Notează și ce se afișează, în ordine. Este singura metodă care nu te lasă să pierzi o iterație.
Tipare care revin în teste
suma sau numărarea: s := s + x, k := k + 1
cifrele unui număr: n mod 10 dă ultima cifră, n div 10 taie ultima cifră, iar ciclul merge while n > 0; pentru n=0 ciclul nu se execută deloc, de aceea numărul de cifre se tratează separat
puterile succesive: p := 1 și apoi p := p * a cât timp p <= Q
înaintare și alunecare (melcul din fântână): în fiecare zi dist := dist + x, iar noaptea, dacă nu a ieșit, dist := dist - y
afișarea pe coloane: write(i:5) aliniază la cinci poziții, writeln trece la rând nou
Ce afișează, exact write lasă cursorul pe același rând, writeln trece la rândul următor. Dacă programul scrie write('s=', s), răspunsul cerut cuprinde și prefixul s=, nu doar valoarea; formatul face parte din răspuns.
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.