ИНФОРМАТИКА · 7 КЛАСС
Алгоритмы и Робот · Интерактивный конспект

§ 10. Алгоритмическая конструкция повторение

Найдём повторяющийся фрагмент, запишем его циклом for и проверим количество итераций, команды внутри тела и обработку последней клетки.

Попробовать на модели ↓
Разбираемся в теме

Основные пункты параграфа

1

Тело цикла и число повторений

Цикл заменяет многократную запись одной последовательности.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Число повторений

Учебная модель команд PascalABC.NET. Выполняйте программу по шагам; следите за клеткой, датчиками и закраской.

Чтобы пять раз выполнить Paint; Right;, можно выписать десять команд или использовать цикл. Повторяется вся пара действий, а не только первое слово. Один проход тела называют итерацией. Количество выполнений конкретной команды зависит и от числа итераций, и от числа её вхождений в тело.

В цикле с параметром число повторений задаётся заранее. Например, for var i := 1 to 4 do выполняет тело при i = 1, 2, 3, 4. Параметр служит счётчиком. Не следует путать его значение с координатой Робота: связь появляется только через команды движения.

Главная мысль: Тело цикла — команды, повторяемые при каждом выполнении цикла.
2

Запись for в PascalABC.NET

Границы включаются, если начальное значение не превосходит конечное.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Границы цикла for

Учебная модель команд PascalABC.NET. Выполняйте программу по шагам; следите за клеткой, датчиками и закраской.

for var i := 1 to 4 do
begin
  Paint;
  Right;
end;

Заголовок читают «для i от 1 до 4 делать». begin и end объединяют две команды в одно тело. Если тело содержит ровно одну команду, скобки можно опустить: for var i := 1 to 4 do Right;. Вариант с объявлением var прямо в заголовке относится к PascalABC.NET.

ГраницыЗначения iИтераций
1 to 41, 2, 3, 44
3 to 53, 4, 53
4 to 441
5 to 3Нет0
Главная мысль: for var i := a to b do задаёт возрастающий счётчик; число итераций равно max(0, b − a + 1).
3

Что находится внутри цикла

Отступы помогают читать, но состав тела задают правила языка.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Что входит в тело?

Учебная модель команд PascalABC.NET. Выполняйте программу по шагам; следите за клеткой, датчиками и закраской.

for var i := 1 to 4 do
  Paint;
Right;

В этой записи Paint выполняется четыре раза в одной клетке, а Right — один раз после цикла. Отступ или перевод строки не добавляют Right в тело. Если нужно повторять обе команды, требуются операторные скобки. Сравнивайте не только картинку, но и количество движений.

Главная мысль: Без begin … end после do циклу принадлежит только одна следующая команда.
4

Границы поля и последняя клетка

Число перемещений на один меньше числа клеток в прямом отрезке пути.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Последняя клетка

Учебная модель команд PascalABC.NET. Выполняйте программу по шагам; следите за клеткой, датчиками и закраской.

Для ряда из пяти клеток при старте в первой безопасный вариант: четыре раза выполнить Paint; Right;, затем Paint отдельно. Получится пять закрашенных клеток и четыре перемещения. Если повторить Paint; Right; пять раз, последняя команда попытается выйти за границу.

for var i := 1 to 4 do
begin
  Paint;
  Right;
end;
Paint;
Главная мысль: Чтобы посетить N соседних клеток от первой до последней, нужно N − 1 перемещений.
Интерактивная практика

Исследуйте и примените

Проверьте модель на нескольких наборах данных, затем выполните самостоятельное задание.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Лаборатория: примените и проверьте

Учебная модель команд PascalABC.NET. Выполняйте программу по шагам; следите за клеткой, датчиками и закраской.

Соберём главное

Шесть выводов

01

Тело цикла — команды, повторяемые при каждом выполнении цикла.

02

for var i := a to b do задаёт возрастающий счётчик; число итераций равно max(0, b − a + 1).

03

Без begin … end после do циклу принадлежит только одна следующая команда.

04

Чтобы посетить N соседних клеток от первой до последней, нужно N − 1 перемещений.

05

Если начальное значение счётчика больше конечного, тело рассматриваемого возрастающего цикла не выполняется.

06

Закраска N клеток требует N команд Paint; после последней клетки лишнее перемещение может привести к столкновению со стеной.

Самопроверка

Тест: 10 вопросов

Один верный ответ. За ответ — 0,5 балла. Откройте и проверьте себя.

1. Что называют телом цикла?

2. Сколько итераций у for i := 2 to 6 do?

3. Сколько итераций у for i := 3 to 3 do?

4. Сколько итераций у возрастающего for i := 5 to 2 do?

5. Как включить две команды в тело?

6. В for i := 1 to 4 do Paint; Right; сколько движений?

7. Сколько шагов нужно пройти по ряду из 5 клеток от первой до последней?

8. После четырёх Paint; Right; в ряду из пяти клеток последняя клетка…

9. Можно ли вызывать процедуру в теле цикла?

10. Когда полезен цикл с параметром?

ВыводыТестВ началоВсе параграфы
↑

Загрузка прогресса…