Prosím o pomoc....napísala som program pre vynásobenie dvoch matíc, ktorý sa spustí ale po prvej procedúre sa vypne a nepokračuje. Rozmýšľam nad tým už 2 dni a neviem nájsť chybu. Veľmi pekne ďakujem za odpovede.
program Nasobenie;
uses crt;
const q=10;
type pole=array [1..q,1..q] of integer;
var a,b,c: pole;
i,j,p,k,l,m,n: integer;
procedure MENU(k,l,m,n: integer);
begin
writeln('==========Nasobenie matic==========');
writeln('Pocet stlpcov prvej matice sa musi rovnat poctu riadkov druhej matice!');
writeln;
write(' 1. matica - pocet riadkov: ');
readln(k);
write(' 1. matica - pocet stlpcov: ');
readln(l);
writeln;
write(' 2. matica - pocet riadkov: ');
readln(m);
if m<>l then writeln('Neda sa vypocitat!')
else begin
write(' 2. matica - pocet stlpcov: ');
readln(n);
end;
writeln;
end;
procedure VYPIS(i,j,p,k,l,n: integer; a,b: pole);
begin
for i:= 1 to k do
for j:= 1 to l do
begin
write('1. matica - prvok ',i,',',j,': ');
readln(a[i,j]);
end;
writeln;
for j:= 1 to l do
for p:= 1 to n do
begin
write('2. matica - prvok ',j,',',p,': ');
readln(b[j,p]);
end;
end;
procedure SUCIN(i,j,p,k,l,n: integer; a,b,c: pole);
begin
for i:=1 to k do
for j:=1 to l do
begin
c[i,j]:=0;
for p:=1 to n do
c[i,j]:=c[i,j]+a[i,p]*b[p,j];
end;
for i:=1 to k do
begin
for p:=1 to n do
begin
write(c[i,p]);
end;
writeln;
end;
end;
begin
clrscr;
MENU(k,l,m,n);
VYPIS(k,l,m,i,j,p,a,b);
SUCIN(k,l,m,i,j,p,a,b,c);
readln;
end.