Тема 6 · Информатика
Программирование: циклы
Циклы for, while и repeat, вложенные циклы, обработка цифр числа, подсчёт числа повторений. 100 заданий на отработку.
Простыми словами
Цикл — это «повтори, пока нужно». Как отжимания: можно сказать «сделай 10 раз» (for), «отжимайся, пока есть силы» (while) или «отжимайся, пока не устанешь» (repeat … until). Разница — в том, когда проверяют условие.
| Цикл | Условие проверяется | Особенность |
|---|---|---|
for i := a to b do | число повторений известно | ровно раз; downto — шаг |
while условие do | перед телом | работает, пока условие истинно; может не выполниться ни разу |
repeat … until условие | после тела | работает, пока условие ложно; выполнится хотя бы раз |
Как устроены while и repeat
Условия у while и repeat противоположны по смыслу: while i <= 25 и repeat … until i > 25 останавливаются в одном и том же месте.
Трассировка — главный инструмент
Заведите столбец для каждой переменной и заполняйте строку за строкой. Угадывать «в уме» на 5–10 шагах ненадёжно.
s := 0; i := 1; while i <= 7 do begin s := s + i; i := i + 3 end; writeln(s)
| шаг | i перед телом | i ≤ 7? | s |
|---|---|---|---|
| 1 | 1 | да | 1 |
| 2 | 4 | да | 5 |
| 3 | 7 | да | 12 |
| — | 10 | нет | выход |
Ответ: 12.
s := 1; for i := 1 to 5 do s := s + i * i: . Если шагов много, ищите арифметическую прогрессию: .
Цифры числа и число повторений
n mod 10 — последняя цифра числа, n div 10 — число без последней цифры. Цикл while n > 0 do begin … n := n div 10 end перебирает цифры справа налево.
n := 670226; s := 0; while n > 0 do begin s := s + n mod 10; n := n div 10 end
- Цифры: 6, 2, 2, 0, 7, 6. Сумма .
- Если вместо суммы произведение (
s := 1; s := s * (n mod 10)), то ноль среди цифр даст 0.
Сколько раз выполнится тело, если начинается с , растёт на и цикл идёт, пока :
Например, , while i < 105, шаг 2: . Для условия число шагов: .
Проверяйте формулу на маленьком примере: от 1, пока , шаг 1 — тело выполнится 3 раза ().
Вложенные циклы
Если внешний цикл выполняется раз, а внутренний — раз на каждом шаге внешнего, тело внутреннего выполнится раз.
k := 0; for i := 1 to 10 do for j := 1 to 3 do k := k + i * j
- Сумма раскладывается: .
- .
Если граница внутреннего цикла зависит от (for j := 1 to i), повторений не , а — числа нужно складывать.
Где это пригодится: ОГЭ — 1 заданиеЗадания экзамена 9 класса, которые опираются на этот материал — нажмите, чтобы раскрыть список
Готовые работы по теме
Собраны заранее — одним нажатием: распечатать с ключом, раздать ученикам ссылкой или QR-кодом, поменять настройки. Номер набора постоянный: по этой ссылке всегда та же работа.
теория этой темы, 8 заданий по подтемам и ключ — файлом DOCX, который можно править под себя.
Прохождение онлайн
Имя ученика никуда не отправляется: он вводит только номер по списку, а таблицу «номер → фамилия» видите только вы.
Классы, выданные работы и результаты учеников по кодам — в журнале учителя: без регистрации, хранится только на этом компьютере.