Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Общие сведения. Программы, которые не разделены на отдельные структурные элементы, называются монолитными



Программы, которые не разделены на отдельные структурные элементы, называются монолитными. Большие монолитные программы сложны для разработки, отладки и сопровождения. Минимальным автономным элементом монолитной программы является оператор.

Целесообразно разбить программу на более крупные, чем операторы, компоненты. Роль таких компонент выполняют процедуры и функции. Часто их объединяют в понятие подпрограмм. Подпрограмма имеет ту же структуру, что и монолитная программа, то есть может содержать разделы описания переменных, типов, констант и т.д. Кроме того, подпрограмма может иметь собственные процедуры и функции. Имена объектов, описанных в подпрограмме, считаются известными только пределах данной подпрограммы.

Работа подпрограммы завершается после выполнения последнего оператора ее тела, для этого 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...