Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Программы, которые не разделены на отдельные структурные элементы, называются монолитными. Большие монолитные программы сложны для разработки, отладки и сопровождения. Минимальным автономным элементом монолитной программы является оператор.
Целесообразно разбить программу на более крупные, чем операторы, компоненты. Роль таких компонент выполняют процедуры и функции. Часто их объединяют в понятие подпрограмм. Подпрограмма имеет ту же структуру, что и монолитная программа, то есть может содержать разделы описания переменных, типов, констант и т.д. Кроме того, подпрограмма может иметь собственные процедуры и функции. Имена объектов, описанных в подпрограмме, считаются известными только пределах данной подпрограммы.
Работа подпрограммы завершается после выполнения последнего оператора ее тела, для этого Turbo Pascal имеет системную процедуру Exit, которая немедленно завершает выполнение подпрограммы и возвращает управление в точку вызова.
1 Описание функций
Смысл функции заключается в задании алгоритма вычисления некоторого значения и организации возврата (передачи) этого значения в точку вызова.
В заголовке функции определяется идентификатор функции, формальные параметры (если они имеются) и тип результата функции.
Формат функции:
function <идентификатор>[(<список формальных параметров>)]: <тип результата>;
Функция активизируется при ее вызове. При вызове функции указывается идентификатор функции и какие-либо параметры, необходимые для вычисления функции. Вызов функции может включаться в выражения в качестве операнда. Когда выражение вычисляется, функция
выполняется и значением операнда становится значение, возвращаемое функцией.
Возврат вычисленного значения организуется следующим образом. В теле функции должен присутствовать оператор присваивания специального типа, в левой части которого должен быть указан идентификатор функции, а в правой выражение, вычисляющее возвращаемое значение. Таких операторов может быть несколько; важно, чтобы хоть один из них срабатывал в процессе выполнения тела функции. Результатом функции является последнее присвоенное значение. Тип выражения в правой части такого присваивания должен быть совместимым с типом функции (указан в заголовке после списка параметров). Если в процессе выполнения функции не было выполнено ни одного такого присваивания, то результат функции считается неопределенным.
Функция может возвращать в качестве результата значение только простого, строкового и ссылочного типа.
Пример 1 описания функции:
function Max(A, B: Integer): Integer;
begin
if A>B then
Max:= A
else
Max:= B;
end;
WriteLn(Max(X,Y));
M:= Max(X-Y,X+Y) + 2*Max(X,Y);
В фрагменте программы объявляется функция Max с элементами А и В целого типа. В основном блоке функции Max присваивается значение либо А, либо В и оно распечатывается. Далее вычисляется значение переменной М, равной сумме функции Max(X-Y,X+Y)и 2*Max(X,Y).
Пример 2:
function IsEmpty(Top: Byte): Boolean;
begin
IsEmpty:= Top=0;
end;
В фрагменте описана функция IsEmpty логического типа, которой присвоено значение 0 (пустая функция).
Дата публикования: 2014-12-11; Прочитано: 249 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!