Nota10

Lecții · BAC · Informatica

Structuri repetitive: for, while și repeat

Tema din testele ANCE: Structuri repetitive

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.

Citește lecția în rusă

Ce trebuie să știi

Cele trei instrucțiuni repetitive

Ce facePascalC++
repetare cu contorfor i := 1 to n dofor (i = 1; i <= n; i++)
repetare cât timpwhile cond dowhile (cond)
repetare până cândrepeat ... until cond;do { ... } while (cond);

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 la se execută 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. 1)atribuirea valorii inițiale a contorului, înainte de ciclu
  2. 2)condiția din while, cu aceeași limită ca în for
  3. 3)instrucțiunea compusă, cu toate instrucțiunile din corp
  4. 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 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.

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

Verifică-ți nivelul gratuit