Подпрограмма - процедура
В отличие от подпрограммы – функции подпрограмма – процедура в качестве результата может возвращать несколько значений. Структура процедуры имеет вид:
Procedure имя (а1;...;аn);
|
|
End;,
где a1;…an – список формальных параметров с указанием типа. Причем при указании типа параметра обязательно выделяют параметры, которые в ходе выполнения программы не меняют своего значения и которые могут его изменить. Если параметр меняет свое значение (обычно это результат), то перед ним ставится служебное слово Var.
Пример.Составить подпрограмму умножения двух квадратных матриц С=А*В m-го порядка.
Type Matr = array [1..10, 1..10] of real;
Var A, B, C : Matr;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Procedure MultMat (n: integer; Mat1, Mat2:Matr; Var Mat3:Matr);
var i.k,j : integer;
begin
for 1:=1 to n do
for j:=1 to n do begin
Mat3[i,j]:=0.0;
for k:=l to n do
Mat3[i,j]:=Mat3[i,j]+Mat1[i.k]*Маt2[k,j];
end;
end;
Здесь массивы Mat1 и Mat2 в ходе выполнения процедуры не меняют своих значений, поэтому для них указывается только тип. Массив Mat3 формируется в процедуре, соответственно при описании его типа перед именем ставится ключевое слово Var. Переменные i, j, k задействованы только внутри процедуры, поэтому они описаны как локальные переменные.
Вызов процедуры осуществляется по имени, с указанием фактических параметров. Так, для рассматриваемого примера обращение к процедуре может выглядеть так:
MultMat (m. A, B, С);
Результат перемножения двух матриц располагается в массиве С.
Описание процедуры служит для определения процедуры в рамках текущей процедуры или программы. Выполнение процедуры начинается с оператора процедуры и после завершения процедуры выполнение программы продолжается с оператора, следующего непосредственно за оператором вызова процедуры.
Лекция 11.
Дата добавления: 2015-08-08; просмотров: 621;