Процедуры. При описании процедуры указывается заголовок, который состоит из обязательного слова Procedure, имени процедуры и необязательного списка параметров в круглых

При описании процедуры указывается заголовок, который состоит из обязательного слова Procedure, имени процедуры и необязательного списка параметров в круглых скобках с указанием типа каждого параметра). Вызов процедуры осуществляется с помощью оператора вызова, который состоит из имени процедуры и списка аргументов, заключенных в круглые скобки. Аргументы должны быть указаны строго в том порядке и с теми типами данных, как и при описании процедуры.

Пример 7 (реализация в консольном приложении).

Найти произведение двух одномерных массивов.

Блок-схема алгоритма представлена на рисунке 10. Для примера в алгоритме представлена только процедура ввода двумерного маасива.

j

Рисунок 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.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: