Статья 2310

В действительности Лого и другие языки программирования имеют средства для упрощения и обобщения команд.

программы

программы


В данном случае сразу бросается в глаза фрагмент программы, нуждающейся в усовершенствовании, - это пятикратное повторение инструкций. Программист по возможности старается не писать одно и то же несколько раз, и не просто потому, что набивать такую программу утомительно. Если программу можно сжать, она будет занимать меньше машинной памяти. Кроме того, повторение одних и тех же строк повышает вероятность описки, в частности, при модификации программы. В данном случае от повторения можно избавиться, заменив пять команд движения черепахи инструкцией.
Теперь предположим, что программист хочет нарисовать девятиконечную звезду со сторонами длиной в 80 единиц. Это можно сделать, например, посредством такой инструкции, но очевидно, что здесь повторяется та же программная конструкция, что и выше, с небольшими отличиями в параметрах. Правильнее будет определить более общую процедуру, в которой число концов и длина сторон задаются как переменные величины. В Лого определение процедуры вводится словом. Так, фраза звезда указывает, что далее следуют инструкции, которые надо запомнить как процедуру изображения звезды. После этого звезда становится новой командой языка, - командой, которую можно использовать в программе точно так же, как и встроенные команды.
Переменные в процедуре звезда являются параметрами. Они передаются в процедуру в момент ее вызова. В Лого имени параметра предшествует двоеточие. Так, если определить процедуру при помощи фразы звезда, размер, числоконцов, то в результате выполнения строки звезда 80 9 переменной размер будет присвоено значение 80, а переменной числоконцов 9 и, таким образом, будет построена девятиконечная звезда со стороной в 80 единиц.