Вспомогательные алгоритмы
Если в нескольких местах программы встречаются участки с одинаковыми действиями, то можно вынести такой участок из раздела команд в раздел описаний и дать ему имя, а в тех местах, где он встречался в программе, оставить только вызов по имени. Такой, вынесенный отдельно, участок программы, имеющий имя, называется вспомогательным алгоритмом или подпрограммой. Подпрограмму можно вызывать не только из основной программы, но и из других подпрограмм, описанных ниже данной подпрограммы. Выносить в подпрограмму нужно не просто любую последовательность команд, а такой участок программы, который выполняет осмысленное действие. Название подпрограммы должно информировать об этом действии. Правила составления имён подпрограмм – такие же, как и для имён переменных.
Различают два вида подпрограмм: процедуры и функции. Процедура – это синоним слова «команда». Она вызывается по имени Имя функции нужно использовать в выражении, как переменную. Паскаль вместо имени функции подставляет результат её вычислений. Например: x:=2*gipotenuza(10,18)+y;
Чтобы уточнить, каким образом должна работать подпрограмма, нужно при вызове передать ей информацию. Для этого после имени подпрограммы в скобках перечисляют конкретные значения, которые нужно передать – фактические параметры. Например, если мы разработали процедуру, которая рисует домик, мы при вызове должны указать в качестве параметра базовые координаты и размеры домика: domik(100,400,150,180);
В предыдущем примере мы передавали через параметры катеты треугольника, а функция вычисляла по ним гипотенузу. Вместо чисел в качестве фактических параметров можно поместить переменные или выражения: domik(x,y,a,1.5*a); . Необходимо, чтобы к моменту вызова эти переменные уже были вычислены.
В описании подпрограммы в скобках после имени нужно описать переменные, в которые будут помещены данные, передаваемые при вызове, – формальные параметры.
Кроме параметров, в подпрограммах могут использоваться и другие переменные. Они создаются в момент вызова подпрограммы и уничтожаются при выходе из неё, поэтому в основной программе и в других подпрограммах они неизвестны (так же, как и параметры). Такие переменные называются локальными (местными). Их описание находится после заголовка подпрограммы. Те же переменные, которые объявлены в разделе var самой программы, называются глобальными. Они могут быть использованы как в любой подпрограмме, описанной ниже этого объявления, так и в основной программе. Если в подпрограмме имеется локальная переменная, чьё имя совпадает с именем глобальной переменной, то на время работы подпрограммы глобальная переменная будет забыта, и подпрограмма работает со своей локальной переменной.
|
Процедура рисует цветок по заданным координатам и радиусу.
Функция получает два катета и вычисляет гипотенузу прямоугольного треугольника
Обратите внимание на слово real, стоящее в конце заголовка функции. Таким способом указывается тип результата, возвращаемого функцией.
Кроме того, обратите внимание на имя функции gipotenuza, которому присваивается результат расчётов. Именно так указывают, какая именно величина возвращается в качестве результата работы функции.
Кстати, использование переменной c в данном примере излишне. Можно было сразу использовать имя функции:
gipotenuza:=sqrt(sqr(a)+sqr(b));
Если необходимо завершить процедуру, не дойдя до её конца, используется команда exit.
Дата добавления: 2014-12-18; просмотров: 945;