← К списку тем

Информатика · 8 класс · Информатика ФГОС · урок 19 · только теория

Разработка несложных алгоритмов с использованием циклов для управления формальными исполнителями

Тема посвящена созданию алгоритмов с циклами для управления формальными исполнителями — такими, как Робот, Чертёжник или Кузнечик. Мы разберём, как правильно строить повторяющиеся действия, чтобы программа была короткой и понятной, и как избегать зацикливания.

Чему учимся понимать

Научиться составлять и понимать алгоритмы с циклами для формальных исполнителей, правильно определять условие продолжения и число повторений.

Зачем это нужно

Циклы — основа автоматизации: они позволяют компьютеру или роботу выполнять однотипные действия без участия человека. Понимание циклов помогает в программировании, робототехнике и даже в повседневной жизни, когда нужно организовать повторяющиеся процессы.

Опорные понятия

Формальный исполнительАлгоритмЦиклТело циклаУсловие продолжения циклаСчётчик повторенийЗацикливаниеКоманда исполнителя

Главные тезисы

  • Формальный исполнитель — это объект, который выполняет строго определённый набор команд, не задумываясь об их смысле.
  • Цикл — это конструкция алгоритма, которая позволяет повторить группу команд несколько раз.
  • Тело цикла — это команды, которые повторяются; оно должно быть ограничено и понятно исполнителю.
  • Условие продолжения цикла определяет, сколько раз будут выполняться команды; оно проверяется перед каждой итерацией.
  • Цикл с известным числом повторений (цикл «N раз») используется, когда заранее известно, сколько раз нужно выполнить действия.
  • Цикл с условием (цикл «пока») используется, когда число повторений зависит от ситуации, которую проверяет исполнитель.
  • Зацикливание — это ошибка, когда условие никогда не становится ложным, и программа работает бесконечно.
  • Грамотное использование циклов делает алгоритм короче, понятнее и менее подверженным ошибкам.

Определения

Формальный исполнитель
Это объект (например, Робот или Чертёжник), который умеет выполнять только определённый набор команд, и делает это буквально, не проявляя инициативы.
Алгоритм
Последовательность команд, которые нужно выполнить, чтобы достичь цели; для формального исполнителя она должна быть точной и конечной.
Цикл
Конструкция в алгоритме, которая заставляет исполнителя повторять одну и ту же группу команд несколько раз.
Тело цикла
Команды, которые повторяются в цикле; они записываются внутри цикла и выполняются каждый раз.
Условие продолжения цикла
Логическое выражение, которое проверяется перед каждой итерацией; если оно истинно, цикл продолжается, если ложно — заканчивается.
Счётчик повторений
Переменная, которая хранит, сколько раз уже выполнился цикл; используется в циклах с известным числом повторений.
Зацикливание
Ситуация, когда условие цикла никогда не становится ложным, и исполнитель выполняет команды бесконечно.

Ключевые факты и правила

  • В школьных алгоритмических языках цикл с известным числом повторений записывается как: «нц N раз ... кц», где N — число повторений.
  • Цикл с условием записывается как: «нц пока <условие> ... кц»; условие проверяется перед каждым выполнением тела цикла.
  • Тело цикла должно содержать команды, которые изменяют ситуацию, чтобы условие когда-нибудь стало ложным; иначе произойдёт зацикливание.
  • Число повторений в цикле «N раз» должно быть целым неотрицательным числом; если N = 0, цикл не выполнится ни разу.
  • Для формального исполнителя Робот команды могут быть: «вверх», «вниз», «влево», «вправо», «закрасить»; циклы позволяют, например, закрасить ряд клеток.
  • Циклы можно вкладывать друг в друга (вложенные циклы), чтобы обрабатывать двумерные области, например, закрасить прямоугольник.

Теория

Определите, какое действие нужно повторить, и сколько раз (или при каком условии).

Выберите тип цикла: если число повторений известно заранее — цикл «N раз», если зависит от ситуации — цикл «пока».

Запишите тело цикла — команды, которые должны повторяться, и проверьте, что они не противоречат системе команд исполнителя.

Для цикла «пока» убедитесь, что условие может стать ложным: в теле цикла должны быть команды, изменяющие ситуацию.

Проверьте алгоритм на простом примере (мысленно или на бумаге), чтобы убедиться, что он конечен и приводит к цели.

Примеры

  1. Пример 1случай
    • Исполнитель Робот стоит в начале ряда клеток. Чтобы закрасить 5 клеток подряд, можно использовать цикл «нц 5 раз: закрасить
    • вправо
    • кц»
  2. Пример 2случай

    Исполнитель Чертёжник рисует квадрат

    Пояснение

    • команды «опусти перо», затем цикл «нц 4 раза: вперёд 50
    • вправо 90
    • кц» — так получается квадрат без повторения четырёх одинаковых блоков
  3. Пример 3случай
    • В жизни цикл — это, например, алгоритм мытья посуды: пока есть грязная тарелка, мыть её
    • условие — «есть грязная тарелка», тело — «помыть тарелку»
  4. Пример 4случай
    • Кузнечик может прыгать по числовой прямой
    • чтобы переместиться на 10 шагов вправо, можно использовать цикл «нц 10 раз: вправо 1
    • кц»

Интересно знать

  • Понятие цикла в программировании появилось ещё в 1950-х годах, когда компьютеры стали использовать для автоматизации вычислений; до этого программы были линейными и очень длинными.
  • Робот-пылесос — это реальный формальный исполнитель: он выполняет команды датчиков и циклы, чтобы убирать комнату, и если условие неверное, он может «зациклиться» в углу.
  • В древних механизмах, например, в часах с кукушкой, использовались механические циклы: шестерёнки повторяли одно и то же движение, чтобы кукушка появлялась каждый час.

Техника безопасности

  • При работе с компьютером не запускайте программу с заведомо бесконечным циклом — это может привести к зависанию системы; всегда проверяйте условие.
  • Если используете среду исполнителя (например, Кумир), сохраняйте файл перед запуском, чтобы не потерять работу при ошибке.

Связанные темы

  • Алгоритмы и исполнители (урок 18)
  • Вспомогательные алгоритмы (урок 20)
  • Ветвления в алгоритмах (урок 17)
  • Программирование циклов на языке Паскаль (урок 21)