Алгоритмическая конструкция повторение
Алгоритмы с циклами
В окружающем мире можно наблюдать много ситуаций, при которых различные действия, процессы и события повторяются. Некоторые повторяются несколько раз и завершаются. Другие могут повторяться очень долго (например, круговорот воды в природе, движение планет в космическом пространстве, смена времен года, месяцев и дней недели и т. д.). Человеку тоже регулярно приходится выполнять повторяющиеся действия: умываться, одеваться, посещать парикмахерскую, завтракать, ходить на работу и др.
Алгоритмы с циклами
- Как правило, человек составляет программы, в которых каждая команда в отдельности и весь алгоритм в целом выполняются за конечное число повторений.
- Алгоритмическая конструкция повторение (цикл) определяет последовательность действий, выполняемых многократно. Эту последовательность действий называют телом цикла .
- Существует несколько возможностей управлять тем, сколько раз будет повторяться тело цикла.
Алгоритмы с циклами
Алгоритмическая конструкция цикл с параметром (цикл со счетчиком) — способ организации цикла, при котором количество повторов зависит от начального и конечного значений параметра цикла.
Алгоритмы с циклами
Таким образом, цикл с параметром организует выполнение команд тела цикла заранее известное число раз.
Алгоритм приготовления пельменей
- Вскипятить воду.
- Для i = 1..10 повторять:
Достать пельмень из упаковки.
Бросить пельмень в кипящую воду.
3. Варить 7 минут .
Алгоритмы с циклами
Параметр цикла определяет нумерацию действий в цикле. Параметр цикла может принимать только целые значения. Часто нумерацию начинают с 1 и заканчивают числом N
Вычислим a n (например, 3 5 = 243).
Алгоритм возведения числа в степень может быть описан следующим образом:
- Ввести значения a и n . Определить начальное значение результата r = 1. Для i = 1.. N повторять:
- Ввести значения a и n .
- Определить начальное значение результата r = 1.
- Для i = 1.. N повторять:
Умножить результат на a .
- Умножить результат на a .
- Умножить результат на a .
4. Записать результат
Алгоритмы с циклами
В этом случае цикл выполнится N раз. Если нумерация установлена двумя произвольными числами N 1 ( начальное значение ) и N 2 ( конечное значение ), то цикл выполнится
( N 2 – N 1 + 1 ) раз.
Алгоритмы с циклами
Алгоритмическая конструкция цикла с параметром может изображаться на блок-схеме следующим образом (значение параметра изменяется от 1 до N ):
i=1..N
Команды
Алгоритмы с циклами
В данной конструкции в прямоугольнике(ах) записываются повторяющиеся команды алгоритма (тело цикла), которые выполняются N раз (Да). При этом после каждого выполнения команд тела цикла происходит проверка, который раз выполняется цикл. На блок-схеме переход на проверку условия изображается в виде стрелки, выходящей из тела цикла и возвращающейся к проверке. Как только команды тела цикла выполнятся N раз (Нет), цикл завершается. Если N 0, то команда тела цикла не выполнится ни разу.
Использование команды цикла с параметром для исполнителя Робот
Чтобы составлять алгоритмы с циклами для компьютерного исполнителя Робот, нужно знать, как записывается команда цикла.
Для записи цикла с параметром используется команда for . Формат записи команды:
for var i:= N1 to N2 do
begin
тело цикла;
end ;
Строка for var i:= N1 to N2 do является заголовком цикла. Эту строку можно прочитать следующим образом: «Для переменной i от N 1 до N 2 делай» . Если N 2 N 1, то команды тела цикла выполнятся ( N 2 – N 1 + 1) раз, иначе цикл не выполнится ни разу.
Использование команды цикла с параметром для исполнителя Робот
Операторные скобки — пара слов, определяющих в языке программирования блок команд, воспринимаемый как единое целое, как одна команда.
Слова begin и end; являются операторными скобками в языке Pascal. Если тело цикла состоит из одной команды, операторные скобки можно опустить.
Алгоритмы с циклами
Таким образом, цикл с параметром организует выполнение команд тела цикла заранее известное число раз.
Алгоритм приготовления пельменей
- Вскипятить воду.
- Для i = 1..10 повторять:
Достать пельмень из упаковки.
Бросить пельмень в кипящую воду.
3. Варить 7 минут .
Алгоритмы с циклами
Решим задачу с2 из встроенного задачника.
Робот должен закрасить клетки поля, перемещаясь вправо. Для закрашивания всех 10 клеток поля нужно в цикле выполнить 10 раз команды:
закрасить;
вправо.
Данные команды образуют тело цикла.
Командами, образующими тело цикла, могут быть любые команды из системы команд исполнителя. Кроме того, в теле цикла может вызываться вспомогательный алгоритм. Использование вспомогательного алгоритма позволит сократить запись тела цикла и сделает программу более понятной.
Алгоритмы с циклами
Решим задачу с2 из встроенного задачника.
Робот должен закрасить клетки поля, перемещаясь вправо. Для закрашивания всех 10 клеток поля нужно в цикле выполнить 10 раз команды:
uses Robot ;
begin
Task ( ‘ c2 ’ );
for var i := 1 to 10 do
begin
paint ;
right ;
end ;
end .
Пример
Алгоритмы с циклами
Решим задачу с7 из встроенного задачника.
На поле исполнителя Робот присутствуют стены. При обходе стен Робот выполняет следующие команды:
закрасить; вниз;
закрасить; влево;
закрасить; вверх;
закрасить; влево .
5 раз
Чтобы решить задачу, Робот должен повторить эти команды 5 раз. Оформим данные команды как вспомогательный алгоритм kvadrat и вызовем его в цикле.
Алгоритмы с циклами
Решим задачу с7 из встроенного задачника.
На поле исполнителя Робот присутствуют стены. При обходе стен Робот выполняет следующие команды:
uses Robot ;
procedure kvadrat ;
begin
paint ; down ;
paint ; left ;
paint ; up ;
paint ; left ;
end ;
begin
Task ( ‘ c7 ’ );
for var i := 1 to 5 do
kvadrat ;
end .
В рассмотренном примере тело цикла состоит из одной команды kvadrat , поэтому операторные скобки begin end ; можно не использовать.
Пример
Задания
Составьте программу для решения задачи с3 из встроенного задачника.
Пример
Задания
Составьте программу для решения задачи с8 из встроенного задачника. Используйте вспомогательный алгоритм.
Пример
Задания
Составьте программу для решения задачи с5 из встроенного задачника.
Пример
Задания
Для решения задачи с14 Петя составил алгоритм и записал программу. Петин младший брат Олег удалил несколько команд. Сколько команд удалил Олег? Восстановите программу, которую написал Петя.
uses Robot ;
begin
Task ( 'c14' );
paint ;
for var i := 1 to 4 do
begin
paint ; right ; down ;
end ;
for var i := 1 to 4 do
begin
right ; up ;
end ;
for var i := 1 to 4 do
begin
paint ;
end ;
end.
Пример
Домашнее задание
§ 10