Умножение матриц

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Sand_00
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 18.12.2006 (Пн) 20:34

Умножение матриц

Сообщение Sand_00 » 18.12.2006 (Пн) 20:53

Подскажите, пожалуюста, как можно умножить три матрицы размерности n, и вывести результат на экран в виде матрицы

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 18.12.2006 (Пн) 21:18

"Что, студент, сессия? :twisted:" (c) анек
Изображение

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 18.12.2006 (Пн) 21:32

Хм... Воде в книжках это излагается в виде вполне сносного алгоритма... Что мешает его воплотить? А так - делаешь табличку NxN, кнопочку умножить и равно - чем не в виде матрицы получится?

Sand_00
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 18.12.2006 (Пн) 20:34

Сообщение Sand_00 » 18.12.2006 (Пн) 22:38

мне вот и интересно как эту табличку делать :)

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 19.12.2006 (Вт) 8:03

нды... так в чем вопрос то? Если проблема в процессе умножения, то на ваше студенческое щастье есть Кирпичи, а ежели это проблема отображения матрицы на экране, то классический вопрос: "Какие попытки были сделаны для воплощения желаемого и сто не получилось?"
Весь мир матрица, а мы в нем потоки байтов!

Sand_00
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 18.12.2006 (Пн) 20:34

Сообщение Sand_00 » 19.12.2006 (Вт) 9:40

Проблема в выводе результата в виде таблицы... Попытался вывести Print'ом ничего не получилось, вывелся только один столбец матрицы.Как можно организовать красивый вывод?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 19.12.2006 (Вт) 9:44

Куда выводим то?
Показывай код, которым выводил
Весь мир матрица, а мы в нем потоки байтов!

Sand_00
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 18.12.2006 (Пн) 20:34

Сообщение Sand_00 » 19.12.2006 (Вт) 10:19

эээ...
For i=1 to n
Print Res(i)
next
на паскале за 10 минут сделал... а тут чето немогу... :(

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 19.12.2006 (Вт) 10:23

Если матрица двумерная, то и цикл вывода должен быть двойной...
Изображение

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 19.12.2006 (Вт) 10:24

Sand_00 писал(а):эээ...
For i=1 to n
Print Res(i)
next
на паскале за 10 минут сделал... а тут чето немогу... :(


Матрица она двумерная, так что индексов то два должно быть... Твой код по идее вообще должен для матрицы ошибку вызывать
Весь мир матрица, а мы в нем потоки байтов!

_ae_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 165
Зарегистрирован: 08.10.2006 (Вс) 14:37

Сообщение _ae_ » 19.12.2006 (Вт) 10:26

на паскале за 10 минут сделал... а тут чето немогу...
Честно говоря, судя по этому коду верится с трудом.

Sand_00
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 18.12.2006 (Пн) 20:34

Сообщение Sand_00 » 19.12.2006 (Вт) 10:38

Матрица - двумерный массив, а в коде было res(i,i).... нужно 2-ной цикл делать?
For i=1 to n
For c=1 to n
Print Res(i,c)
next
next
(???)

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 19.12.2006 (Вт) 12:01

Прально! тока не забывай новую строку начинать после вывода содержимого строки
Весь мир матрица, а мы в нем потоки байтов!

AntonGV
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 24.05.2006 (Ср) 12:10
Откуда: г. Пермь

Сообщение AntonGV » 19.12.2006 (Вт) 12:44

Выводи в TextBox.
Код: Выделить всё
For i = 1 To n
  For c = 1 To n
    Text1 = Text1 + Str(res(i, c))
  Next
  Text1 = Text1 + vbCrLf
Next

У Text1 свойство MultiLine=true
Если долго мучиться, что-нибудь получится

Sand_00
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 18.12.2006 (Пн) 20:34

Сообщение Sand_00 » 19.12.2006 (Вт) 23:30

теперь все работaет, благодарю :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 51

    TopList