Теория:

Процедуры (вспомогательные алгоритмы, подпрограммы) — это новые команды, которые мы добавляем к СКИ исполнителя. Чтобы исполнитель знал, что делать по этой команде, после основной программы надо дать расшифровку процедуры через уже известные исполнителю команды.

Как правильно применять процедуры?
  1. Процедуры используются в том случае, если исполнителю приходится несколько раз выполнять одни и те же действия (циклический алгоритм). При этом удобно просто ввести новую команду и расшифровать её один раз — это может значительно сократить текст программы.
  2. Основная программа всегда записывается первой. Она использует новые команды, расшифрованные после неё, при этом говорят, что процедура вызывается. Одна процедура может вызывать другую процедуру.
  3. Если исполнитель встретил новую команду, которой нет в СКИ, он ищет её расшифровку, выполняет все действия, которые там указаны, и затем продолжает выполнять основную программу со следующей строчки. При этом говорят, что исполнитель возвращается в основную программу после выполнения процедуры.
Иногда в задании явно есть одинаковые операции, но применить цикл не удаётся. Рассмотрим рисунок из равносторонних треугольников.
 
треугольники_процедуры.jpg

С одной стороны, все треугольники одинаковые, с другой — они расположены так, что нельзя использовать один цикл для всех трёх фигур.
Теперь представим себе, что у Черепахи уже есть команда «Треугольник», которая рисует треугольник и возвращает исполнителя в исходное положение, причём Черепаха должна стоять в углу треугольника и смотреть в ту сторону, в которую она пойдёт.
Учтём, что в равносторонних треугольниках все внутренние углы по \(60\) градусов. Тогда решение может быть записано так:

Три треугольника
{
вправо \((30)\);
треугольник;
вправо \((120)\); назад \((20)\); /*идём ко второму*/
треугольник;
вперёд \((20)\); влево \((60)\); /*идём к третьему*/
вперёд \((40)\); влево \((60)\);
назад \((20)\);
треугольник;
}
 
Если ввести такую программу, то мы получим ошибку «Не понимаю, что такое треугольник». Это и понятно, поскольку такой встроенной команды у Черепахи нет и она не знает, что делать. Поэтому ей надо объяснить, что такое треугольник, написав расшифровку этой команды. Так как внутренние углы равностороннего треугольника равны \(60\) градусов, Черепаха должна поворачиваться на \(180-60=120\) градусов.

Треугольник
{
опусти_перо;
повтори \((3)\);
{
вперёд \((40)\);
вправо \((120)\);
}
подними_перо;
}
 
Отдельно взятая программа «Три треугольника» работать не будет, однако если к ней добавить текст вспомогательного алгоритма «Треугольник», то исполнитель сможет её выполнить.