Лекция 2. Подпрограммы

advertisement
ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ.
ПОДПРОГРАММЫ И МОДУЛИ ПРИ РЕШЕНИИ
ЗАДАЧ ХИМИЧЕСКОЙ ТЕХНОЛОГИИ.
Лекция 2. Подпрограммы
План
1.Процедуры и функции.
2.Описание подпрограмм.
3.Параметры подпрограмм.
1
1. Процедуры и функции.
Подпрограммы и модули представляют собой
самостоятельные программные единицы, имеющие имя и
параметры. Модули состоят из подпрограмм и используются
для выполнений определенных действий, стандартных или
нестандартных. В начале программы делается сообщение
об использовании модуля служебным словом USES.
Подпрограммы разделяются на процедуры и функции.
Результатом функции является одно значение, которое
присваивается ее имени. Процедура содержит два и более
результатов.
2
В общем случае подпрограммы представляют собой описание
некоторых действий, выполнение которых происходит в главной
программе после указания имени подпрограммы и параметров. С
использованием подпрограмм любой алгоритм может быть разбит
на определенное число частей.
Во-первых, это есть средство экономии памяти компьютера при
решении сложных задач.
Во - вторых – обеспечивает структурированность алгоритма.
Третья причина использования технологии программирования,
основанной на модулях и процедурах,
заключается в специфике
химико-технологического производства.
3
Любой химико-технологический процесс состоит из аппаратов
химического превращения или реакторов, аппаратов
разделения и теплообмена. Поэтому расчет химикотехнологического производства заключается
в определении
параметров потоков в этих аппаратов с разными значениями
входных переменных.
2. Описание подпрограммы заключается в указании ее
заголовка и содержания. В заголовке процедуры
определяются имя и параметры, а в заголовке функции
дополнительно указывается тип результата, например integer.
За заголовком следует содержание подпрограммы, которое
подобно главной программе состоит из блока описания и
блока выполняемых операторов.
4
Заголовок подпрограммы имеет вид:
FUNCTION
{имя} { список формальных параметров }:
{тип};
PROCEDURE {имя}{список формальных параметров};
Список формальных параметров представляется через запятую по
порядку следования
5
2
ax x
1
3
k  lg
 2  10 1  2x
3 x
a
6
Program Pro1;
var k,a,x:real;
function lg(x:real):real;
begin lg:=ln(x)/ln(10) end;
function pow(a,x:real):real;
begin pow:=exp(xln(a)) end;
7
BEGIN
readln(a,x);
k:=lg(asqr(x)sqrt(x)/(3+x))+
2E3pow(1+2x,1-sqrt(a));
writeln(’k=’, k:10)
END.
8
Для обращения к функции Pow мы указали ее имя и список
параметров при выводе данных. Параметры функции в момент
обращения к ней по имени – это фактические параметры. Они
автоматически заменяют формальные параметры A и X по
порядку следования. Количество и тип формальных и
фактических параметров строго соответствуют друг другу.
9
Процедуры
используются
в
том
случае,
если
подпрограмма имеет несколько результатов вычислений или
результат является многомерной величиной(массивом).
Описание процедуры имеет вид:
Procedure <имя> (формальные параметры);
<раздел описаний>
label <список меток>;
const <список констант>;
type <список типов>;
var <список переменных>
Begin <тело процедуры> End;
Процедура помещается в основной программе в разделе
описаний VAR.
10
Общая структура Программы, содержащей Процедуры и
Функции
Program PRO;
Заголовок Главной Программы
Var
Procedure p1(…….);
Var
Begin…….
End;
Function f1(……): real;
Var Begin………
End;
Begin ………..End.
Процедуры
Функции
Главная
программа
11
3. Параметры подпрограмм.
Различают глобальные и локальные параметры.
Глобальные параметры являются общими на
две или более программных единиц.
Локальные параметры изменяют свои
значения только внутри данной программной
единицы.
12
PROGRAM Proc;
VAR a, d, x, y:real;
f1, f2:text;
PROCEDURE ff( VAR x,y:real);
BEGIN
y:=x+1;
END;
BEGIN
assign(f2,'agg.rez'); reset(f2);
read(f2,a,d);
assign(f1,'q'); rewrite(f1);
write(f1,a:4:1,d:4:1);
ff(a,d);
write(a,d);
close(f1);
END.
13
Как видно из примера , описание параметров в блоке VAR
означает , что данная группа параметров является
глобальными для входа и выхода значений(x,y). При
отсутствии в заголовке служебного слова VAR значения
параметров передаются внутрь процедуры , но не
передаются из нее в главную программу(a,d). Для обращения
к процедуре ff мы указали ее имя. Числа в скобках - это
фактические параметры. Они автоматически заменяют
формальные параметры
по порядку следования.
Количество и тип формальных и фактических параметров
строго соответствуют друг другу. При отсутствии VAR в
заголовке значения a и d оказываются неопределенными.
14
15
Составить подпрограмму для решения квадратного
уравнения
Program Pro2;
var
procedure sq( a,b,c:real;var x1,x2 : real );
var
d:real;
begin
D:=B*B - 4*A*C;
x1:=(-b+SQRT(D))/(2*a);
x2:=(-b-SQRT(D))/(2*a); end;
16
y1,y2:real;
begin
sq (5.7,-1.2,-8.3,y1,y2);
write(y1,y2);
end.
17
Описание параметров в блоке VAR означает , что данная
группа параметров является глобальными для входных
значений(x1,x2) и выходных (y1,y2). При отсутствии в
заголовке служебного слова VAR значения параметров
передаются внутрь процедуры , но не передаются из нее в
главную программу(a,b,c). Для обращения к процедуре sq
мы просто указали ее имя. Числа в скобках (5.7,-1.2,-8.3) это фактические параметры. Они
параметры
заменяют формальные
при указании имени процедуры по порядку
следования. Количество и тип формальных и фактических
параметров строго соответствуют друг другу.
18
Download