![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
otherside |
![]()
Сообщение
#1
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 98 Регистрация: 29.2.2008 Город: красноярск Учебное заведение: КрижтИрГупс Вы: студент ![]() |
пдскажите пожалуйста как написать программу перемножения двух произвольных матриц? размер матриц запрашивается с клавиатуры. на экране должно появится:
1)запрос размера матриц 2)две заполненные матрицы 3 третья матрица-результат перемножения |
![]() ![]() |
tig81 |
![]()
Сообщение
#2
|
Академик ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Преподаватели Сообщений: 15 617 Регистрация: 15.12.2007 Город: Украина, Запорожье Учебное заведение: ЗНУ Вы: преподаватель ![]() |
пдскажите пожалуйста как написать программу перемножения двух произвольных матриц? размер матриц запрашивается с клавиатуры. на экране должно появится: 1)запрос размера матриц 2)две заполненные матрицы 3 третья матрица-результат перемножения Пусть заданы две матрицы: А размера mxn и B размера nxk. Тогда элементы матрицы С=АВ, вычисляются по формуле: c[i,j]=sum(a[i,t]*b[t,j],t=1..n). |
otherside |
![]()
Сообщение
#3
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 98 Регистрация: 29.2.2008 Город: красноярск Учебное заведение: КрижтИрГупс Вы: студент ![]() |
вот написала программу... проверьте пожалуйста так или нет?
program five; var a:array[1..100,1..100] of integer; {можно было объединить a,b,c:array[1..100,1..100] of integer;} b:array[1..100,1..100] of integer; c:array[1..100,1..100] of integer; m,k,n,i,j,m2,n2,S:integer; begin randomize; write ('введите n= '); read(n); write ('введите m= '); read(m); for i:=1 to n do for j:=1 to m do a[i,j]:=random(20)-10; {наверное так} writeln('матрица а='); for i:=1 to n do begin for j:=1 to m do write(round(a[i,j]),' '); {Зачем округляете, матрица целочисленная} writeln( ); end; write('введите n2= '); read(n2); write('введите m2= '); read(m2); for i:=1 to n2 do for j:=1 to m2 do b[i,j]:=random(20)-10; writeln('матрица b='); for i:=1 to n2 do begin for j:=1 to m2 do write(round(b[i,j]),' '); writeln( ); end; if m=n2 then begin for i:=1 to n do for j:=1 to m2 do begin S:=0; for k:=1 to m do S:=S+a[i,k]*b[k,j]; c[i,j]:=S; end; writeln('матрица c=a*b'); for i:=1 to n do begin for j:=1 to m2 do write(round(c[i,j]),' '); writeln( ); end; end else write('перемножение невозможно'); end. |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 27.5.2025, 23:18 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru