Сегодня ты научишься:
- использовать метод последовательного уточнения при составлении сложных алгоритмов;
- создавать и вызывать вспомогательные алгоритмы;
- составлять вспомогательные алгоритмы с аргументами.
Для начала пройди тест, состоящий из трех заданий.
На прошлом уроке Чережик научился строить "домик". А рядом с домом можно вырастить ёлку.

Было бы здорово, если бы программа для Чережника выглядела так:

Но при запуске такой программы система выдаст сообщение об ошибке:

Набери этот программный код и убедись в том, что он не будет выпелнен.
Действительно, Чертежник не умеет выполнять команды "домик" и "ёлка". Но если детализировать алгоритм (то есть, объяснить исполнителю, что означают эти команды), то Чертежник справится с поставленной задачей.
Такой метод составления алгоритмов называется методом последовательного уточнения.
Суть метода заключается в разбиении исходной задачи на части и составлении основного алгоритма, в котором для решения подзадач используются вызовы еще не написанных алгоритмов (в нашем примере "домик" и "елка" - это вызовы еще не написанных алгоритмов).
Набери первое уточнение:

Обрати внимание, что команда "домик" в 6-й строке изменила цвет.
Примечание. Закончив рисование домика Чертежник поднял перо и переместил его в начало рисования ёлки (строки 28, 29). После рисования ёлки, будет использован этот же приём. Можно этого не делать, но тогда придется организовать перемещение пера в начало рисования ёлки в основном алгоритме (между командами "домик" и "ёлка").
Осталось создать второе уточнение и ещё раз запустить программу на исполнение:

Созданные уточнения называются вспомогательными алгоритмами.
Вспомогательный алгоритм (процедура) - это алгоритм, который хранится в памяти компьютера и может быть вызван для исполнения по его имени.
Алгоритм, в котором есть обращение к вспомогательным алгоритмам, называется основным.
Один и тот же алгоритм может выступать в роли вспомогательного, и в роли основного.
Например, если созданному алгоритму задать имя "домик_ёлка", то можно использовать этот алгоритм в качестве вспомогательного в алгоритме "улица":

А теперь попробуем вырасить ёлку. Для этого в алгоритм "ёлка" введём вещественный аргумент а, который будет отвчать за размер дерева.
Измени программу рисования ёлки так, как показано на схеме:

Теперь достаточно в качестве аргумента указать в скобках числовой параметр при вызове алгоритма "ёлка" и получить ёлку нужного размера:

Рассмотрим ещё один пример использования вспромогательных алгоритмов для исполнителя Робот.
Пусть требуется написать алгоритм, который переводит Робота из клетки А в клетку Б и закрашивает клетки, отмеченные точками:

Н следующем рисунке показан один из возможных путей перемещения Робота при решении этой задачи:

Видно, что Робот должен закрасить три прямоугольных "блока" размером 3 х 5 клеток, а между блоками два раза обойти стену.
Воспользуемся методом последовательного уточнения. Составим основной алгоритм:

Теперь составим вспомогательные алгоритмы:

Результат работы алгоритма:

Пришло время самостоятельно выполнить задания к уроку 4 из задачника.