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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Виктория_
46 / 1 / 0
Регистрация: 12.12.2011
Сообщений: 27
#1

"Квадратная матрица" Matrix - C++

17.03.2012, 22:30. Просмотров 1111. Ответов 10
Метки нет (Все метки)

Определить класс "Квадратная матрица" - Matrix. Класс должен содержать несколько конструкторов, в том числе конструктор копирования. Реализовать методы для сложения, вычитания, умножения матриц, вычисления нормы матрицы. Перегрузить опрерации сложения, вычитания, умножения и присваивания для данного класса.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2012, 22:30     "Квадратная матрица" Matrix
Посмотрите здесь:

Warning C4700: использована неинициализированная локальная переменная "matrix" C++
C++ Определить класс «Квадратная матрица» – Matrix.
является ли введенная с клавиатуры квадратная матрица "магическим" квадратом C++
C++ Проверить, является ли введенная с клавиатуры квадратная матрица "магическим" квадратом
Проверить является ли квадратная матрица " магическим квадратом" C++
C++ Проверить, является ли введенная с клавиатуры квадратная матрица "Магическим квадратом"
Шаблоны С++. Класс "Квадратная матрица" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
5767 / 3416 / 255
Регистрация: 08.02.2010
Сообщений: 7,441
18.03.2012, 05:05     "Квадратная матрица" Matrix #2
Определить класс «Квадратная матрица» – Matrix.
-=ЮрА=-
Заблокирован
Автор FAQ
18.03.2012, 11:05     "Квадратная матрица" Matrix #3
Виктория_, по ссылке готовый код класса Матрица + как бонус уже код готового приожения с использованием данного класса
http://www.cyberforum.ru/faq/thread4...ml#post2472557
Виктория_
46 / 1 / 0
Регистрация: 12.12.2011
Сообщений: 27
18.03.2012, 14:17  [ТС]     "Квадратная матрица" Matrix #4
А есть более простой вариант кода Определить класс «Квадратная матрица» – Matrix.
Виктория_
46 / 1 / 0
Регистрация: 12.12.2011
Сообщений: 27
23.03.2012, 00:18  [ТС]     "Квадратная матрица" Matrix #5
Ауу, люди. Кто-нибудь из вас знает, как реализовать эту задачу без STL, напишите пожалуйста.
-=ЮрА=-
24.03.2012, 10:41
  #6

Не по теме:

Цитата Сообщение от Виктория_ Посмотреть сообщение
Ауу, люди. Кто-нибудь из вас знает, как реализовать эту задачу без STL, напишите пожалуйста.
- я вам ссылку привёл с рабочим кодом класса матрица на Си, класс "умеет" даже вычислять детерминант а вы кричите тут "помогите". Не помогают потому, что уже дали 2 исчерпывающие ссылки, а вам скорее всего просто лень в них поразбираться
Я даже угадаю, что в моём, что в Nameless One постах - увидели много кода и перая мысль : "Ооо сколько много, та не это не для меня"....А мысли не было, что класс матрица сам по себе требует определённого объёма???

Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
24.03.2012, 11:10     "Квадратная матрица" Matrix #7
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
#include <iostream>
using namespace std;
// ГЉГ«Г*Г±Г± Г¬Г*òðèöГ*
class Matrix
{
private:// ÑîáñòâåГ*Г*ûå ýëåìåГ*ГІГ»:
        int aMas [10][10];//âûäåëåГ*ГЁГї ГЇГ*ìÿòè ïîä Г¬Г*Г±Г±ГЁГў
        int bMas [10][10];
        int cMas [10][10];
        static int size; // Ïîðÿäîê Г¬Г*òðèöû
public:// ÎáùåäîñòóïГ*ûå ýëåìåГ*ГІГ»:
    Matrix(){}// ГЉГ®Г*ñòðóêòîð ГЇГ® óìîë÷Г*Г*ГЁГѕ
    void Vvod();
    void Vivod();
    void Na_4islo();
    Matrix operator+ (const Matrix&);// ÑëîæåГ*ГЁГҐ Г¬Г*òðèö
    Matrix operator- (const Matrix&); //Âû÷èòГ*Г*ГЁГҐ Г¬Г*òðèö
    Matrix operator* (const Matrix&);// ÏåðåìГ*îæåГ*ГЁГҐ Г¬Г*òðèö
};
int  Matrix::size = 3;//Г°Г*çìåð Г¬Г*òðèöû
void Matrix::Vvod() 
{
        for(int i = 0;i<size;i++)
        {
         for(int j = 0;j<size;j++)
          {
           cin>>aMas[i][j];         
          }
         cout<<endl;
        }         
}
 
void Matrix::Vivod() 
{
        for (int i = 0; i <size; i++)
        {
          for (int j = 0; j <size; j++)
          {
           cout<<aMas[i][j]<<" ";
          }
         cout<<endl;  
        }
}
 
void Matrix::Na_4islo() 
{
        int chislo;
        cout<<"Ââåäèòå Г*îâóþ Г¬Г*òðèöó: \n";
        for(int i = 0;i<size;i++)
        {
         for(int j = 0;j<size;j++)
          {
           cin>>cMas[i][j];         
          }
         cout<<endl;
        }
        cout<<"Ââåäèòå ÷èñëî Г*Г* êîòîðîå õîòèòå ГіГ¬Г*îæèòü ïåðâóþ Г¬Г*òðèöó: \n";
        cin>>chislo;
        cout << "ÏðîèçâåäåГ*ГЁГҐ Г¬Г*òðèöû Г*Г* ÷èñëî: \n";
        for (int i = 0; i <size; i++)
        {
          for (int j = 0; j <size; j++)
          {
           cMas[i][j]=cMas[i][j]*chislo;//ГЄГ*æäûé ГЅГ«-Г*ГІ ïåðâîé Г¬Г*òðèöû ГіГ¬Г*îæГ*Гѕ Г*Г* ÷èñëî ââåäåГ*Г*îé Г± ГЄГ«Г*ГўГЁГ*òóðû
           cout<<cMas[i][j]<<" ";
          }
         cout<<endl;  
        }
}
// ÏåðåãðóçêГ* îïåðГ*òîðГ* + 
Matrix Matrix::operator+(const Matrix &n)
{
    Matrix result(*this);
      for (int i = 0; i <size; i++)
      {
        for (int j = 0; j <size; j++)
        {
            result.aMas[i][j] = aMas[i][j] + n.aMas[i][j];
        }
      }
    return result;
}
// ÏåðåãðóçêГ* îïåðГ*òîðГ* -
Matrix Matrix::operator-(const Matrix &n)
{
    Matrix result(*this);
 
    for (int i = 0; i <size; i++)
     {
        for (int j = 0; j <size; j++)
        {
            result.aMas[i][j] = aMas[i][j] - n.aMas[i][j];
        }
     }
    return result;
}
// ÏåðåãðóçêГ* îïåðГ*òîðГ* *
Matrix Matrix::operator*(const Matrix &n)
{
    int sum;
    Matrix result(n);
    for (int i = 0; i <size; i++)
     {
        for (int j = 0; j <size; j++)
         {
            sum = 0;
            for(int k =0;k <size; k++)
            {
             sum+=aMas[i][k] * n.aMas[k][j];
             result.aMas[i][j]=sum;
            }
         }
     }
    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();
    m6.Na_4islo();
    system("pause");
}
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.03.2012, 11:27     "Квадратная матрица" Matrix #8
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- я вам ссылку привёл с рабочим кодом класса матрица на Си,
Шикарно. Уже в Си классы появились.
-=ЮрА=-
24.03.2012, 12:03
  #9

Не по теме:

go, замени класс на struct и убери конструктор

go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.03.2012, 12:07     "Квадратная матрица" Matrix #10
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
go, замени класс на struct и убери конструктор
Как будто это мне нужно. Я указал, чтобы новичка какого-нибудь Вы в заблуждение не ввели.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2012, 12:29     "Квадратная матрица" Matrix
Еще ссылки по теме:

Класс "Матрица", перегрузка оператора "+" C++
C++ Класс "Матрица". "Правило трёх"
C++ Композиция классов "Матрица" и "Вектор"
C++ Вычислить сумму и число положительных элементов матрицы, находящихся над главной диагональю (класс "Matrix")
C++ Реализовать шаблонный класс "Матрица" (шаблоны классов и функций)

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
24.03.2012, 12:29     "Квадратная матрица" Matrix
  #11

Не по теме:

Цитата Сообщение от go Посмотреть сообщение
Я указал, чтобы новичка какого-нибудь Вы в заблуждение не ввели.
- мне надо было создать код который с минимальными изменениями можно приспособить как в Си так и С++

Yandex
Объявления
24.03.2012, 12:29     "Квадратная матрица" Matrix
Ответ Создать тему
Опции темы

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