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

Процедуры и функции



Процедуры. Любая процедура оформляется аналогично программе т. е. содержит заголовок, разделы описаний и операторов:

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



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