C++ - Проблема с решением задачки
Как написать код вычисления определителя матрицы 3 порядка?
Пожалуйста помогите!
Ответы (1 шт):
Автор решения: dzhyhalyuk
→ Ссылка
#include <iostream>
using namespace std;
class matrix2x2 {
public:
int a1,a2,a3,a4;
matrix2x2(int A1,int A2,int A3,int A4): a1(A1), a2(A2), a3(A3), a4(A4) {}
void print() const {
cout << " " << a1 << " " << a2 << "\n"
<< " " << a3 << " " << a4 << "\n";
}
};
int det2x2(matrix2x2 m) {
return (m.a1*m.a4)-(m.a2*m.a3);
}
class matrix3x3 {
public:
int a1,a2,a3,a4,a5,a6,a7,a8,a9;
matrix3x3(int A1,int A2,int A3,int A4,int A5,int A6,int A7,int A8,int A9) :
a1(A1),a2(A2),a3(A3),a4(A4),a5(A5),a6(A6),a7(A7),a8(A8),a9(A9) {}
void print() const {
cout << " " << a1 << " " << a2 << " " << a3 << "\n"
<< " " << a4 << " " << a5 << " " << a6 << "\n"
<< " " << a7 << " " << a8 << " " << a9 << "\n";
}
};
int det3x3(matrix3x3 m) {
return ((m.a1*m.a5*m.a9)+(m.a2*m.a6*m.a7)+(m.a3*m.a4*m.a8))- ((m.a3*m.a5*m.a7)+(m.a1*m.a6*m.a8)+(m.a2*m.a4*m.a9));
}
int main() {
matrix2x2 a(1,2,3,4); a.print();
cout << "det(a) |2x2| = " << det2x2(a) << endl;
matrix3x3 b(1,2,3,4,5,6,7,8,9); b.print();
cout << "det(b) |3x3| = " << det3x3(b) << endl;
getchar();
}