Составим последнюю, сравнительно сложную программу для ГРИС. На этом примере вы увидите, что применение метода последовательной детализации облегчает решение некоторых головоломных задач.

Построить орнамент, состоящий из квадратов по краю поля. Исходное положение ГРИС – в верхнем левом углу, направлен на юг.

Цепочку квадратов, нарисованных от края до края поля, назовем Ряд. Ниже будет составлена процедура, рисующая ряд квадратов. Но сначала напишем основную программу (исходное положение показано стрелкой).

сделай Ряд

поворот

сделай Ряд

поворот

сделай Ряд

поворот

сделай Ряд

Рис. 7.1. Результат выполнения программы «Орнамент»

Ниже приводится процедура Ряд. В ней, в свою очередь, имеется обращение к другой процедуре, которая называется Квадрат. Из названия ясно, что по этой процедуре чертится один квадрат.

процедура Ряд

прыжок

прыжок

пока впереди не край, повторять

сделай КВАДРАТ

если впереди не край, то

поворот

конец ветвления

конец цикла

конец процедуры


процедура Квадрат

шаг

поворот

шаг

поворот

шаг

шаг

поворот

прыжок

конец

В процедуре Ряд в теле цикла содержится неполное ветвление. Структуру такого алгоритма можно назвать так: цикл с вложенным ветвлением.

На рисунке приведена блок-схема процедуры Ряд.

Рис. 7.2. Блок-схема процедуры «Ряд»

Составление этой программы потребовало два шага детализации алгоритма, которые выполнялись в такой последовательности:

ОСНОВНАЯ ПРОГРАММА

1 шаг детализации

процедура Ряд

2 шаг детализации

процедура Квадрат

Теперь вам известны все команды управления графическим исполнителем. Их можно разделить на три группы: простые команды: команда обращения к процедуре; структурные команды. К третьей группе относятся команды цикла и ветвления.

СКИ графического исполнителя Кенгуренок

Простые команды

шаг

поворот

прыжок


Обращение к процедуре

сделай <имя процедуры>


Структурные команды

пока <условие>, повторять

<тело цикла>

конец цикла


если <условие>, то

<серия 1>

иначе

<серия 2>

конец ветвления

1. Что такое многошаговая детализация?

2. Из каких команд могут состоять вспомогательные алгоритмы последнего уровня детализации?

3. Какой формат имеет команда ветвления? Какие действия исполнителя она определяет?

4. Чем отличается полное ветвление от неполного?

№ 19. Путем многошаговой детализации составить программы управления графическим исполнителем для решения следующих задач:

• расчертить все поле горизонтальными пунктирными линиями;

• нарисовать квадраты во всех четырех углах поля;

• расчертить все поле в клетку со стороной, равной шагу.

№ 20. Кенгуренок находится у края листа, но не в углу. Составьте алгоритм, выполнив который он нарисует прямоугольную рамку, отстоящую от края на расстоянии одного шага. (Указание: воспользуйтесь решением задачи 12)

№ 21. Кенгуренок находится в углу листа. Составьте алгоритм, выполнив который он окажется в противоположном углу листа.

№ 22. Кенгуренок находится в углу листа бумаги. Составьте алгоритм, выполнив который Кенгуренок разлинует лист на полосы шириной 1 см.

№ 23. Составить программу, переводящую исполнителя из нижнего левого угла в верхний правый угол.

№ 24. Нарисовать орнамент, состоящий из квадратов по краю поля. Сторона квадрата и расстояние между двумя соседними квадратами равны одному шагу Кенгуренка.

№ 25. Нарисовать орнамент, изображенный на рисунке.

№ 26. Кенгуренок находится в углу квадратного листа бумаги. Составьте алгоритм рисования лесенки, соединяющей начальное положение Кенгуренка с противоположным углом листа.

№ 27. Кенгуренок находится в некоторой точке квадратного листа бумаги. Используя алгоритмы решений задачи № 12 и задачи № 26 как вспомогательные, составьте алгоритм изображения лесенки на рисунке.

№ 28. Для рисования квадрата был составлен следующий алгоритм:

Сформулируйте требования к вспомогательному алгоритму Уголок и запишите его.

№ 29. Используя метод последовательной детализации, выделите вспомогательные алгоритмы, необходимые для того, чтобы Кенгуренок нарисовал слово РЕБУС. Составьте соответствующий алгоритм.

№ 30. Кенгуренок помещен на квадратный лист бумаги, сторона которого длиннее 3 см. Составьте для Кенгуренка алгоритм рисования квадрата со стороной 1 см.

№ 31. Кенгуренок помещен на прямоугольный лист бумаги. Составьте для Кенгуренка алгоритм рисования квадрата наибольшей возможной площади (воспользуйтесь алгоритмом решения задачи № 27).

№ 32. Пользуясь решением задачи №22, составьте для Кенгуренка алгоритм изображения на листе бумаги сетки из квадратов со стороной 1 см.

Хостинг от uCoz