Форум программистов, компьютерный форум CyberForum.ru

Не правильно умножает матрицу 3x3 - C++

Восстановить пароль Регистрация
 
lulu13
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 17
21.05.2013, 11:53     Не правильно умножает матрицу 3x3 #1
Всем привет.Помогите плиз найти ошибку в ф-ции.

C++
1
2
3
4
5
6
7
8
9
10
11
12
MATR MATR::operator * (const MATR &k)
{
    MATR Rez;
    
    std::cout << "Умножение матрицы" << std::endl;
    for(int i = 0; i < 3 ; i++)
        for(int j = 0 ; j < 3; j++)
            for (int m = 0 ; m < 3; m++)
                Rez.mas[i][j] += this->mas[i][m]*k.mas[m][j];
 
    return Rez;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
21.05.2013, 11:57     Не правильно умножает матрицу 3x3 #2
Я пока мало знаком с указателями и перегрузкой операторов, но вопрос. Почему стоит оператор += вместо = в этой строчке?
C++
1
  Rez.mas[i][j] += this->mas[i][m]*k.mas[m][j];
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,021
Записей в блоге: 10
Завершенные тесты: 1
21.05.2013, 18:22     Не правильно умножает матрицу 3x3 #3
Между 7-й и 8-й строками добавь: Rez.mas[i][j]=0;
lulu13
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 17
21.05.2013, 18:33  [ТС]     Не правильно умножает матрицу 3x3 #4
Поставила,в строчке
C++
1
Rez.mas[i][j] += this->mas[i][m]*k.mas[m][j];
пишет идентификатор i и j не определен.
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,021
Записей в блоге: 10
Завершенные тесты: 1
21.05.2013, 18:34     Не правильно умножает матрицу 3x3 #5
Что поставила и куда? Покажи целиком что получилось.
lulu13
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 17
21.05.2013, 18:36  [ТС]     Не правильно умножает матрицу 3x3 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
MATR MATR::operator * (const MATR &k)
{
    MATR Rez;
    
    std::cout << "Умножение матрицы" << std::endl;
    for(int i = 0; i<3 ; i++)
        for(int j = 0 ; j < 3; j++)
            Rez.mas[i][j]=0; // сюда вставила
            for (int m = 0 ; m< 3; m++)
                Rez.mas[i][j] += this->mas[i][m]*k.mas[m][j]; // тут выбивает ошибку
 
    return Rez;
}
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,021
Записей в блоге: 10
Завершенные тесты: 1
21.05.2013, 18:38     Не правильно умножает матрицу 3x3 #7
Тут нужны фигурные скобки чтобы указать тело цикла.
C++
1
2
3
4
5
6
7
for(int i = 0; i<3 ; i++) {
    for(int j = 0 ; j < 3; j++) {
        Rez.mas[i][j]=0;
        for (int m = 0 ; m< 3; m++)
            Rez.mas[i][j] += this->mas[i][m]*k.mas[m][j];
    }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2013, 18:43     Не правильно умножает матрицу 3x3
Еще ссылки по теме:

Создать калькулятор, который (умножает, делит суммирует, отнимает и находит остаток) оперирует двумя числами C++
Программа правильно сохраняет, но не правильно считывает матрицу из файла C++
Умножает число длинное на короткое C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
lulu13
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 17
21.05.2013, 18:43  [ТС]     Не правильно умножает матрицу 3x3 #8
Спасибо большое,все работает очень благодарна
Yandex
Объявления
21.05.2013, 18:43     Не правильно умножает матрицу 3x3
Ответ Создать тему
Опции темы

Текущее время: 17:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru