Вспомогательные алгоритмы
(Серия задач "Квадраты")

Почему задачи объединены в серию задач 
"Квадраты"?
В задачах этой серии демонстрируется использование метода пошаговой детализации на глубину до двух уровней вложенности. Это значит, основной алгоритм строится из вызовов вспомогательных алгоритмов первого уровня, а тело алгоритма первого уровня наряду с командами может состоять из вызовов вспомогательных алгоритмов второго уровня.

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

Таким образом, во всех задачах этой серии можно использовать однажды разработанные процедуры рисования квадрата. А процедуру перехода между квадратами (иногда две процедуры перехода) для каждой задачи надо разрабатывать свою.

Примеры задач.

Процедуры изображения квадратов - одинаковые. Переходы от квадрата к квадрату могут различаться.

     

      

Алгоритм процедуры "квадрат со стороной 2".

Для рисования одной стороны квадрата можно написать процедуру "сторона". В эту процедуру надо включить и поворот, после которого исполнитель оказывается в позиции, необходимой для рисования следующей стороны. Тело алгоритма "квадрат со стороной 2"- четыре вызова процедуры "сторона". Обход контура квадрата - против часовой стрелки.

Учебная задача

Постановка задачи.

Постановка задачи: Разработайте алгоритм, исполняя который "Стрелочка" "нарисует" орнамент по заданному образцу. При этом "Стрелочка" должна закончить свое перемещение в точке Б.

Исходное положение "Стрелочки":
- точка А;
- направление вправо.
Результат: "Стрелочка" в точке Б.

Образец для воспроизведения рисунка:

Решение задачи. Решение задачи: Точка Б в условии задачи стоит так, что после выполнения четырех процедур "квадрат" и трех процедур "переход" алгоритм закончен. Исполнитель окажется точно в точке Б.

Исполнение алгоритма:

АЛГОРИТМ ПУТЬ_1
  Дано: Исполнитель в т.А
  Надо: Исполнитель в т.Б
НАЧ
  ДЕЛАЙ квадрат
  ДЕЛАЙ переход
  ДЕЛАЙ квадрат
  ДЕЛАЙ переход
  ДЕЛАЙ квадрат
  ДЕЛАЙ переход
  ДЕЛАЙ квадрат
КОН

ПРОЦЕДУРА переход
    ПРЫЖОК
    ПРЫЖОК
    ПРЫЖОК
КОНЕЦ ПРОЦЕДУРЫ

ПРОЦЕДУРА квадрат
    ДЕЛАЙ сторона
    ДЕЛАЙ сторона
    ДЕЛАЙ сторона
    ДЕЛАЙ сторона
КОНЕЦ ПРОЦЕДУРЫ

ПРОЦЕДУРА сторона
    ШАГ
    ШАГ
    ПОВОРОТ
КОНЕЦ ПРОЦЕДУРЫ

Представление алгоритма в виде блок-схемы: