From 258e1b92ebbfdebefabc120969ab87c3d8b75c3d Mon Sep 17 00:00:00 2001 From: Patrick Simianer Date: Sun, 15 Jun 2014 03:50:12 +0200 Subject: old c,cc examples --- c,cc/matrix.cc | 210 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 c,cc/matrix.cc (limited to 'c,cc/matrix.cc') diff --git a/c,cc/matrix.cc b/c,cc/matrix.cc new file mode 100644 index 0000000..9d1a1c0 --- /dev/null +++ b/c,cc/matrix.cc @@ -0,0 +1,210 @@ +#include +#include + +using namespace std; + + +class MyMatrix +{ + public: + MyMatrix(int dimension); + MyMatrix(int rows, int columns); + ~MyMatrix(); + + void print(); + int get_rows(); + int get_columns(); + + double get_element(int row, int column); + void set_element(int row, int column, double value); + + MyMatrix operator + (MyMatrix A); + MyMatrix operator * (MyMatrix A); + void operator = (MyMatrix A); + + + private: + double* m; + int row_d; + int col_d; + int d; +}; + +MyMatrix::MyMatrix(int dimension) +{ + row_d = dimension; + col_d = dimension; + d = dimension*dimension; + m = new double[d]; + + unsigned int k=0; + for(unsigned int i=0; i0) { + m[((row-1)*col_d)+(column-1)] = value; + } +} + + +MyMatrix +MyMatrix::operator + (MyMatrix A) +{ + MyMatrix* res = new MyMatrix(row_d, col_d); + + unsigned int k=0; + for(unsigned int i=0; im[k] = m[k]+A.get_element(i+1, j+1); + k++; + } + } + + return *res; +} + +MyMatrix MyMatrix::operator * (MyMatrix A) +{ + MyMatrix* res = new MyMatrix(row_d, col_d); + + unsigned int k=0; + for(unsigned int i=0; im[k] = m[k]*A.get_element(i+1, j+1); + k++; + } + } + + return *res; +} + +void MyMatrix::operator = (MyMatrix A) +{ + unsigned int k=0; + for(unsigned int i=0; iprint(); + + cout << " rows: " << m->get_rows() << ", "; + cout << "columns: " << m->get_columns() << endl; + + delete m; + + + cout << endl << "2x5 matrix:" << endl; + MyMatrix n(2,5); + n.print(); + + cout << " rows: " << n.get_rows() << ", "; + cout << "columns: " << n.get_columns() << endl; + + cout << "(1,3) = " << n.get_element(1,3) << endl; + + cout << "last: (2,5) = " << n.get_element(2,5) << endl; + + cout << "second to last element = 100: " << endl; + n.set_element(2, 4, 100); + n.print(); + + cout << endl << "addition:" << endl; + cout << "matrix 1:" << endl; + MyMatrix* a1 = new MyMatrix(3,3); + a1->print(); + cout << "matrix 2:" << endl; + MyMatrix* a2 = new MyMatrix(3,3); + a2->print(); + cout << "result:" << endl; + MyMatrix* e1 = new MyMatrix(3,3); + *e1 = *a1+*a2; + e1->print(); + delete e1; + + cout << endl << "multiplication" << endl; + cout << "matrix 1:" << endl; + MyMatrix* m1 = new MyMatrix(3,3); + a1->print(); + cout << "matrix 2:" << endl; + MyMatrix* m2 = new MyMatrix(3,3); + m2->print(); + cout << "result:" << endl; + MyMatrix* e2 = new MyMatrix(3,3); + *e2 = *m1 * *m2; + e2->print(); + delete e2; + + return 0; +} + -- cgit v1.2.3