Лекция: Procedure имя (параметры);
function имя (параметры): тип результата;
Между функциями и процедурами есть существенное отличие. Значение, полученное в результате выполнения кода функции, жестко соотносится с ее именем путем присвоения этому имени конкретного значения. Тип, который может принять вычисляемое значение, указывается в заголовке функции (тип результата). И в теле основной программы функция вызывается только в том случае, если ее имя фигурирует в каком-либо выражении. В то время как процедура вызывается отдельно.
Параметры не является обязательным компонентом, однако их использование повышает гибкость процедуры или функции, т.к. они перестают быть привязанными к определенным данным.
Когда процедура или функция вызываются, то в скобках вместо формальных параметров, указав фактические параметры (аргументы). Это могут быть либо конкретные значения, либо переменные из основной программы.
Тело подпрограммы, как и любого составного оператора на языке Паскаль, ограничивается скобками begin и end.
Примеры использования процедуры и функции.
procedure box (s: char; w,h: integer);
var i,j:integer;
begin
for i := 1 to h do begin
for j := 1 to w do
write (s);
writeln
end;
writeln
end;
begin
box ('+', 10, 5);
box ('r', 20, 3);
box ('|', 50, 10);
box ('$', 12, 4);
readln
end.
var num: integer;
function digits (n:integer): integer;
var i: integer;
begin
i := 0;
while n > 0 do begin
n := n div 10;
i := i + 1
end;
digits := i
end;
begin
write ('Введите положительное число: ');
readln (num);
num := digits (num);
writeln ('Количество разрядов = ', num);
readln
end.