Разделение труда между компьютером и исполнителями
Алгоритм — это описание последовательности действий компьютера. Исполнители ничего ни про какие алгоритмы не знают.
Так, при выполнении алгоритма "из А в Б с закрашиванием" (А8) именно компьютер «разбирается» в записи алгоритма на алгоритмическом языке, «понимает», что сначала надо выполнить алгоритм "закрашивание блока" (А9), выполняет его и т. д. Робот же лишь выполняет последовательно поступающие от компьютера команды.
Схематически работа компьютера и Робота при выполнении этого алгоритма показана в таблице …...
Таблица 2. Диалог компьютера и Робота
Компьютер | Робот |
Вызывает алгоритм «закрашивание блока» | |
Командует Роботу закрасить | Закрашивает клетку |
Командует Роботу вправо | Делает шаг вправо |
Командует Роботу закрасить | Закрашивает клетку |
Командует Роботу вправо | Делает шаг вправо |
Командует Роботу закрасить | Закрашивает клетку |
Командует Роботу вниз | Делает шаг вниз |
… |
ЗАДАЧИ И УПРАЖНЕНИЯ
1. Измените алгоритм "закрашивание блока" так, чтобы Робот шел другим путем. Изменится ли при этом заголовок алгоритма? Почему?
2. Составьте алгоритм, который переводит Робота из А в Б и закрашивает клетки, отмеченные точками (рис. 7)
Рис. 7
3. Даны алгоритмы:
|
Нач
| фрагмент; фрагмент; фрагмент; фрагмент; фрагмент
Кон
|
Нач
закрасить; вправо; закрасить; вправо; закрасить; вправо
закрасить; вниз; закрасить; вниз; закрасить; вниз
закрасить; влево; закрасить; влево; закрасить; влево
закрасить; вверх; закрасить; вверх; закрасить
вправо; вправо; вправо; вниз; вниз
Кон
Нарисуйте результат выполнения алгоритма "фигура" (закрашенные клетки, начальное и конечное положения Робота).
4. Измените вспомогательный алгоритм "фрагмент" (А12) так, чтобы при выполнении алгоритма А11 Робот переместился из А в Б и закрасил клетки, отмеченные точками (рис. 8).
Рис. 8
9 Цикл n раз
9.1. Пример алгоритма с циклом n раз
При составлении алгоритмов довольно часто встречаются случаи, когда некоторую последовательность команд нужно выполнить несколько раз подряд (см., например, алгоритм A2). Для упрощения записи алгоритма в таких случаях можно использовать специальную составную команду алгоритмического языка — цикл n раз;
|
дано| Робот в клетке А (рис. 3 а)
надо| Робот в клетке Б (рис. 3 а)
Нач
нц5 раз
|вверх; вверх; вправо; вниз; вниз; вправо
кц
Кон
При выполнении этого, алгоритма компьютер 5 раз повторит последовательность вызовов вверх; вверх; вправо; вниз; вниз; вправо и Робот окажется в клетке Б (рис. 3 а).
9.2. Общий вид цикла n раз
В общем виде цикл n раззаписывается так:
нцчисло повторений раз
| тело цикла (последовательность команд)
кц
Служебные слова нц (начало цикла) и кц (конец цикла) пишутся строго одно под другим и соединяются вертикальной чертой. Правее этой черты записывается повторяемая последовательность команд (тело цикла).
Число повторений — произвольное целое число.
При выполнении алгоритма последовательность команд в теле цикла повторяется указанное число раз. Правила алгоритмического языка допускают задание любого целого числа повторений. Оно может быть нулевым и даже отрицательным. Эти случаи не считаются ошибочными, просто тело цикла не будет выполнено ни разу, а компьютер сразу перейдет к выполнению команд, записанных после кц