Команда вызова процедуры выполняется в три этапа:
1) вычисление фактических аргументов;
2) исполнение алгоритма-процедуры;
3) присвоение полученных значений результатов алгоритма-процедуры соответствующим фактическим переменным.
Примеры процедур
Оформим в виде процедуры программу приветствия (подобную программе Hellow в пункте «Процедуры записи Write, Writeln».
Пример:
Запись процедуры и текст основной программы, из которой выполняются обращения к процедуре.
Эта программа выводит на экран приветствия для трех человек:
1. Кати,
2. Андрея,
3. Лены.
В некоторых расчетах приходится пользоваться функциями гиперболических синуса и косинуса:
Пример:
Составим программу вычисления выражений и с использованием процедуры расчета гиперболических функций:
Функции
Заголовок функции состоит из:
- служебного слова Function
- имени функции
- списка параметров
- кроме того указывается тип возвращаемого функцией значения
Например:
Function Name_F("список формальных параметров"):"тип результата";
Здесь Function- служебные слова,
Name_F- имя функции,
Тип возвращаемого функцией значения может быть:
- простым,
- строковым
- или типом-указателем.
Тип формальных параметров может быть:
- любым, но должен указываться только идентификатором (именем типа).
Таким образом, имя типа формального параметра - массива должно быть задано предварительно в операторе Type, например:
Type M= array[1..100]of real;
Затем тип массива может указываться в заголовке процедуры, например: Procedure Name_P(p: M);
Тип формальных параметров описывается только в заголовке процедуры.
Отличие функции от процедуры:
- Результатом выполнения функции является некоторое единственное значение.
- Это исчисляемое значение присваивается идентификатору функции.
- Структура описания функции аналогична описанию процедуры.
Пример:
Описание и использование функции в расчете выражения
Вычисление модуля оформлено в виде пользовательской функции Modul:
Пример:
Вычисление степенной функции У=Х1^, которой нет среди встроенных функций.
Для вычисления Xм предназначена описываемая ниже пользовательская функция:
Контрольные вопросы
1. Что такое процедура и каково ее назначение?
2. Как оформляется процедура в Паскале?
3. Что собой представляют формальные и фактические параметры?
4. Перечислите правила соответствия формальных и фактическихпараметров.
5. На какие этапы можно разбить исполнение процедуры?
6. Чем отличается функция от процедуры?
7. Когда в программе следует использовать функцию и когда - процедуру?
Упражнения:
1) Составьте программу вычисления функции thX=shX/chX, используя приведенные выше процедуры расчета гиперболических функций.
2) Запишите программу расчета корней квадратного уравнения с произвольными значениями коэффициентов. Используйте по возможности процедуры.