Nota10

Уроки · BAC · Информатика

Structuri repetitive: for, while și repeat

Тема из тестов 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.

Урок на румынском.

Читать урок на русском

Что нужно знать

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.

Остальная часть урока доступна по подписке

Настоящие задания ANCE по этой теме, разбор примера шаг за шагом, типичные ошибки и 7 вопросов для самопроверки открываются по подписке. «Что нужно знать» остаётся бесплатным.

Открывается по подписке

  • Как это бывает на экзамене
  • Разбор примера
  • Типичные ошибки
  • Проверь себя

Проверь свой уровень бесплатно