10.1. Алгоритмы с циклами
В окружающем мире можно наблюдать много ситуаций, при которых различные действия, процессы и события повторяются. Некоторые повторяются несколько раз и завершаются. Другие могут повторяться очень долго (например, круговорот воды в природе, движение планет в космическом пространстве, смена времен года, месяцев и дней недели и т. д.). Человеку тоже регулярно приходится выполнять повторяющиеся действия: умываться, одеваться, посещать парикмахерскую, завтракать, ходить на работу и др.
Как правило, человек составляет программы, в которых каждая команда в отдельности и весь алгоритм в целом выполняются за конечное число повторений.
Алгоритмическая конструкция повторение (цикл) определяет последовательность действий, выполняемых многократно. Эту последовательность действий называют телом цикла.
Существует несколько возможностей управлять тем, сколько раз будет повторяться тело цикла.
Алгоритмическая конструкция цикл с параметром (цикл со счетчиком) — способ организации цикла, при котором количество повторов зависит от начального и конечного значений параметра цикла.
Таким образом, цикл с параметром организует выполнение команд тела цикла заранее известное число раз (пример 10.1).
Параметр цикла определяет нумерацию действий в цикле. Параметр цикла может принимать только целые значения. Часто нумерацию начинают с 1 и заканчивают числом N (пример 10.2). В этом случае цикл выполнится N раз. Если нумерация установлена двумя произвольными числами N1 (начальное значение) и N2 (конечное значение), то цикл выполнится (N2 – N1 + 1) раз.
Алгоритмическая конструкция цикла с параметром может изображаться на блок-схеме следующим образом (значение параметра изменяется от 1 до N):
В данной конструкции в прямоугольнике(ах) записываются повторяющиеся команды алгоритма (тело цикла), которые выполняются N раз (Да). При этом после каждого выполнения команд тела цикла происходит проверка, который раз выполняется цикл. На блок-схеме переход на проверку условия изображается в виде стрелки, выходящей из тела цикла и возвращающейся к проверке. Как только команды тела цикла выполнятся N раз (Нет), цикл завершается (пример 10.3). Если N 0, то команда тела цикла не выполнится ни разу.
10.2. Использование команды цикла с параметром для исполнителя Робот
Чтобы составлять алгоритмы с циклами для компьютерного исполнителя Робот, нужно знать, как записывается команда цикла.
Для записи цикла с параметром используется команда for. Формат записи команды:
for var i:= N1 to N2 do1
begin
тело цикла;
end;
Строка for var i:= N1 to N2 do является заголовком цикла. Эту строку можно прочитать следующим образом: «Для переменной i от N1 до N2 делай». Если N2 N1, то команды тела цикла выполнятся (N2 – N1 + 1) раз, иначе цикл не выполнится ни разу.
Операторные скобки — пара слов, определяющих в языке программирования блок команд, воспринимаемый как единое целое, как одна команда.
Слова begin и end; являются операторными скобками в языке Pascal. Если тело цикла состоит из одной команды, операторные скобки можно опустить.
Пример 10.4. Решим задачу с2 из встроенного задачника.
Робот должен закрасить клетки поля, перемещаясь вправо. Для закрашивания всех 10 клеток поля нужно в цикле выполнить 10 раз команды:
закрасить;
вправо.
Данные команды образуют тело цикла.
Командами, образующими тело цикла, могут быть любые команды из системы команд исполнителя. Кроме того, в теле цикла может вызываться вспомогательный алгоритм. Использование вспомогательного алгоритма позволит сократить запись тела цикла и сделает программу более понятной.
Пример 10.5. Решим задачу с7 из встроенного задачника.
На поле исполнителя Робот присутствуют стены. При обходе стен Робот выполняет следующие команды:
закрасить; вниз;
закрасить; влево;
закрасить; вверх;
закрасить; влево.
Чтобы решить задачу, Робот должен повторить эти команды 5 раз. Оформим данные команды как вспомогательный алгоритм kvadrat и вызовем его в цикле.
В рассмотренном примере тело цикла состоит из одной команды kvadrat, поэтому операторные скобки begin end; можно не использовать.
Понятие цикла используется в различных сферах человеческой деятельности. Под циклом понимают совокупность явлений, процессов, составляющих кругооборот в течение определенного промежутка времени. С этой точки зрения можно говорить о годовом цикле вращения Земли вокруг Солнца или о производственном цикле. Цикло м называют тот или иной круг наук: гуманитарный цикл наук, физико-математический цикл. Циклом является законченный ряд каких-либо произведений, чего-либо излагаемого, исполняемого: цикл лекций, цикл стихотворений. Понятие цикла используется в математике, химии, биологии, геологии, музыке, литературе, информатике и других науках. |
Пример 10.1. Приготовление пельменей.
В данном примере параметр цикла i изменяется от 1 до 10. Действия «достать пельмень из упаковки» и «бросить пельмень в кипящую воду» выполняются 10 раз и составляют тело цикла. Блок-схема данного алгоритма будет выглядеть следующим образом: Пример 10.2. Вычислим an (например, 35 = 243). Алгоритм возведения числа в степень может быть описан следующим образом:
Пример 10.3. В фольклорных произведениях часто встречается многоголовый Змей Горыныч (количество голов может быть, например, 7). Алгоритм победы над Змеем Горынычем может быть описан следующим образом:
Блок-схема данного алгоритма: Н. М. Кочергин. «Змей Горыныч». 1960-е гг. |
Пример 10.4. Начальная обстановка: Программа для исполнителя Робот:
Пример 10.5. Начальная обстановка: Программа для исполнителя Робот:
|