В практике программирования часто встречается ситуация, когда одну и ту же группу операторов требуется выполнить без изменений в нескольких местах программы. Чтобы избавить программиста от многократного дублирования одинаковых фрагментов, была предложена концепция подпрограмм.
Определение
Подпрограмма – это самостоятельный алгоритм, который может многократно использо-ваться при решении общей задачи
Функция
Функция – подпрограмма, которая обязательно имеет один выходной параметр, который передаётся через ее имя. Дополнительно может иметь любое количество входных и выходных параметров.
Описание функций
function Имя1 (Параметры) : Тип;
{Локальные переменные}
begin
операторы ;
end;
function Имя2 : Тип ;
begin
операторы ;
end;
Примеры функций (1)
Var K, N, Res : Byte;
function Sum(A, B : Byte) : Byte;
begin
Sum := A + B;
end;
Begin Readln(K, N);
Res := Sum(K, N);
End.
Примеры функций (2)
Var K, N, Res : Byte;
function Sum : Byte;
begin
Sum := K + N;
end;
Begin readln (K, N);
Res := Sum;
End.
Примеры функций (3)
Var X, Y, Res : Real;
function Del (A, B : Real,
Var R : Real) : Boolean;
begin
if B = 0 then Del := False
else begin R := A / B; Del := True end;
end;
Begin readln(X, Y);
if Del (X, Y, Res) then writeln(Res:12:4)
else writeln(‘Деление на ноль’)
End.
Примеры функций (4)
Const X = 20; Y = 7; Var Res : Real;
function Del(A, B : Real,
Var R : Real) : Boolean;
begin
if B = 0 then Del := False
else begin R := A / B; Del := True end;
end;
Begin
if Del(20, 7, Res) then writeln(Res:12:4)
else writeln(‘Деление на ноль’)
End.
Примеры функций (5)
Var X, Res : Real; N : Byte;
function Step(A : Real, M : Byte) : Real;
Var J : Byte; Y : Real;
begin Y := 1;
for J:=1 to M do Y := Y * A;
Step := Y
end;
Begin readln(X, N);
Res := Step(X, N); writeln(Res:12:4)
End.
Процедура
Процедура – подпрограм-
ма, которая может не иметь параметров. Но, также может иметь любое количество входных и выходных параметров.
Описание процедур
Procedure Имя1 (Параметры) ;
begin
операторы ;
end;
Procedure Имя2 ;
{Локальные переменные}
begin
операторы ;
end;
Примеры процедур (1)
Var K, N, Res : Byte;
procedure SumP(A, B : Byte,
Var Result : Byte);
begin
Result := A + B;
end;
Begin readln (K, N);
SumP(K, N, Res);
End.
Примеры процедур (2)
Var K, N, Res : Byte;
procedure SumP;
begin
Res := K + N;
end;
Begin readln (K, N);
SumP; writeln(Res);
End.
Примеры процедур (3)
Var X, Y, Res : Real; CodeE : Boolean;
procedure DelP(A,B : Real;
Var R : Real; Var Err : Boolean);
begin
if B = 0 then Err := True
else begin R := A / B; Err := False end;
end;
Begin readln(X, Y); DelP(X, Y, Res, CodeE);
If Not CodeE then writeln(Res:12:4)
else writeln(‘Деление на ноль’)
End.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.