Показать сообщение отдельно
Старый 14.12.2013, 00:37   #8 (permalink)
Gruvi
VIP user
 
Аватар для Gruvi
 
Регистрация: 10.03.2011
Сообщений: 765
Записей в дневнике: 1
Сказал(а) спасибо: 10
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3453
По умолчанию

У меня на компе много разных исходников, в своё время что-то писал, на вот держи, нашел.
Цитата:
uses crt;
const nmax=10;
type matr=array[1..nmax,1..nmax] of integer;
procedure Umn(a,b:matr;ma,na,nb:byte;var c:matr);
var i,j,p:byte;
begin
for p:=1 to ma do
for j:=1 to nb do
begin
c[p,j]:=0;
for i:=1 to na do
c[p,j]:=c[p,j]+a[p,i]*b[i,j];
end;
writeln('Матрица C=A*B:');
for i:=1 to ma do
begin
for j:=1 to nb do
write(c[i,j]:4);
writeln;
end;
end;
var a,b,c:matr;
m,n,k,q,i,j,p:integer;
begin
clrscr;
repeat
write('Количество строк первой матрицы до ',nmax,' m=');
readln(m);
until m in [1..nmax];
repeat
write('Количество столбцов первой матрицы до ',nmax,' n=');
readln(n);
until n in [1..nmax];
repeat
write('Количество строк второй матрицы до ',nmax,' k=');
readln(k);
if k<>n then writeln('Количество строк должно быть равно количеству столбцов первой матрицы');
until (k=n);
repeat
write('Количество столбцов второй матрицы до ',nmax,' q=');
readln(q);
until q in [1..nmax];
writeln('Матрица А:');
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(10);
write(a[i,j]:3);
end;
writeln;
end;
writeln('Матрица В:');
for i:=1 to k do
begin
for j:=1 to q do
begin
b[i,j]:=random(10);
write(b[i,j]:3);
end;
writeln;
end;
Umn(a,b,m,n,q,c);
readln
end.
Gruvi вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070