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

Написать методы, позволяющие вычислить след матрицы, детерминант, транспонировать, обратить матрицу - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В каждой строке матрицы элемент, лежащий на главной диагонали, заменить суммой ранее расположению элементов http://www.cyberforum.ru/cpp-beginners/thread1127822.html
в каждой строке матрицы F(k,k) элемент ,лежащий на главной диагонали, если это простое число заменить суммой ранее расположению элементов
C++ Удалить из массива числа, которые являются полным квадратом и имеют нечетную сумму цифр Помогите пожалуйста, очень нужно! Разработать программу на языке программирования С++. Дан массив из N целых чисел, где N<=16, каждое число в диапазоне от –32000 до 32000. Удалить из массива числа, которые являются полным квадратом и имеют нечетную сумму цифр. Примечание: Массив перед обработкой и после обработки распечатать в виде http://www.cyberforum.ru/cpp-beginners/thread1127821.html
C++ Вставить после каждого непростого числа его наибольший делитель
Дан массив из N целых чисел, где N<=16, каждое число в диапазоне от –32000 до 32000. Вставить после каждого непростого числа его наибольший делитель. Использовать функции.1 Примечание: • Массив перед обработкой и после обработки распечатать в виде строки чисел. • Массив может быть введен в диалоговом режиме, либо задан списком констант. помогите пожалуйста
Вывод структуры в файл. Исправить ошибки в коде C++
Здравствуйте. Пишу программу с структурой и вводом в файл. Выдает ошибку что не определены переменные: v, s, t, at. Помогите, пожалуйста, исправить эту ошибку. Эти данные вводятся с клавиатуры. #include<stdio.h> #include<conio.h> #include<string.h> struct seller { char FIO; float t, at;
C++ Конструктор и деструктор анонимного класса http://www.cyberforum.ru/cpp-beginners/thread1127776.html
Здравствуйте. Есть ли в С++ такая возможность? Очень нужна именно такая реализация класса, но если это невозможно, буду думать.
C++ Третий массив заполнить поэлементным сложением массивов с первого и второго Привет всем. Никак не получается у меня сложить 2 объекта. То есть мне нужно заполнить 2 массива ( каждый хранится в отдельном объекте), а в 3 массив ( который в третьем объекте) заполнить поэлементным сложением массивов с первого и второго объекта. #include <iostream> using namespace std; class my { private: unsigned int m=5; unsigned int n=5; unsigned int h=m+n; unsigned... подробнее

Показать сообщение отдельно
firefox123
0 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 39
23.03.2014, 22:34     Написать методы, позволяющие вычислить след матрицы, детерминант, транспонировать, обратить матрицу
Нужно написать "Матрица". Перегрузить операторы сложения, вычитания, умножения.
Написать методы, позволяющие вычислить след матрицы, детерминант, транспонировать, обратить матрицу.

Вот что получилось пока. Почему не работает множественное присваивание c = a = a; и c = a * b;
Помогите исправить ошибки! Проблемные строки я отметил ниже.


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
#include <iostream>
 
class matrix {
    private:
            
    int nrows_;
    int ncols_;
    double *mini_;
          
    public:
 
    matrix(int r = 2, int c = 2) { 
        nrows_ = r;
        ncols_ = c;
        mini_  = new double[r * c];
        for(int i = 0; i < nrows_; i++) 
        for(int j = 0; j < ncols_; j++)
                mini_[i * ncols_ + j] = 0;
        
    }    
    
    double operator()(int r, int c){  
        return mini_[r * ncols_ + c];
    }
   
    void getall(){ 
        for(int i = 0; i < nrows_; i++) {
            for(int j = 0; j < ncols_; j++)
                    std::cout << mini_[i * ncols_ + j] << " ";
            std::cout << std::endl;
        }
    }
    
    void put(int r, int c, double d){
        mini_[r * ncols_ + c] = d;        
    }
    
    void putall(){  
        for(int i = 0; i < nrows_; i++) 
        for(int j = 0; j < ncols_; j++)
                std::cin >> mini_[i * ncols_ + j];     
    }
    
    matrix(matrix &mc) {  
        nrows_ = mc.rget();
        ncols_ = mc.cget();
        mini_ = new double[nrows_ * ncols_];
        for(int i = 0; i < nrows_; i++)
        for(int j = 0; j < ncols_; j++)
                mini_[i * ncols_ + j] = mc(i, j); 
    }
 
 
    matrix operator=(matrix &mc){  
        if(this != &mc) {
                delete [] mini_;
                nrows_ = mc.rget();
                ncols_ = mc.cget();
                mini_ = new double [nrows_ * ncols_];
                for(int i = 0; i < nrows_; i++)
                for(int j = 0; j < ncols_; j++)
                        mini_[i * ncols_ + j] = mc(i, j); 
        }
        return *this;
    }
    
    double trace(){ 
        double t = 0;
        for(int i = 0; i < nrows_; i++){
        for(int j = 0; j < ncols_; j++)
                if (i == j) t += mini_[i * ncols_ + j];}
        return t;
    }
    matrix operator+=(matrix &mc){ 
        for(int i = 0; i < nrows_; i++)
        for(int j = 0; j < ncols_; j++)
                mini_[i * ncols_ + j] += mc(i, j); 
        return *this;
    }
    matrix operator-=(matrix &mc){ 
        for(int i = 0; i < nrows_; i++)
        for(int j = 0; j < ncols_; j++)
                mini_[i * ncols_ + j] -= mc(i, j); 
        return *this;
    }
    matrix operator * (matrix &b){  
        int M = this->nrows_;
        int N = this->ncols_;
        int P = b.ncols_;
        matrix m(M, P);
        for(int i = 0; i < M; i++)
        for(int l = 0; l < P; l++)
        for(int j = 0; j < N; j++)
                m.put(i, l, m(i, l) + mini_[i * ncols_ + j] * b(j, l));
        return m;
    }
 
 
 
   int rget() { 
        return nrows_;
   }
   
   int cget() { 
        return ncols_;
   }
   
   ~matrix() {  
        delete [] mini_;
   }
   
};
 
int main() {
    matrix a(3, 2);
    a.putall();
    std::cout << std::endl;
    matrix b(2, 3);
    b.putall();
    std::cout << std::endl;
    matrix c(3, 2);
    c = a = a;   // НЕ КОМПИЛИРУЕТСЯ
    c = a * b;   // НЕ КОМПИЛИРУЕТСЯ
    
    system("pause");
    return 0;
}
Добавлено через 44 минуты
Помогите, пожалуйста!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru