перемножение двух матриц, перемножить две матрицы разного порядка |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
перемножение двух матриц, перемножить две матрицы разного порядка |
AlexPS |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: -1 |
Чуваки, помогите пжалуйста.
Мне нужна процедура перемнодения двух матриц разного порядка, например 5Х3 на 3Х5. А везде, где искал, только перемножение квадратных матриц. -------------------- @13][ P.$.
www.alex-ps.com |
volvo |
Сообщение
#2
|
Гость |
AlexPS
Правила для кого? Цитата 4. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! Даже поиском пользоваться не надо - см. ФАК - "Массивы. Матрицы. Типичные задачи" - последний пост, я выкладывал функцию для перемножения "сцепленных" матриц... Сообщение отредактировано: volvo - |
AlexPS |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: -1 |
Пасиба чувак. Я это искал 2 месяца!!! :molitva:
-------------------- @13][ P.$.
www.alex-ps.com |
AlexPS |
Сообщение
#4
|
Новичок Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: -1 |
volvo, у меня этот модуль не компилируется, а понять в нем я ниче не могу. Если не сложно напиши мне процедуруперемножения этих матриц.
-------------------- @13][ P.$.
www.alex-ps.com |
BlackNightFear |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 48 Пол: Мужской Репутация: 0 |
AlexPS
ты сам алгоритм перемножения знаешь? |
Jahnerus |
Сообщение
#6
|
Уникальный Группа: Пользователи Сообщений: 64 Пол: Мужской Репутация: 2 |
AlexPS
Код type ma3x=array[1..50,1..50] of integer; ............ procedure pr_ma3x(m1,t,n2:integer;a1,a2:ma3x;var pr:ma3x); {n1=m2=t} var i,j,k:integer; begin for i:=1 to m1 do begin for j:=1 to n2 do begin for k:=1 to t do pr[i,j]:=pr[i,j]+a1[i,k]*a2[k,j] end end end; Процедура перемножения 2 матриц a1(m1,n1) и a2(m2,n2) напоминаю, что чтобы матрицы можно было перемножить необходимо чтобы n1=m2, поэтому процедура принимает только три параметра размерности(а больше и не надо! :D ) Сообщение отредактировано: Jahnerus - -------------------- Век живи, век учи С © by Jahnerus
|
volvo |
Сообщение
#7
|
Гость |
AlexPS
Что значит "не компилируется?" Чем пытался скомпилировать? Сообщение отредактировано: volvo - |
Jahnerus |
Сообщение
#8
|
Уникальный Группа: Пользователи Сообщений: 64 Пол: Мужской Репутация: 2 |
volvo
Цитата AlexPS Что значит "не компилируется?" Чем пытался скомпилировать? :D Калькулятором может ! Run: calc c:\Unit1.pas :D :D :D -------------------- Век живи, век учи С © by Jahnerus
|
AlexPS |
Сообщение
#9
|
Новичок Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: -1 |
А че, калькулятором нельзя??? :o
-------------------- @13][ P.$.
www.alex-ps.com |
volvo |
Сообщение
#10
|
Гость |
AlexPS
Так чем все-таки? Турбо Паскаль? Дельфи? FPC? |
Altair |
Сообщение
#11
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
AlexPS, присоединяюсь к вопросу: "Чем вы пробовали компилировать?"
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
AlexPS |
Сообщение
#12
|
Новичок Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: -1 |
Delphi 7
-------------------- @13][ P.$.
www.alex-ps.com |
Jahnerus |
Сообщение
#13
|
Уникальный Группа: Пользователи Сообщений: 64 Пол: Мужской Репутация: 2 |
Короче не компилиться только в одном случае !
Если компилить через TPC и без поддержки 8087! На FPC всё и так замечательно, потому что FPC - гуд! :D -------------------- Век живи, век учи С © by Jahnerus
|
AlexPS |
Сообщение
#14
|
Новичок Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: -1 |
Так я ничего и не понял, что мне делать???
-------------------- @13][ P.$.
www.alex-ps.com |
volvo |
Сообщение
#15
|
Гость |
AlexPS
А я не понял, почему у всех компилится, а у тебя - нет... Вот тебе процедура перемножения матриц (правда, я не понимаю, зачем тогда ФАК...) Код Const sizeX = 5; sizeY = 3; Type TOneMatrix = Array[1 .. sizeX, 1 .. sizeY] Of Real; TTwoMatrix = Array[1 .. sizeY, 1 .. sizeX] Of Real; TResult = Array[1 .. sizeX, 1 .. sizeX] Of Real; (* matrix multiplication *) Procedure matrixMult(Var m: TResult; a: TOneMatrix; b: TTwoMatrix); Var i, j, k: Integer; Begin For i := 1 To sizeX Do For j := 1 To sizeX Do Begin m[i, j] := 0; For k := 1 To sizeY Do m[i, j] := m[i, j] + a[i, k] * b[k, j] End; End; Var m1: TOneMatrix; m2: TTwoMatrix; r: TResult; Begin {заполняешь матрицу m1(5x3)} {заполняешь матрицу m2(3x5)} matrixMult(r, m1, m2); {получаешь матрицу r(5x5)} End. |
Guest |
Сообщение
#16
|
Гость |
А по-моему эта процедура не подойдет для случая, например
3Х2 и 2Х5. |
volvo |
Сообщение
#17
|
Гость |
Guest
А по-моему, эта процедура писалась для случая 5Х3 на 3Х5. Общую процедуру ищите в ФАКе. |
Текстовая версия | 11.01.2025 22:36 |