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

Сложение и вычитание матриц. Перегрузка операторов. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Последовательность чисел http://www.cyberforum.ru/cpp-beginners/thread450237.html
Вводится последовательность целых чисел, 0 - конец последовательности. Определить, содержит ли последовательность хотя бы два числа, кратных 3, 5 и 7.
C++ Непонятка с указателями Как так что если указатель на int он покажет свой адрес а на char покажет символ свой. int * pointerInt = new int; char * pointerChar = new char; *int = 5; *char = "G"; cout << pointerInt <<... http://www.cyberforum.ru/cpp-beginners/thread450224.html
C++ задача на среднее арифметическое
почему то не выводит дробное значение среднего арифметического. например массив будет 1 5 4 1 1.... ср.ар. = 2.4 а он прога выведет 2. почему? где ошибка в коде? # include <iostream> using...
Выводится случайное значение переменной у при х=-3. Что делать? C++
Задание: Вычислить и вывести на экран таблицу функции y=f(x) в интервале с шагом h. Результаты представить в виде таблицы: х у _ _ _ _ ... ... Таблицу выровнять с помощью...
C++ Создание программу с использованием меню http://www.cyberforum.ru/cpp-beginners/thread450215.html
Создать программу с использованием меню. В данной программе должен быть организован выбор одной из трех программ: 1. Арифметические операции 2. Одномерный массив 3. Двух мерный массив Для входа...
C++ компоновщик бракует объектный файл Расширить язык и транслятор С0, реализовав в них следующие возможности: • Комментарий: (* в круглых скобках со звездочками *) /*************************************************************/ /* ... подробнее

Показать сообщение отдельно
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
22.02.2012, 09:04  [ТС]
Цитата Сообщение от dimcoder Посмотреть сообщение
Уберите нафиг функции vvod vivod и сделайте это через дружественные функции.
Так же посоветовал бы сделать матрицу динамической (если конечно знаете как).
Я еще только начинаю учится СИ++ И многое для меня новое. Если есть время и желание помочь, то подредактируйте программку на свой вкус))) Я заодно посмотрю что да как нужно правильно делать))

Добавлено через 1 минуту
ШКІПЕР, я ответил на свой вопрос не зная правильного ответа))

Добавлено через 2 минуты
Вот еще добавил функцию умножения:
посмотрите правильно)
C++
1
2
3
4
5
6
7
8
9
10
11
12
Matrix Matrix::operator*(const Matrix &n)
{
    Matrix result(*this);
 
    for (int i = 0; i < 3; i++)
     {
        for (int j = 0; j < 3; j++)
            result.aMas[i][j] *= n.aMas[i][j];
     }
 
    return result;
}
хотя по-моему так нельзя)

Добавлено через 5 минут
Цитата Сообщение от ШКІПЕР Посмотреть сообщение
Может быть. Вы не поставили конкретного задание - поэтому нет ответов.
Вот оно. Просто я его уже задавал на этом форуме, мне помогли но не совсем. Т.е. я почти ничего не понял.
найти кoличествo стрoк, кoличествo стoлбцoв, элeмeнты матрицы; мне нужно использовать метoды: вывoд матрицы и проверка: являeтся ли матрица симметричнoй (АТ = А) и пeрeгружeнные опeрации: слoжение, вычитание, деление, умнoжение матриц, умнoжение матрицы на числo.

Добавлено через 13 часов 56 минут
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include <conio.h>
#include <iostream>
using namespace std;
class Matrix
{
private:
        float aMas [3][3];
        float bMas [3][3];
        int chislo;
 
public:
    Matrix(){}
    void Vvod();
    void Vivod();
    void Na_4islo();
    Matrix operator+ (const Matrix&);
    Matrix operator- (const Matrix&);
    Matrix operator* (const Matrix&);
    Matrix operator/ (const Matrix&);
};
 
void Matrix::Vvod() 
{
        for(int i = 0;i<3;i++)
        {
         for(int j = 0;j<3;j++)
          {
           cin>>aMas[i][j];
           bMas[i][j]=aMas[i][j];//Г§Г*ïîìèГ*Г*Гѕ ГЅГ«-ГІГ» ïåðâîé Г¬Г*òðèöû         
          }
         cout<<endl;
        }         
}
 
void Matrix::Vivod() 
{
        for (int i = 0; i < 3; i++)
        {
          for (int j = 0; j < 3; j++)
          {
           cout<<aMas[i][j]<<" ";
          }
         cout<<endl;  
        }
}
 
void Matrix::Na_4islo() 
{
        int chislo;
        cout<<"Ââåäèòå ÷èñëî Г*Г* êîòîðîå õîòèòå ГіГ¬Г*îæèòü ïåðâóþ Г¬Г*òðèöó: ";
        cin>>chislo;
        for (int i = 0; i < 3; i++)
        {
          for (int j = 0; j < 3; j++)
          {
           bMas[i][j]=bMas[i][j]*chislo;//ïûòГ*ГѕГ±Гј ГЄГ*æäûé ГЅГ«-Г*ГІ ïåðâîé Г¬Г*òðèöû ГіГ¬Г*îæèòü Г*Г* ÷èñëî ââåäåГ*Г*îé Г± ГЄГ«Г*ГўГЁГ*òóðû
           cout<<bMas[i][j]<<" ";
          }
         cout<<endl;  
        }
}
 
Matrix Matrix::operator+(const Matrix &n)
{
    Matrix result(*this);
      for (int i = 0; i < 3; i++)
      {
        for (int j = 0; j < 3; j++)
        {
            result.aMas[i][j] += n.aMas[i][j];
        }
      }
    return result;
}
 
Matrix Matrix::operator-(const Matrix &n)
{
    Matrix result(*this);
 
    for (int i = 0; i < 3; i++)
     {
        for (int j = 0; j < 3; j++)
        {
            result.aMas[i][j] -= n.aMas[i][j];
        }
     }
    return result;
}
 
Matrix Matrix::operator*(const Matrix &n)
{
    Matrix result(*this);
 
    for (int i = 0; i < 3; i++)
     {
        for (int j = 0; j < 3; j++)
         {
            result.aMas[i][j] *= n.aMas[i][j];
         }
     }
    return result;
}
 
Matrix Matrix::operator/(const Matrix &n)
{
    Matrix result(*this);
 
    for (int i = 0; i < 3; i++)
     {
        for (int j = 0; j < 3; j++)
         {
            result.aMas[i][j] /= n.aMas[i][j];
         }
     }
    return result;
}
int main ()
{
    int chislo;
    Matrix m, m2,m3,m4,m5,m6,m7;
    cout << "Ââåäèòå ïåðâóþ: \n";
    m.Vvod();
    cout << "Âû ââåëè Г¬Г*òðèöó: \n";
    m.Vivod();
    cout << "Ââåäèòå âòîðóþ Г¬Г*òðèöó: \n";
    m2.Vvod();
    cout << "Âû ââåëè Г¬Г*òðèöó: \n";
    m2.Vivod();
    cout << "ÑóììГ* ïåðâîé ГЁ âòîðîé Г¬Г*òðèöû: \n";
    m3 = m + m2;
    m3.Vivod();
    cout << "ГђГ*Г§Г*îñòü Г¬Г*òðèö: \n";
    m4 = m - m2;
    m4.Vivod();
    cout << "ÏðîèçâåäåГ*ГЁГҐ Г¬Г*òðèö: \n";
    m5 = m * m2;
    m5.Vivod();
    cout << "ÄåëåГ*ГЁГҐ Г¬Г*òðèö: \n";
    m6 = m / m2;
    m6.Vivod();
    m7.Na_4islo();
    system("pause");
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru