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

7.10. Модули

Модуль – независимая часть программы, которая описывает абстрактное действие и к которому можно обращаться по имени. Структура модуля:

{<Абстрактное действие >}

<Заголовок>

<Блок>

<Блок>::=<Раздел описаний>

<Составной оператор>

При проектировании используется 2 типа модуля: главный модуль и процедурный модуль (процедура).

Структура главного модуля:

{Цель программы}

Program <имя> (<имена файлов>);

begin

end.

С главного модуля начинается выполнение программы.

Перечислены имена файлов с входными и выходными данными программы.

Должен содержать определение типов входных, выходных данных задачи.

Раздел описаний

Главный алгоритм

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

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

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

Структура процедурного модуля (описание процедуры)

{Описание входных, выходных данных}

Procedure <имя> (<Описание параметров>);

begin

end ;

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

Содержит описания типов входных и выходных данных процедуры.

Содержит описания внут- ренних данных процедуры.

Раздел описаний

Алгоритм

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

<описание входных формальных параметров>:=<список описаний переменных>

<описание выходных формальных параметров>:=var<список описаний переменных>

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

В языке Паскаль существует два вида процедур: процедуры общего вида (procedure) и функции (function).

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

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

{ Описание входных данных }

Function <имя> (<Описание параметров>): <тип>;

begin

end ;

Алгоритм должен содержать оператор, который присваивает результат имени функции;

<тип> описывает тип результата функции.

Раздел описаний

Алгоритм

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

Среди входных параметров процедуры может быть формальное имя функции

(процедуры). Для описания типа этой функции в языке Турбо Паскаль существует процедурный тип, который описывает заголовок этой формальной функции (процедуры).

Н

function Trig (x: real): real;

begin Trig:=sqrt(ln(x)+exp(-x)) end:

апример, если описана функция

и

type func = function (x) : real;

определяется процедурный типfunc, как

а заголовок процедуры метода простых итераций имеет вид

procedure Iter (f:func; x0, eps:real; var x:real);

то при обращении к процедуре Iter вместо формального параметра f можно подставить фактическое имя функции Trig: Iter ( Trig, 1.5, 0.005, x1).

Для того, чтобы установилась такая связь формального и фактического процедурного параметра, необходимо перед описанием функции Trig вставить директиву компилятора {$F+}.

Параметры, передаваемые процедуре при вызове, называются фактическими параметрами

Вызов процедуры общего вида производится оператором процедуры:

Вызов функции производится из выражения с помощью указателя функции:

<имя функции>(<список аргументов параметров >)

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

Вызов процедуры включает следующие шаги:

  • среди описаний процедур ищется процедура с именем <имя процедуры>;

  • вместо формальных параметров подставляются (передаются) соответствующие фактические параметры;

  • выполняется модифицированное тело процедуры;

  • управление возвращается из процедуры к оператору, следующему за оператором процедуры.

Соседние файлы в папке ПРАКТИКУМ-1--5