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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Qatralesa
Сообщений: n/a
#1

Класс матриц - C++

23.05.2009, 16:55. Просмотров 1447. Ответов 1
Метки нет (Все метки)

Нужно описать класс матриц, реализовать функции сложения, умножения, вычитания, сравнения матриц и проверки на диагональность (проект 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
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
///matrix.h///
class Matrix {
    int m;
    int n;
    int* mat;
 
public:
    Matrix ();
    Matrix (int , int);//Конструктор с параметрами
    ~Matrix();//Деструктор
    void Show();// Метод вывода на экран
    void Input(char*);//Метод ввода
    int& get(int i, int j) {
        return mat[i*m+j];
    }
    int rows(){
        return n;
    }
    int cols(){
        return m;
    }
        };
void sum(Matrix&a, Matrix&b, Matrix&c);
void mult(Matrix&a, Matrix&b, Matrix&c);
bool comp(Matrix&a, Matrix&b);
void sub(Matrix&a, Matrix&b, Matrix&c);
void multch(Matrix&a, Matrix&c);
////matrix.cpp///
Matrix::Matrix(){}
 
Matrix::Matrix(int a, int b)
{ 
    
    n=a;
    m=b;
    mat= new int [n*m];
 
    }
Matrix::~Matrix()
{
    delete [] mat;
}
void Matrix::Input(char* fname)
{   
    ifstream fin(fname, ios::in | ios::nocreate);
    if(!fin) {
        cout<< Rus("Файл не найден")<<endl;
    }
     fin>>n>>m;
    mat= new int [n*m];
 
   for  (int i=0; i<n*m; i++)
   
        fin>> mat[i];
 
}
 
void Matrix::Show()
{
    cout<<Rus("Результат операции:")<<endl;
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
            cout<<get(i,j)<<' ';
        cout<<endl;}
}
 
 
void sum(Matrix&a, Matrix&b, Matrix&c)
{ 
    int n=a.rows();
    int m=a.cols();
    
    for (int i=0; i<n; i++)
        for (int j=0; j<m; j++)
                    c.get(i,j)=a.get(i,j)+b.get(i,j);
        
    }
void mult(Matrix&a, Matrix&b, Matrix&c)
{
    int n=a.rows();
    int m=a.cols();
 
    for (int i=0; i<n; i++)
        for (int j=0; j<m; j++)
        {
        c.get(i,j)=0;
            for (int k=0; k<n; k++)
        
                c.get(i,j)+=a.get(i,k)*b.get(k,j);
        }
}
bool comp(Matrix&a, Matrix&b)
{
  int n=a.rows();
  int m=a.cols();
  int j;
 for (int i=0; i<n; i++)
  for (int j=0; j<m; j++)
    if(a.get(i,j)==b.get(i,j))
   {
      cout<<Rus("Матрицы равны")<<endl;
       return true;
   }
    else
  {
     cout<<Rus("Матрицы не равны")<<endl;   
     return false;
  }
    
}
 
////main.cpp///
int main
{
Matrix x;
x.Input("input.txt");
Matrix y;
y.Input ("xas.txt");
Matrix z(3, 3);
sum(x, y, z);
z.Show();
mult(x, y, z);
z.Show();
sub(x, y, z);
z.Show();
comp(x, y);
}

Заранее огромное спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2009, 16:55     Класс матриц
Посмотрите здесь:

Класс матриц - C++
Задание звучит так : разработать класс для работы с матрицами 2х2 . Прога написана , отлично работает. Осталось реализовать одну функцию...

Класс матриц - C++
Пытаюсь написать класс матриц.Никак не удаётся перегрузить оператор = . Выдаёт : ambiguous overload for 'operator=' in 'k = b' ...

Класс матриц - C++
Пишу класс для работы с матрицами . Не могу понять , почему не работают функции power и swap_rows (функции возвращают ту же матрицу без...

Класс матриц - C++
Подскажите, пожалуйста, как переделать метод ввода матрицы в обычную функцию вне класса, и как ее вызывать в main. class Matrix //...

Класс матриц - C++
есть рабочий класс матриц. Все работает отлично, но надо сделать функцию или перегрузить оператор &gt;&gt; для считывания матрицы из файла....

Доработать класс матриц - C++
Всем привет. Пытаюсь разработать класс матриц, чтобы перегрузить основные операции. Помогите доработать. #include &lt;iostream&gt; ...

Класс матриц с арифметическими операциями С++ - C++
Я создаю класс матриц с операциями сложения, умножения, вычитания матриц, умножения на константу, транспонирования на С++. Почему-то не...

Реализовать класс матриц, СРОЧНО! - C++
Помогите реализовать класс матриц, очень надо #ifndef MATRIX_H #define MATRIX_H 1 #include &lt;iostream&gt; class Matrix ...

Написать класс для сложения матриц - C++
Надо написать класс который будет складывать матрицы. Не могу грамотно закончить программу. Не знаю как передать результат в главную...

Класс Матриц ( исправьте Ошибки плз) - C++
У меня задание написать класс матриц с использованием перегруженых операторов при компиляции находит с десяток ошибок помогите...

Создать класс Matrix и функции умножения и сложения матриц - C++
Создайте класс Matrix на базе вектора vector&lt;vector&lt;int&gt;&gt;. Определите операторную функцию ostream&amp; operator&lt;&lt;(ostream&amp;, const Matrix&amp;) для...

Вылет программы без error-ов и warrning-ов. Класс матриц - C++
Здравствуйте. Никак не могу найти причину вылета ошибки моей программы, связанной с перегрузкой +. Помогите. #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dota
3 / 3 / 0
Регистрация: 20.09.2010
Сообщений: 100
18.04.2011, 19:49     Класс матриц #2
а все остальные функции работают ?
Yandex
Объявления
18.04.2011, 19:49     Класс матриц
Ответ Создать тему
Опции темы

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