Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // main.cpp
- #include <iostream>
- #include <cstdlib>
- #include <ctime>
- #include <sstream>
- #include "matrix.h"
- using namespace std;
- std::ostream & operator<<( std::ostream & s, Matrix& m ){
- std::string result;
- result = "[";
- for(int y = 0; y < m.getM(); y++){
- for(int x = 0; x < m.getN(); x++){
- std::ostringstream temp;
- temp << m.matrix[y][x];;
- std::string str = temp.str();
- result = result + " " + str;
- }
- if(y != m.getM() - 1){
- result += "\n";
- }
- }
- result += " ]";
- return s << result;
- }
- std::istream& operator>>( std::istream& s, Matrix& m ){
- for(int y = 0; y < m.getM(); y++){
- for(int x = 0; x < m.getN(); x++){
- s >> m.matrix[y][x];
- }
- }
- return s;
- }
- int main(int argc, char *argv[]){
- // TABLICA NA BAZIE KTÓREJ UTWORZÊ MACIERZ
- double **tablica = new double *[3];
- for(int i=0;i<3;i++){
- tablica[i] = new double [3];
- }
- // WYPE£NIANIE ELEMENTÓW TABLICY POMOCNICZEJ NA BAZIE KTÓREJ UTWORZÊ MACIERZ
- srand(time(NULL));
- for(int i=0;i<3;i++){
- for(int j=0;j<3;j++){
- tablica[i][j] = (rand()%(1000-0+1)+0)/1000.0;
- }
- }
- Matrix *mat = new Matrix(tablica, 3, 3);
- std::cout << "TEST:" << std::endl;
- mat->printMatrix();
- mat->randomDoubleMatrix();
- mat->printMatrix();
- std::cout << "Third matrix" << std::endl;
- Matrix m3(tablica, 3, 3);
- m3.randomDoubleMatrix();
- m3.printMatrix();
- std::cout << "Fourth matrix" << std::endl;
- Matrix m4(tablica, 3, 3);
- m4.randomDoubleMatrix();
- m4.printMatrix();
- std::cout << "PRZELADOWANIE OPERATOROW:" << std::endl;
- std::cout << "OPERATOR =" << std::endl;
- Matrix *m2 = mat;
- m2->printMatrix();
- std::cout << "OPERATOR -" << std::endl;
- m2->operator-();
- m2->printMatrix();
- std::cout << "OPERATOR +" << std::endl;
- m2->operator+();
- m2->printMatrix();
- std::cout << "OPERATOR + dwuargumentowy" << std::endl;
- Matrix *added = &m2->operator+(m3);
- added->printMatrix();
- std::cout << "OPERATOR - dwuargumentowy" << std::endl;
- Matrix *minused = &m2->operator-(m3);
- minused->printMatrix();
- std::cout << "OPERATOR * liczba" << std::endl;
- m4.operator*(3.0);
- m4.printMatrix();
- std::cout << "OPERATOR * Macierz" << std::endl;
- m4.operator*(m3);
- m4.printMatrix();
- std::cout << "OPERATOR += Macierz" << std::endl;
- m4.operator+=(m3);
- m4.printMatrix();
- std::cout << "OPERATOR -= Macierz" << std::endl;
- m4.operator-=(m3);
- m4.printMatrix();
- std::cout << "OPERATOR *= liczba" << std::endl;
- m4.operator*=(1);
- m4.printMatrix();
- std::cout << "OPERATOR == Macierz" << std::endl;
- std::cout << "m4 == m4: " << m4.operator==(m4) << std::endl;
- std::cout << "m4 == m2: " << m4.operator==(m3) << std::endl;
- std::cout << "OPERATOR != Macierz" << std::endl;
- std::cout << "m4 != m4: " << m4.operator!=(m4) << std::endl;
- std::cout << "m4 != m2: " << m4.operator!=(m3) << std::endl;
- std::cout << "OPERATOR << Macierz" << std::endl;
- std::cout << m4 << std::endl;
- std::cout << "OPERATOR << Macierz" << std::endl;
- std::cin >> m4;
- m4.printMatrix();
- std::cout << "OPERATOR () Macierz" << std::endl;
- std::cout << m4(1,1) << std::endl;
- std::cout << "OPERATOR [] Macierz" << std::endl;
- double *d = &m4[1];
- for(int i = 0; i < 3; i++){
- std::cout << d[i] << " ";
- }
- std::cout << std::endl;
- //mat + m2;
- //m3->printMatrix();
- // ZWALNIANIE PAMIÊCI
- for(int i=0;i<3;i++){
- delete []tablica[i];
- }
- delete []tablica;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement