0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 4
1

Реализация матричных операций через классы

27.08.2013, 08:25. Показов 1110. Ответов 5
Метки нет (Все метки)

Доброго времени суток.
Нужно реализовать сложение двух матриц при помощи классов.
Т.е в коде программы будет класс с функцией рандома двух матриц, их сложения и вывода на экран (Матрицы 3х3 или можно самому вводить размер матриц)
Вот мой быдло-код. Я плохо разбираюсь в с++, поэтому чтобы сэкономить времени, взял от всех примеров по немногу

Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include "stdafx.h"
#include <conio.h>
#include <iostream> 
using namespace std;
class Matrix
{
private:
    int aMas[3][3];
 
public:
    Matrix(){}
    void Generate();
    void Print();
    Matrix operator+ (const Matrix&);
};
 
void Matrix::Generate() {
    for(int i=0; i<3;i++)
     for(int j=0; j<3; j++)
      {
          cout<<"Vvedite ["<<i<<"]"<<"["<<j<<"]"<<" element massiva: ";
          cin>>aMas[i][j];
      }
}
 
void Matrix::Print() {
    for (int i=0; i<3; i++)
    {
        for (int j=0; j<3; j++)
        cout<<aMas[i][j]<<" ";
        cout<<endl;
    }
}
 
Matrix Matrix::operator+(const Matrix &rhs)
{
    Matrix result(*this);
 
    for (size_t i=0; i<3; ++i)
        for (size_t j=0; j<3; ++j)
            result.aMas[i][j] += rhs.aMas[i][j];
 
    return result;
}
void main()
{
int aMas[3][3], rhs;
Matrix M;
M.Generate();
M.Print();
M.operator+(Matrix&);
}


Добавлено через 23 часа 18 минут
Теперь почему-то программа выдает fatal error
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.08.2013, 08:25
Ответы с готовыми решениями:

Программирование матричных операций
Разработать алгоритм и программу на языке С++ решения следующих взаимосвязанных задач: 1)...

Реализация односвязного списка через классы
Реализую односвязный список, но почему-то на перегрузке оператора индексирования вызывается ошибка...

Реализация списка через классы. Ошибка
Здравствуйте, никак не могу найти ошибку. Программа должна реализовать двунаправленный кольцевой...

программирование матричных операций
Разработать программу решения четырех взаимосвязанных задач частой работы: 1) расчета элементов...

5
2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
27.08.2013, 09:53 2
а в какой момент вылетает?
0
0 / 0 / 0
Регистрация: 26.08.2013
Сообщений: 10
27.08.2013, 09:59 3
C++
1
2
3
4
5
6
7
8
9
10
Matrix Matrix::operator+(const Matrix &rhs)
{
    Matrix result(*this);
 
    for (size_t i=0; i<3; i++)
        for (size_t j=0; j<3; j++)
            result.aMas[i][j] += rhs.aMas[i][j];
 
    return result;
}
Вот так будет работать. Префиксный ++ отличается от постфиксного.
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,905
27.08.2013, 10:04 4
В main косяк:
C++
1
M.operator+(Matrix&);
Нельзя так использовать.

Цитата Сообщение от abC_ Посмотреть сообщение
взял от всех примеров по немногу
И получился франкенштейн. Надо по порядку все.
Без ввода размерности:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void main()
{
int aMas[3][3], rhs;
Matrix M1, M2;
M1.Generate();   cout << endl;
M2.Generate();   cout << endl;
M1.Print();      cout << endl;
M2.Print();      cout << endl;
(M1+M2).Print();
system("PAUSE");
//M.operator+(&Matrix);
}
0
2644 / 2220 / 239
Регистрация: 03.07.2012
Сообщений: 8,064
Записей в блоге: 1
27.08.2013, 11:00 5
Цитата Сообщение от ВСарости Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
Matrix Matrix::operator+(const Matrix &rhs)
{
    Matrix result(*this);
 
    for (size_t i=0; i<3; i++)
        for (size_t j=0; j<3; j++)
            result.aMas[i][j] += rhs.aMas[i][j];
 
    return result;
}
Вот так будет работать. Префиксный ++ отличается от постфиксного.
И чем в этом примере работа префиксного ++ отличается от постфиксного?
0
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 4
01.09.2013, 18:00  [ТС] 6
Спасибо, ребят!
Кстати, вылетает после того, как ввожу размер матриц (На расчетах, скорее всего)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.09.2013, 18:00
Помогаю со студенческими работами здесь

Программирование матричных операций
Здравствуйте. Буквально через 3 дня сдавать лабораторную, а я понятия не имею что нужно делать. Сам...

Программирование матричных операций
Нужно решить следующие уравнения (пожалуйста): 1)a=(1,4*i+2,2)^2 + j/√(i+2*j) 2)x=(n Σ...

Программирование матричных операций
Разработать программу решения четырех взаимосвязанных задач частой работы: 1) расчета элементов...

Программирование матричных операций
1)aji=(2ij+4i)/i! 2)Xi=скалярное произведение второй строки на i-тый столбец 3)Элементы главной...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru