Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PASKAL_sokraschyonnoe.doc
Скачиваний:
12
Добавлен:
02.04.2015
Размер:
454.14 Кб
Скачать

5.2. Процедуры

Как отмечено выше, при вызове подпрограммы между ней и главной программой происходит обмен информацией. В момент вызова подпрограмма получает данные, необходимые для её выполнения (входные параметры), а после завершения их обработки может в случае необходимости передать главной программе результаты счёта (выходные параметры).

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

Фактические параметры – это те исходные данные, которые передаются в подпрограмму с целью их обработки.

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

Оператор вызова процедуры состоит только из обращения к процедуре (аналог - обращение к стандартной функции) и имеет вид

Имя процедуры (список фактических параметров);

Допустим, что у нас имеется процедура treug, которая вычисляет площадь треугольника по трём его сторонам a, b и c. Тогда вызывающий оператор может выглядеть так

Treug (a, b, c);

или

Treug(1.2, 2.3, 1.5);

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

Формальные параметры используются при описании процедуры. Формальными параметрами могут быть только имена переменных. Они располагаются в заголовке процедуры, вид которого

Procedure имя процедуры (список формальных параметров);

Формальные параметры являются как бы двойниками фактических параметров и выполняют две функции:

  1. на этапе разработки процедуры с их помощью показывают, как процедура обрабатывает исходные данные, т.е. они наряду с другими переменными используются для описания алгоритма, который выполняет процедура;

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

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

Формальные параметры процедуры делятся на входные и выходные.

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

имя1, имя2, ... : тип 1; имя3, имя4, ... : тип 2; ...

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

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

Пример 5.2. Используя процедуру, вычислить площадь треугольника со сторонами a, b и c. Для решения задачи воспользоваться формулой Герона = (p(pa)(pb)(pc))1/2, где p – полупериметр треугольника.

var

a, b, c : real ;

procedure treug (aa, bb, cc : real );

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]