Параметры
Подпрограмма-процедура
Подпрограмма-процедура предназначена для выполнения какой-либо логически законченной последовательности действий.
Описание процедуры начинается с заголовка:
procedure имя [(список формальных параметров)];
Далее могут идти такие же разделы, что и в основной программе.
Вызов процедуры осуществляется с помощью оператора:
имя_процедуры [(список фактических параметров)];
Пример использования процедур без параметров:
Программа организует вывод на экран меню, ввод массива, вычисление суммы элементов массива, вывод массива и выход из программы.
Код программы:
Program Pp;
Uses crt;
Const n=6;
Type
TMas=array[1..n] of real;
Var
a:TMas;
i:byte;
Procedure Menu;
begin
clrscr;
writeln('Выберите пункт меню');
writeln('1. Ввод массива');
writeln('2. Вычисление суммы');
writeln('3. Вывод массива');
writeln('4. Выход');
end;
Procedure In_Mas;
begin
for i:=1 to n do
begin
write('Введите а[', i, ']=');
readln(a[i])
end;
end;
Procedure Out_Mas;
begin
for i:=1 to n do
begin
writeln('а[', i, ']=', a[i]:6:3);
end;
end;
Procedure Sum_Mas;
var
s:real;
begin
s:=0;
for i:=1 to n do
s:=s+a[i];
writeln('s=', s:6:3);
end;
begin
repeat
Menu;
case readkey of
'1':In_Mas;
'2':Sum_Mas;
'3':Out_Mas;
'4':Exit
end;
writeln('Нажмите любую клавишу...');
readkey;
until False;
end.
Результаты работы программы:
Выберите пункт меню
1. Ввод массива
2. Вычисление суммы
3. Вывод массива
4. Выход
Выберите пункт меню
1. Ввод массива
2. Вычисление суммы
3. Вывод массива
4. Выход
Введите а[1]=2
Введите а[2]=46.7
Введите а[3]=4.2
Введите а[4]=8.4
Введите а[5]=5.7
Введите а[6]=2.8
Нажмите любую клавишу...
Выберите пункт меню
1. Ввод массива
2. Вычисление суммы
3. Вывод массива
4. Выход
s=69.800
Нажмите любую клавишу...
Выберите пункт меню
1. Ввод массива
2. Вычисление суммы
3. Вывод массива
4. Выход
а[1]= 2.000
а[2]=46.700
а[3]= 4.200
а[4]= 8.400
а[5]= 5.700
а[6]= 2.800
Нажмите любую клавишу...
Обмен информацией между основной программой и подпрограммой осуществляется с помощью параметров.
Фактические параметры – это реальные величины, над которыми должны быть выполнены действия, описанные в подпрограмме. Фактические параметры перечисляются через «,».
Формальные параметры – это переменные, которые используются в подпрограмме для описания действий над данными.
Формальные параметры можно разбить на категории:
- параметры-значения;
- параметры-переменные;
- параметры-процедуры;
- параметры-функции.
При передаче параметров по значению подпрограмма получает копию переменной. Изменение копии внутри подпрограммы не влияет на оригинал. При вызове подпрограммы фактические параметры вычисляются и используются как начальные значения формальных параметров, т. е. осуществляется подстановка значений. Параметры-значения используются для передачи исходных данных в подпрограмму.
При передаче параметров-переменных в подпрограмму передается адрес переменной, таким образом, подпрограмма получает доступ к самой переменной и может ее изменять. Параметры-переменные могут использоваться как для передачи исходных данных, так и для сохранения результата.
Формальные параметры перечисляются через «;» и задаются в виде:
<имя параметра>:<тип> для параметров-значений;
var <имя параметра>:<тип> для параметров-переменных.
Если несколько параметров имеют одинаковый тип, то они могут быть перечислены через запятую перед указанием типа.
Формальные и фактические параметры должны соответствовать:
- по количеству;
- по порядку следования;
- по типу.
Пример использования процедур с параметрами:
Для массивов А(5) и В(6) найти разность между суммами элементов:
Сумму найти в подпрограмме-процедуре.
Код программы:
Program Pp;
Uses crt;
Const n=6;
Type
TMas=array[1..n] of real;
Var
a, b:TMas;
i:byte;
Sa, Sb, y:real;
Procedure Sum_Mas(c:Tmas; k:byte; var s:real);
begin
s:=0;
for i:=1 to k do
s:=s+c[i];
end;
begin {основная программа}
clrscr;
for i:=1 to 5 do
begin
write('Введите а[', i, ']=');
readln(a[i])
end;
for i:=1 to 6 do
begin
write('Введите b[', i, ']=');
readln(b[i])
end;
Sum_Mas(a, 5, Sa);
Sum_Mas(b, 6, Sb);
y:=Sa-Sb;
writeln('Результат=', y:6:3);
readkey
end.
Результаты работы программы:
Введите а[1]=4.5
Введите а[2]=2.7
Введите а[3]=4.6
Введите а[4]=1.2
Введите а[5]=-7.5
Введите b[1]=3.6
Введите b[2]=8.4
Введите b[3]=-5.1
Введите b[4]=-5.8
Введите b[5]=3.5
Введите b[6]=9.4
Результат=-8.500