Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Процедуры. Любая процедура оформляется аналогично программе т. е. содержит заголовок, разделы описаний и операторов:
PROCEDURE_ имя (формальные параметры);
раздел описаний
BEGIN
раздел операторов
END;
Область действия имен. Имена, объявленные в разделе описания основной программы, действуют в разделе операторов основной программы и в любой подпрограмме (процедуре и функции). Эти имена называются глобальными. Имена, объявленные в подпрограмме, действуют только в этой подпрограмме и в любой объявленной в ней процедуре и функции. Такие имена называются локальными. Они недоступны для операторов основной программы.
Формальные параметры представляют собой список переменных с указанием их типа. Для выделения выходных параметров перед ними ставится слово VAR.
Пример оформления процедуры:
PROCEDURE СУММА(A,B:REAL;VAR Y,Z:REAL);
CONST N=10;
VAR I:INTEGER;
BEGIN
FOR 1:=1 ТО N DO
BEGIN
Y:=A+B*1;
z:=4*Y-1;
END
END;
Здесь А и В — входные параметры, их значения передаются из основной программы в эту процедуру. Результатами процедуры (выходными параметрами) являются вычисленные значения Y и Z, которые передаются из процедуры в основную программу и там могут быть использованы.
В общем случае процедуры могут содержать один или несколько входных и выходных параметров, в том числе один и, в частности, ни одного.
Вызов процедуры в основной программе имеет следующую форму записи:
имя процедуры _ (фактические параметры);
Здесь параметры представляют собой список фактических параметров. Те из них, которые передаются в процедуру, могут быть переменными, константами и выражениями. Параметры, которые получают значения из процедуры, могут быть переменными. Например, рассмотренную процедуру СУММА можно вызвать в основной программе следующим образом:
СУММА (3.5, 7.6, Y1, Z);
Это означает, что числа 3.5 и 7.6 будут передаваться в процедуру формальным параметрам А и В. Так что переменные получат значения А =3.5, В = 7.6 и при этих значения будет выполняться процедура, Значения Y и Z, напротив, передаются из процедуры в основную программу переменным Y1 и Z, где их можно использовать, например,
P: = 2*YI;
WRITE (Z).
Между формальными и фактическими параметрами должно быть соответствие по количеству параметров, порядку их следования и типу данных.
Имена соответствующих формальных и фактических параметров могут быть одинаковыми и различными, например Y и Y1, или Z и Z.
Пример
Функции. Другой вид подпрограммы — функция оформляется аналогично процедуре. Отличительные особенности функции:
она имеет только один результат выполнения (но может иметь несколько входных параметров); результат обозначается именем функции и передается в основную программу.
Функция оформляется в следующем виде:
FUNCTION имя (формальные параметры): тип;
раздел описания
BEGIN
раздел операторов
END;
Вызывается функция по ее имени с указанием фактических параметров. При этом вызов функции можно делать непосредственно внутри выражения.
Пусть требуется найти разность факториалов F=m! — k!. Напомним, что факториал n! представляет собой произведение n чисел натурального ряда: l-2-З-...n.
Вычисление факториала оформим в виде функции:
FUNCTION FACT (N:INTEGER): REAL;
VAR I: INTEGER;
P: REAL;
BEGIN
P: = l;
FOR I: = 1 TO N DO
P: = P*I;
FACT: = P;
END;
Здесь FACT - имя функции. Результат вычисления факториала обозначается ее именем. Тип функции - действительный. Формальным параметром является переменная целого типа N.
Вызывается функция по своему имени FACT с указанием фактических параметров М и К:
F:= FACT(M)-FACT(К)
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
1. Что такое подпрограмма?
2. Укажите особенности оформления подпрограммы в виде процедуры?
3. Укажите особенности оформления подпрограммы в виде функции?
4. Какая существует связь между формальными и фактическими параметрами?
5. Можно ли составить процедуру без параметров?
6. Как вы понимаете глобальные и локальные данные?
Дата публикования: 2014-11-02; Прочитано: 305 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!