Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
lulu13
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 17
#1

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

21.05.2013, 11:53. Просмотров 413. Ответов 7
Метки нет (Все метки)

Всем привет.Помогите плиз найти ошибку в ф-ции.

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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2013, 11:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не правильно умножает матрицу 3x3 (C++):

Программа правильно сохраняет, но не правильно считывает матрицу из файла - C++
Программа правильно сохраняет, но не правильно считывает матрицу из файла ... При считывание выводит на экран какие-то непонятные...

Правильно ли считываю матрицу? - C++
Ребят, правильно ли я считываю матрицу из файла? И еще: чтобы узнать размер матрицы, мне обязательно нужно открыть файл и, посмотрев ее...

Как правильно вывести матрицу - C++
Как правильно ввести матрицу что бы, было видно что это матрица вот например: 0156 0364 9870 2348

Умножает число длинное на короткое - C++
Большое число должно хранится в массиве, а маленькое integer. Ответ должен хранится в массиве. Помогите изменить программу чтоб ответ...

Указатели и матрицы: как правильно передать матрицу в функцию? - C++
Здравствуйте! Во время того, как переписывал программу функциями возникла проблема, а именно: массив просто так не передается в функцию. ...

Написать программу, которая умножает один массив на другой - C++
Написать программу, которая умножает один массив на другой, размерность массивов одинаковая. Ввод елементов массива происходит с клавиатуры.

7
Ilot
Модератор
Эксперт С++
1825 / 1183 / 232
Регистрация: 16.05.2013
Сообщений: 3,119
Записей в блоге: 5
Завершенные тесты: 1
21.05.2013, 11:57 #2
Я пока мало знаком с указателями и перегрузкой операторов, но вопрос. Почему стоит оператор += вместо = в этой строчке?
C++
1
  Rez.mas[i][j] += this->mas[i][m]*k.mas[m][j];
0
castaway
Эксперт С++
4919 / 3027 / 372
Регистрация: 10.11.2010
Сообщений: 11,085
Записей в блоге: 10
Завершенные тесты: 1
21.05.2013, 18:22 #3
Между 7-й и 8-й строками добавь: Rez.mas[i][j]=0;
0
lulu13
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 17
21.05.2013, 18:33  [ТС] #4
Поставила,в строчке
C++
1
Rez.mas[i][j] += this->mas[i][m]*k.mas[m][j];
пишет идентификатор i и j не определен.
0
castaway
Эксперт С++
4919 / 3027 / 372
Регистрация: 10.11.2010
Сообщений: 11,085
Записей в блоге: 10
Завершенные тесты: 1
21.05.2013, 18:34 #5
Что поставила и куда? Покажи целиком что получилось.
0
lulu13
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 17
21.05.2013, 18:36  [ТС] #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;
}
0
castaway
Эксперт С++
4919 / 3027 / 372
Регистрация: 10.11.2010
Сообщений: 11,085
Записей в блоге: 10
Завершенные тесты: 1
21.05.2013, 18:38 #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];
    }
}
0
lulu13
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 17
21.05.2013, 18:43  [ТС] #8
Спасибо большое,все работает очень благодарна
0
21.05.2013, 18:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2013, 18:43
Привет! Вот еще темы с ответами:

Написать программу, которая умножает матрицы.... Курсач горит!!!!! - C++
Кто это знает, и может помочь в написании слейдущей программы, помогите пожайлуста: Написать программу, которая умножает матрицы,...

Матрица [3x3] через шаблоны - C++
Переставить все элементы k-ой строки (между собой) и все элементы побочной диагонали. Размер матрицы Заранее спасибо

Подскажите правильно, или нет. Ввести с клавиатуры вещественную матрицу размерностью 5х5, определить - C++
Ввести с клавиатуры вещественную матрицу размерностью 5х5, определить: 1) Сумма отрицательных элементов в парных строках; 2)...

Создать калькулятор, который (умножает, делит суммирует, отнимает и находит остаток) оперирует двумя числами - C++
Доброго времени суток.Учусь программировать по книге Бьерна с++.Нужно создать калькулятор ,который (умножает,делит суммирует,отнимает и...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.