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