begin
WriteLn('Введите ', N, ' целых чисел');
for i := 1 to N do
Read(Mas[i])
end;
Для вызова процедуры из основной программы или другой подпрограммы следует записать оператор, состоящий из имени процедуры и списка фактических параметров, которые должны совпадать по количеству и типам с формальными параметрами процедуры.
Например: InpInt(M,K);означает, что вызывается процедура Inplnt для ввода К целых чисел в массив М. Естественно, что в этом случае параметр К целого типа, а М - массив типа tArr.
10.2. Функция
Подпрограмма-функция предназначена для вычисления какого-либо параметра, у этой подпрограммы два основных отличия от процедуры.
- Первое отличие функции в ее заголовке. Он состоит из слова function, за которым следует имя функции, далее в круглых скобках - список формальных параметров (о формальных параметрах см. п. 10.3), затем через двоеточие записывается тип функции - тип возвращаемого параметра. Функция может возвращать параметры следующих типов: любого порядкового, любого вещественного, стандартного типа string, любого указателя, в том числе и типа PChar.
- Второе отличие заключается в том, что в теле функции хотя бы раз имени функции должно быть присвоено значение.
Пример. Функция вычисления факториала числа N.
function Factorial(N: Byte): Longint;
var
Fact: Longint;
i: Byte;
begin
Fact := N;
for i := N-l downto 2 do
Fact := Fact * i;
Factorial := Fact
end;
Если имя функции внутри ее описания используется в правой части оператора присваивания, то это означает, что функция вызывает себя рекурсивно
Для вызова функции из основной программы или другой подпрограммы следует в выражении, где необходимо использовать значение функции, указать имя функции со списком фактических параметров, которые должны совпадать по количеству и типам с формальными параметрами функции, например:
Part:=Sqr(T)/Factorial(i) ;
В этом операторе:
Sqr(T) - вызов стандартной функции возведения в квадрат с фактическим параметром Т;
Factorial (i) - вызов функции, вычисляющей факториал с фактическим параметром i.