Крихітка Ру

Складемо останню, порівняно складну програму для ГРІС. На цьому прикладі ви побачите, що застосування методу послідовної деталізації полегшує вирішення деяких головоломних завдань.

Побудувати Орнамент, що складається з квадратів по краю поля. Вихідне положення ГРІС - у верхньому лівому кутку, спрямований на південь.

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

крихітка

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

Нижче наводиться процедура Ряд. У ній, у свою чергу, є звернення до іншої процедури, яка називаєтьсяКвадрат. З назви ясно, що за цією процедурою креслиться один квадрат.

поки попереду не край, повторювати

якщо попереду не край, то

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

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

деталізації

Мал. 7.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 см.