pascal - работа с подпрограммой
procedure <имя_процедуры> (<описание параметров-значений>; var: <описание параметров-переменных>); begin <операторы> end;
Для вызова процедуры достаточно указать её имя со списком фактических параметров.
function <имя_функции> (<описание входных данных>): <тип_функции>; begin <операторы>; <имя_функции> := <результат> end;
В блоке функции обязательно должен присутствовать оператор <имя_функции> := <результат>.
Пример вызова процедуры.
program digits; var n, k, j: integer; procedure number_col(m: integer); var i: integer; s: string; begin str(m, s); for i := 1 to length(s) do writeln(s[i]); end; begin read(n); number_col(n); number_col(k); number_col(j); end.
Степень числа - возведение в степень.
program stepen_01; var R, x, n, i: integer; begin // R := x * x * x * x * x; // R := x; // R := R * x; // R := R * x; // R := R * x; // R := R * x; write('Input x, n: '); readln(x, n); R := x; for i := 1 to n-1 do R := R * x; writeln('stepen = ', R); end.
Механизм возведения в степень выделен в процедуру.
program stepen_02; var R, x, n: integer; procedure stepen( x1, n1: integer; var R1: integer); var i: integer; begin R1 := x1; for i := 1 to n1-1 do R1 := R1 * x1; end; begin write('Input x, n: '); readln(x, n); stepen( x, n, R); writeln('stepen = ', R); end.
Механизм возведения в степень из процедуры преобразован в функцию.
program stepen_03; var R, x, n: integer; function stepen( x1, n1: integer): integer; var i: integer; begin stepen := x1; for i := 1 to n1-1 do stepen := stepen * x1; end; begin write('Input x, n: '); readln(x, n); R := stepen( x, n); writeln('stepen = ', R); end.
Решение задачи с применением своей созданной функции.
program stepen_04; var R, x, n: integer; function stepen( x1, n1: integer): integer; var i: integer; begin stepen := x1; for i := 1 to n1-1 do stepen := stepen * x1; end; begin write('Input x, n: '); readln(x, n); R := stepen( x, 3) + stepen( x, 5) + stepen( x, n); writeln('stepen = ', R); end.