
Лекция 7 Подпрограммы
Определение
Подпрограмма - фрагмент программы, имеющий имя. Подпрограмма выполняется при обращении к ней по имени из раздела операторов.
Классификация подпрограмм
по синтаксису |
по авторству |
||
Процедуры |
функции |
стандартные (встроенные) |
пользователя |
Стандартные подпрограммы (Sin, Cos, Write, Read) доступны без описания.
Подпрограммы пользователя должны быть описаны в разделе подпрограмм.
Область применения
В подпрограммы выносятся неоднократно употребляемые алгоритмы;
В подпрограммы выносятся логические куски программы.
Польза: Блок программы, написанной с применением подпрограмм, становится короче, а структура блока носит модульный характер, что облегчает контроль работы программы и улучшает читабельность текста программы.
Синтаксис
Раздел подпрограмм =
Заголовок подпрограммы ; Блок; { Заголовок подпрограммы ; Блок; }.
Заголовок подпрограммы = Заголовок Процедуры | Заголовок Функции.
Заголовок Процедуры =
procedure Имя Процедуры [(Список Формальных Параметров)].
Заголовок Функции=
function Имя Функции [(Список Формальных Параметров)]: Тип Результата.
Тип результата = Простой стандартный тип.
Имя Процедуры = Идентификатор.
Имя Функции = Идентификатор.
Список Формальных Параметров = Секция Параметров {, Секция Параметров}.
Секция параметров = Описание Параметров- Значений |
Описание Параметров- Переменных.
Описание Параметров- Значений = Список идентификаторов: Тип.
Описание Параметров- Переменных = var Список идентификаторов: Тип.
Примечание:
Параметры-Переменные – это те параметры, которые передаются по адресу (ссылке) – входные и выходные данные подпрограммы.
Параметры-Значения – это те параметры, которые передаются по значению – входные данные подпрограммы.
Процедура пользователя
Область применения - без ограничений: любую подпрограмму можно описать как процедуру.
Структура процедуры пользователя.
procedure ИмяПроцедуры (Список Формальных параметров);
const Описание локальных констант,
type типов и переменных
var
procedure Описание внутренних процедур
function и функций
begin
Операторы
end.
Вызов процедуры осуществляется в разделе операторов с помощью оператора процедуры.
Синтаксис оператора процедуры
Оператор процедуры = ИмяПроцедуры [(Список Фактических Параметров)].
|
Функция пользователя
Подпрограмму описывают как функцию, если результатом ее работы должно быть одно значение простого типа.
Структура функции пользователя.
function ИмяФункции (Список Формальных параметров):ТипРезультата;
const Описание локальных констант,
type типов и переменных
var
procedure Описание внутренних процедур
function и функций
begin Операторы, среди которых должен
ИмяФункции:= быть хотя бы один, который присваивает
end. Имени функции значение результата
Вызов функции осуществляется по имени и может стоять в Выражении.