Процедуры
При описании процедуры указывается заголовок, который состоит из обязательного слова Procedure, имени процедуры и необязательного списка параметров в круглых скобках с указанием типа каждого параметра). Вызов процедуры осуществляется с помощью оператора вызова, который состоит из имени процедуры и списка аргументов, заключенных в круглые скобки. Аргументы должны быть указаны строго в том порядке и с теми типами данных, как и при описании процедуры.
Пример 7(реализация в консольном приложении).
Найти произведение двух одномерных массивов.
Блок-схема алгоритма представлена на рисунке 10. Для примера в алгоритме представлена только процедура ввода двумерного маасива.
|
Рисунок 10 - Блок-схема алгоритма
Текст программы:
program Project1;
{$APPTYPE CONSOLE}
uses SysUtils;
Const Nmax=255;
Type
ArrayType=Array [0..Nmax-1,0..Nmax-1] of integer;
Procedure Print (S:ShortString;
D: ArrayType;K,L:integer);
var
i,j:integer;
begin
Writeln;
writeln(' massiv ',S);
for i:=0 to K-1 do
begin
for j:= 0 to L-1 do
write(D[i,j]:5);
WriteLn;
end;
WriteLn;
end;
Procedure Input (var D: ArrayType;K,L:integer);
var
i,j:integer;
begin
Writeln;
for I := 0 to K-1 do
begin
WriteLn(i+1,' stroka');
for j := 0 to L - 1 do
begin
Write('input ',j+1,' element matrix ');
ReadLn(D[i,j]);
end;
end;
end;
Procedure Umnozh (var C: ArrayType;K,L,N:integer;A,B:ArrayType);
var
i,j,S,H:integer;
begin
for i := 0 to K-1 do
for j := 0 to L-1 do
begin
S:=0;
for h := 0 to N - 1 do
S:=S+A[i,h]*B[h,j];
C[i,j]:=S;
end;
end;
var
A,B,C:ArrayType;
K,L,N:integer;
begin
Writeln('Program Umnozh A[KxN]xB[NxL]');
Writeln('vvedite razmernost massiva A');
Write('k=');
ReadLn(K);
Write('N=');
ReadLn(N);
Input(A,K,N);
Writeln('vvedite razmernost massiva B');
WriteLn('N=',N);
Write('L=');
ReadLn(L);
Input(B,N,L);
Umnozh(C,K,L,N,A,B);
Print('A[kxN]',A,k,N);
Print('B[NxL]',B,N,L);
Print('C[KxL]',C,K,L);
Readln;
end.
Дата добавления: 2015-04-10; просмотров: 1001;