Takze mam program:
Kód:
program Sucin_matic;
uses crt;
Type pole=array[1..10,1..10] of integer;
var
A,B,D : pole;
I,J,M,N,K,L : integer;
procedure CITAJ (var A : pole);
begin
for I:= 1 to M do
for J:= 1 to N do
begin
Writeln('Zadaj ',J,' prvok v ',I,' riadku ');
Readln(A[I,J]);
end;
end;
procedure CITAJ2 (var B : pole);
begin
for I:= 1 to K do
for J:= 1 to L do
begin
Writeln('Zadaj ',J,' prvok v ',I,' riadku ');
Readln(B[I,J]);
end;
end;
procedure VYPIS (A : pole);
begin
for I:= 1 to M do begin
for J:= 1 to N do begin
Write(A[I,J]:4);
end;
Writeln;
end;
end;
procedure VYPIS2 (B: pole);
begin
for I:= 1 to K do begin
for J:= 1 to L do begin
Write(B[I,J]:4);
end;
writeln;
end;
end;
procedure SUCIN (D : pole);
begin
for I:=1 to M and K do begin
for J:=1 to N and L do begin
D[I,J]:=(A[I,J])*(B[J,I]);
write (D[I,J]:4);
end;
writeln;
end;
end;
begin
clrscr;
Writeln('Zadaj pocet riadkov v 1. matici ');
Readln(M);
Writeln('Zadaj pocet stlpcov v 1. matici ');
Readln(N);
Writeln('Zadaj pocet riadkov v 2. matici ');
Readln(K);
Writeln('Zadaj pocet stlpcov v 2. matici ');
Readln(L);
if N<>K then writeln ('Matica sa neda vypocitat ') else
Writeln('Zadaj prvky I. matice ');
CITAJ(A);
Writeln('Zadaj prvky II. matice ');
CITAJ2(B);
readkey;
delay(1000);
clrscr;
Writeln('I. matica ');
VYPIS(A);
Writeln('II. matica ');
VYPIS2(B);
Writeln('Sucin I. a II. matice ');
SUCIN(D);
readkey;
end.
Program ma vynasobit 2 matice (A a B) do matice D. Moj program vypise aj prvu maticu, aj druhu, ale neviem ako to sformulovat tak, aby my fungovala procedura SUCIN. Prikladam aj originalne zadanie:
Zostavte program, ktorý načíta zo vstupu rozmery dvoch matíc A,B a ich prvky. Potom matice medzi sebou vynásobí (ak to ide) a výsledok uloží do matice C. Maticu C vypíše.
Ak by niekto nevedel, matice sa daju nasobit iba stvorcove alebo ak jedna je typu m*n a druha n*p, vysledok m*p.
Diky za vas cas a rady, prip celkovu korekciu programu
![:)](https://www.pcforum.sk/images/smilies/smile02.gif)