![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Insomnia |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 49 Пол: Мужской Репутация: ![]() ![]() ![]() |
Условие и состоит в том что бы перемножить 2 квадратные матрицы
program ymnoz_matr_on_matr; запутался в функции (и процедуре). Идея в том что бы умножить 1 строку и 1 столбец матриц , а потом создать цикл обхода по двум матрицам и использовать вспомогательную функцию. |
![]() ![]() |
IUnknown |
![]()
Сообщение
#2
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Правда я никак не могу представить, функция у нас возвращает строку и столбец, которые мы в процедуре заполняем, пробегая по циклу матрицы С, верно? получается что result хранит большое выражение ( " A [RowA, 1] * B [1, ColB] + A [RowA, 2]* B [2, ColB] + A [RowA, 3] * B [3, ColB] ; для i = 1 " ) Нет. Функция возвращает число (оно и из названия понятно: скалярное произведение вектора A на вектор B) - результат умножения строки RowA матрицы A на столбец RowB матрицы B. Чтобы вычислить матрицу- результат, надо КАЖДУЮ строку A умножить на КАЖДЫЙ столбец B, чем и занимается сама процедура. Что называется, "разделяй и властвуй". Задача была разбита на подзадачи. Вместо того, чтобы делать три вложенных цикла, ограничились двумя, перебирающими все нужные комбинации векторов. И функцией, которая самостоятельно выполняет третий цикл, перемножая два конкретных вектора. |
![]() ![]() |
![]() |
Текстовая версия | 24.06.2025 22:43 |