Структура модуля
Модули
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), может компилироваться независимо от главной программы. Благодаря этому, время компиляции для больших программ существенно сокращается. Модульный принцип построения особенно важен при разработке программ расчета сложных химико-технологических процессов (ХТП), математическое описание которых представляет собой комплекс математических описаний блоков ХТП.
Модуль состоит из следующих частей:
-заголовка модуля;
-интерфейса модуля;
-исполнительной (реализационной) части модуля;
-секции инициализации.
Все разделы модуля, за исключением секции инициализации, являются обязательными.