- Шульга Е. В.
- Основы алгоритмизации и программирования
- Просмотров: 24269
Исполнитель Черепаха. Процедуры
Иногда в задании явно есть одинаковые операции, но применить цикл не удается. Рассмотрим такой рисунок из равносторонних треугольников:
С одной стороны, все треугольники одинаковые, с другой — они расположены так, что нельзя использовать один цикл для всех трех фигур.
Теперь представим себе, что у Черепахи уже есть команда треугольник, которая рисует треугольник и возвращает исполнителя в исходное положение, причем Черепаха должна стоять в углу треугольника и смотреть в ту сторону, в которую она пойдет.
Учтем, что в равносторонних треугольниках все внутренние углы по 60 градусов. Тогда решение может быть записано так:
ТриТреугольника { вправо ( 30 ); } |
Если ввести такую программу, то мы получим ошибку "Не понимаю, что такое треугольник". Это и понятно, поскольку такой встроенной команду у Черепахи нет и она не знает, что делать. Поэтому ей надо объяснить, что такое треугольник, написав расшифровку этой команды. Так как внутренние углы равностороннего треугольника равны 60 градусов, Черепаха должна поворачиваться на 180-60=120 градусов.
Треугольник { опусти_перо; повтори ( 3 ) подними_перо; } |
Отдельно взятая программа ТриТреугольника работать не будет, однако если к ней добавить текст вспомогательного алгоритма треугольник, то исполнитель сможет ее выполнить.
Процедуры (вспомогательные алгоритмы, подпрограммы) – это новые команды, которые мы добавляем к СКИ исполнителя. Чтобы исполнитель знал, что делать по этой команде, после основной программы надо дать расшифровку процедуры через уже известные исполнителю команды.
Как правильно применять процедуры?
-
Процедуры используются в том случае, если исполнителю приходится несколько раз выполнять одни и те же действия. При этом удобно просто ввести новую команду и расшифровать ее один раз - это может значительно сократить текст программы.
-
Основная программа всегда записывается первой. Она использует новые команды, расшифрованные после нее, при этом говорят, что процедура вызывается. Одна процедура может вызывать другую процедуру.
-
Если исполнитель встретил новую команду, которой нет в СКИ, он ищет ее расшифровку, выполняет все действия, которые там указаны, и затем продолжает выполнять основную программу со следующей строчки. При этом говорят, что исполнитель возвращается в основную программу после выполнения процедуры.
Практические задания
Составить программу с использованием процедуры для рисования:
Использован материал из книги "Алгоритмы и исполнители", автор Поляков К.