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

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

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

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


Новичок
*

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

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


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


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


Гость






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


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

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


Новичок
*

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

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


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


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


Новичок
*

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

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


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


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


Новичок
*

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

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


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


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


Гость






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

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


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

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

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


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

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


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


Новичок
*

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

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


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


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


Гость






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


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

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

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


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


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


Новичок
*

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

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


Delphi 7


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


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

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

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


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


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


Новичок
*

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

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


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


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


Гость






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


Гость






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

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

 



- Текстовая версия 20.06.2025 19:05
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"