Структура модуля

Модули

Begin

Begin

Begin

Begin

<тело функции>;

end;

 

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

Тип функции может быть только скалярным: real, integer, char, boolean, string.

Особенности функций следующие:

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

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

 

Имя функции := значение (результат вычислений).

 

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

 

<Переменная>:=<имя функции>(список фактических параметров).

 

Порядок обращения к подпрограмме–функции следующий.

Если при компиляции программы встречается имя подпрограммы (процедуры или функции), это имя отыскивается в описании.

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

Следует запомнить. Так как происходит замена формальных параметров фактическими, то число, тип и порядок следования формальных и фактических параметров должен обязательно совпадать.

 

Пример. Составить программу вычисления затрат тепла на образование силикатов при варке стекла по выражению

,

где Вj – массив значений стеклобоя, j = 1,2, … 5; Qi – удельный расход тепла, i = 1,2, … 6; Pi – концентрация реагентов в шихте, i = 1,2, … 6.

Program Teplo;

type mas1=array[1..5]of real;

mas2=array[1..6]of real;

var QS,B:mas1;

Q,P:mas2;

i,j:integer;

Function Sum(Q,P:mas2):real;

var i:integer;

s:real;

s:=0.0;

for i:=1 to 5 do

s:=s+Q[i]*P[i];

Sum:=s;

end;

{Основная программа}

for i:=1 to 6 do

readln (Q[i],P[i]);

for j:=1 to 5 do

readln (B[j]);

for j:=1 to 6 do

{Обращение к функции Sum(Q,P)}

QS[j]:=(100–B[j])*Sum(Q,P)/100;

writeln (’QS’, j, ’=’,QS[j]:10:2);

end;

End.

 

Наличие модулей в Turbo-Pascal позволяет программировать и отлаживать программу по частям, создавать библиотеки программ и данных. Набор процедур и функций, объединенных в один блок (UNIT), может компилироваться независимо от главной программы. Благодаря этому, время компиляции для больших программ существенно сокращается. Модульный принцип построения особенно важен при разработке программ расчета сложных химико-технологических процессов (ХТП), математическое описание которых представляет собой комплекс математических описаний блоков ХТП.

Модуль состоит из следующих частей:

-заголовка модуля;

-интерфейса модуля;

-исполнительной (реализационной) части модуля;

-секции инициализации.

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