IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
Closed Topic Открыть новую тему 
> перемножение двух матриц, перемножить две матрицы разного порядка
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 34
Пол: Мужской

Репутация: -  -1  +


Чуваки, помогите пжалуйста.
Мне нужна процедура перемнодения двух матриц разного порядка,
например 5Х3 на 3Х5. А везде, где искал, только перемножение квадратных матриц. sad.gif


--------------------
@13][ P.$.
www.alex-ps.com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






AlexPS
Правила для кого?
Цитата
4. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!


Даже поиском пользоваться не надо - см. ФАК - "Массивы. Матрицы. Типичные задачи" - последний пост, я выкладывал функцию для перемножения "сцепленных" матриц...

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 34
Пол: Мужской

Репутация: -  -1  +


Пасиба чувак. Я это искал 2 месяца!!! :molitva:


--------------------
@13][ P.$.
www.alex-ps.com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 34
Пол: Мужской

Репутация: -  -1  +


volvo, у меня этот модуль не компилируется, а понять в нем я ниче не могу. Если не сложно напиши мне процедуруперемножения этих матриц.


--------------------
@13][ P.$.
www.alex-ps.com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 48
Пол: Мужской

Репутация: -  0  +


AlexPS
ты сам алгоритм перемножения знаешь?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






AlexPS
Что значит "не компилируется?" Чем пытался скомпилировать?

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Уникальный
**

Группа: Пользователи
Сообщений: 64
Пол: Мужской

Репутация: -  2  +


volvo
Цитата
AlexPS
Что значит "не компилируется?" Чем пытался скомпилировать?

:D Калькулятором может !
Run: calc c:\Unit1.pas :D :D :D


--------------------
Век живи, век учи С © by Jahnerus
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 34
Пол: Мужской

Репутация: -  -1  +


А че, калькулятором нельзя??? :o


--------------------
@13][ P.$.
www.alex-ps.com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






AlexPS
Так чем все-таки? Турбо Паскаль? Дельфи? FPC?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


AlexPS, присоединяюсь к вопросу: "Чем вы пробовали компилировать?"


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Новичок
*

Группа: Пользователи
Сообщений: 34
Пол: Мужской

Репутация: -  -1  +


Delphi 7


--------------------
@13][ P.$.
www.alex-ps.com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Уникальный
**

Группа: Пользователи
Сообщений: 64
Пол: Мужской

Репутация: -  2  +


Короче не компилиться только в одном случае !
Если компилить через TPC и без поддержки 8087!
На FPC всё и так замечательно, потому что FPC - гуд! :D


--------------------
Век живи, век учи С © by Jahnerus
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 34
Пол: Мужской

Репутация: -  -1  +


Так я ничего и не понял, что мне делать??? huh.gif


--------------------
@13][ P.$.
www.alex-ps.com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Гость






А по-моему эта процедура не подойдет для случая, например
3Х2 и 2Х5.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Гость






Guest
А по-моему, эта процедура писалась для случая 5Х3 на 3Х5. Общую процедуру ищите в ФАКе.
 К началу страницы 
+ Ответить 

Closed Topic Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 14.05.2024 21:18
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name