Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Люди помогите,срочно надо написать программу (http://www.tehnari.ru/f41/t93088/)

Demon11101995 14.12.2013 00:15

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

Gruvi 14.12.2013 00:28

хмм.... у вас есть какие-нибудь наработки?
как вы представляете себе язык программирования?
как вы представляете себе программу?
как вы представляете себе контроль правильности данных?
:tehnari_ru_837::telepat:

Demon11101995 14.12.2013 00:31

Каждый элемент матрицы C (C=A*B) равен сумме произведений элементов i-й строки матрицы A на соответсвующие элементы j-го столбца матрицы B: Cij=Сумм(Aik*Bkj), где k=1,n

A(nxm)*B(mxr)=C(nxr)

Умножение матриц не подчиняется коммутативному закону - то есть A*B не равно B*A...
,



вот мои нароботки!но я не могу написать программу(

Léon 14.12.2013 00:32

Скажите язык программирования.

Gruvi 14.12.2013 00:33

Вы пробовали писать программу? просто теорию и я скопировать могу с разных источников

Demon11101995 14.12.2013 00:35

Мне необходимо написать на паскале,но чтобы понятно было.
Просто придется рассказывать как она работает!

Demon11101995 14.12.2013 00:35

пробовал,но именно с этой задачей возникли проблемы!

Gruvi 14.12.2013 00:37

У меня на компе много разных исходников, в своё время что-то писал, на вот держи, нашел.
Цитата:

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.

Demon11101995 14.12.2013 00:39

Спасибо),выручили.осталось разобраться)

Gruvi 14.12.2013 00:39

не за что, разбирайся =)
будут вопросы, пиши сюда.


Часовой пояс GMT +4, время: 01:42.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.