0 / 0 / 0
Регистрация: 31.12.2010
Сообщений: 21
|
|
1 | |
Перемножение матриц30.03.2011, 21:02. Показов 10940. Ответов 11
Метки нет Все метки)
(
Не знаю как написать код с циклом так, чтобы 2 матрицы перемножались. Кто нибудь знает как это сделать? Я написал банальный код как по формуле, но не знаю как бы сократить число строк при помощи циклов.
0
|
|
30.03.2011, 21:02 | |
Ответы с готовыми решениями:
11
Перемножение матриц Перемножение трехмерных матриц Перемножение квадратичных матриц |
12 / 11 / 3
Регистрация: 12.10.2010
Сообщений: 268
|
||||||
30.03.2011, 21:16 | 2 | |||||
Перемножение матрицы саму на себя :
1
|
85 / 69 / 12
Регистрация: 17.02.2011
Сообщений: 138
|
||||||
30.03.2011, 21:43 | 3 | |||||
Ну можно так попробовать, если a имеет размерность m*k, b имеет размерность k*n то элементы матрицы с. равной их произведению, можно определить так
0
|
0 / 0 / 0
Регистрация: 31.12.2010
Сообщений: 21
|
||||||
31.03.2011, 18:02 [ТС] | 4 | |||||
Добавлено через 17 секунд
0
|
85 / 69 / 12
Регистрация: 17.02.2011
Сообщений: 138
|
|||||||||||
31.03.2011, 18:44 | 5 | ||||||||||
Да, есть ошибка. Разведите отдельно чтение матриц из грида и перемножение. Просто при перемножении процедура запрашивает те переменные, значение которых еще не получено из Стрингрид. Ну если желаете, что можно так.
Можно еще и так
0
|
0 / 0 / 0
Регистрация: 31.12.2010
Сообщений: 21
|
|
01.04.2011, 06:04 [ТС] | 6 |
Сижу думаю...Первый вариант верен, он хотя бы вводит ответ в матрицу, а вот второй пример, не вводит в матрицу и выдаёт ошибку - "Project Project1.exe raised exception class EConvert Error with message ''' is not a valid integer value'. Process stopped. Use step or run to continue"(такая ошибка у меня тоже в моём примере).
0
|
85 / 69 / 12
Регистрация: 17.02.2011
Сообщений: 138
|
|
01.04.2011, 06:21 | 7 |
Расскажите какова размерность таблиц в вашем примере, выложите весь код и укажите в какой строке кода компилятор указывает на ошибку.
0
|
0 / 0 / 0
Регистрация: 31.12.2010
Сообщений: 21
|
|
01.04.2011, 08:31 [ТС] | 8 |
размер таблиц к моём примере: a[3,3] and b[2,3];
Я вписал в array от 0 до 4, а надо было до 2. Теперь показывает то что надо, но иногда в таблце со столбцом c[3] выдаёт числа 4-х значные, но после нажатия 2-3-х раз, всё приходит в норму, потом итерация идёт.
0
|
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
01.04.2011, 08:48 | 9 |
Вам разве не говорили что число столбцов первой матрицы должно быть равно числу строк второй матрицы? Т.е. умножать можно только матрицы типа a[mxn]*b[nxk],
получится матрица размера c[mxk].
0
|
85 / 69 / 12
Регистрация: 17.02.2011
Сообщений: 138
|
||||||
01.04.2011, 09:04 | 10 | |||||
Можно сделать так, чтоб размерность массивов определялась по размерности гридов. Для этого массивы нужно задать как динамические. Ну например так.
0
|
0 / 0 / 0
Регистрация: 31.12.2010
Сообщений: 21
|
|
01.04.2011, 18:46 [ТС] | 11 |
Спасибо. Получилось тоже, но вашу ошибку(чтобы выдало мне) так и не увидел.
0
|
85 / 69 / 12
Регистрация: 17.02.2011
Сообщений: 138
|
|
01.04.2011, 20:16 | 12 |
я рада
0
|
01.04.2011, 20:16 | |
01.04.2011, 20:16 | |
Помогаю со студенческими работами здесь
12
Перемножение сцепленных матриц где ошибка?перемножение матриц Перемножение матриц (обработка двумерных массивов)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |