Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 7 Процедуры и функции.doc
Скачиваний:
6
Добавлен:
08.11.2019
Размер:
117.76 Кб
Скачать

16

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

В практике программирования достаточно часто встречаются алгоритмы, в которых повторяются фрагменты, одинаковые по выполняемым действиям, и различающиеся только значениями обрабатываемых данных. Такие фрагменты целесообразно оформить в виде самостоятельной программной единицы – подпрограммы. Операторы подпрограммы записываются один раз, а в соответствующих местах программы указываются лишь обращения к ней – ссылки и передаваемые для обработки данные.

В качестве подпрограмм используются процедуры и функции.

Процедурой в Турбо Паскале называется особым образом оформленный фрагмент программы, имеющий свое имя. Упоминание этого имени в тексте основной программы приводит к активизации процедуры и называется ее вызовом. Сразу после активизации процедуры начинают выполняться входящие в нее операторы. После выполнения последнего оператора процедуры ее работа заканчивается и происходит возврат в основную программу и выполняются операторы, стоящие непосредственно после оператора вызова процедуры.

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

Функция отличается от процедуры тем, что результат ее работы возвращается в виде значения этой функции и она может использоваться как составная часть выражения.

В Турбо Паскале имеется много стандартных функций: SIN(X), ABS(X), RANDOM и др., а также процедур: WRITE, READLN, RANDOMIZE и др.

Процедура аналогично программе имеет заголовок, разделы описаний и раздел исполняемых операторов.

Заголовок процедуры имеет вид:

PROCEDURE <имя> (<список формальных параметров>)

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

Заголовок функции имеет вид:

FUNCTION <имя>(<список формальных параметров>):<тип>

Здесь обязательно указывается тип функции, т.е. тип возвращаемого результата.

Процедуры и функции похожи, но результатом работы функции обычно является одно какое-то значение, присваиваемое самому имени функции, в то время как результатом работы процедуры может быть целый набор значений, а иногда результат её выполнения вообще не сводится к вычислениям.

Обмен данными между процедурой и вызывающей её программой происходит с помощью параметров. Наиболее часто используют:

  • параметры-значения;

  • параметры-переменные;

  • параметры-константы;

  • параметры-процедуры и параметры-функции.

Все используемые параметры-значения перечисляются в заголовке процедуры с указанием их типа:

PROCEDURE SUMMA(X:REAL;N,K:INTEGER)

Перед параметрами-переменными ставится служебное слово VAR:

PROCEDURE RIS(VAR X:REAL;Y,S:WORD;S2:BYTE).

Внутри тело процедуры или функции выглядит как обычная программа, т.е. может включать в себя разделы описания типов, меток, переменных, констант. Выполняемые операторы заключаются между словами BEGIN и END, после которого ставится не точка, а точка с запятой.

Параметры-значения и параметры-переменные, указанные в заголовке процедуры могут использоваться наряду с переменными, описанными в разделе VAR процедуры во всех её операторах.

При вызове процедуры указывается её имя и приводится список фактических параметров, число и тип которых должен соответствовать формальным параметрам:

PROGRAM KS;

VAR: