Advertisement
Voldemord

zad5/6New main

Jan 10th, 2020
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.77 KB | None | 0 0
  1. // main.cpp
  2. #include <iostream>
  3. #include <cstdlib>
  4. #include <ctime>
  5. #include <sstream>
  6. #include "matrix.h"
  7.  
  8. using namespace std;
  9.  
  10. std::ostream & operator<<( std::ostream & s, Matrix& m ){
  11.     std::string result;
  12.     result = "[";
  13.     for(int y = 0; y < m.getM(); y++){
  14.         for(int x = 0; x < m.getN(); x++){
  15.             std::ostringstream temp;
  16.             temp << m.matrix[y][x];;
  17.             std::string str = temp.str();
  18.             result = result + " " + str;
  19.         }
  20.         if(y != m.getM() - 1){
  21.             result += "\n";
  22.         }
  23.     }
  24.     result += " ]";
  25.     return s << result;
  26. }
  27.  
  28. std::istream& operator>>( std::istream& s, Matrix& m ){
  29.     for(int y = 0; y < m.getM(); y++){
  30.         for(int x = 0; x < m.getN(); x++){
  31.             s >> m.matrix[y][x];
  32.         }
  33.     }
  34.     return s;
  35. }
  36.  
  37.  
  38. int main(int argc, char *argv[]){
  39.  
  40.     // TABLICA NA BAZIE KTÓREJ UTWORZÊ MACIERZ
  41.     double **tablica = new double *[3];
  42.     for(int i=0;i<3;i++){
  43.         tablica[i] = new double [3];
  44.     }
  45.  
  46.     // WYPE£NIANIE ELEMENTÓW TABLICY POMOCNICZEJ NA BAZIE KTÓREJ UTWORZÊ MACIERZ
  47.     srand(time(NULL));
  48.     for(int i=0;i<3;i++){
  49.         for(int j=0;j<3;j++){
  50.             tablica[i][j] = (rand()%(1000-0+1)+0)/1000.0;
  51.         }
  52.     }
  53.  
  54.     Matrix *mat = new Matrix(tablica, 3, 3);
  55.     std::cout << "TEST:" << std::endl;
  56.     mat->printMatrix();
  57.     mat->randomDoubleMatrix();
  58.     mat->printMatrix();
  59.  
  60.     std::cout << "Third matrix" << std::endl;
  61.     Matrix m3(tablica, 3, 3);
  62.     m3.randomDoubleMatrix();
  63.     m3.printMatrix();
  64.  
  65.     std::cout << "Fourth matrix" << std::endl;
  66.     Matrix m4(tablica, 3, 3);
  67.     m4.randomDoubleMatrix();
  68.     m4.printMatrix();
  69.  
  70.  
  71.     std::cout << "PRZELADOWANIE OPERATOROW:" << std::endl;
  72.     std::cout << "OPERATOR =" << std::endl;
  73.     Matrix *m2 = mat;
  74.     m2->printMatrix();
  75.     std::cout << "OPERATOR -" << std::endl;
  76.     m2->operator-();
  77.     m2->printMatrix();
  78.     std::cout << "OPERATOR +" << std::endl;
  79.     m2->operator+();
  80.     m2->printMatrix();
  81.     std::cout << "OPERATOR + dwuargumentowy" << std::endl;
  82.     Matrix *added = &m2->operator+(m3);
  83.     added->printMatrix();
  84.     std::cout << "OPERATOR - dwuargumentowy" << std::endl;
  85.     Matrix *minused = &m2->operator-(m3);
  86.     minused->printMatrix();
  87.     std::cout << "OPERATOR * liczba" << std::endl;
  88.     m4.operator*(3.0);
  89.     m4.printMatrix();
  90.     std::cout << "OPERATOR * Macierz" << std::endl;
  91.     m4.operator*(m3);
  92.     m4.printMatrix();
  93.     std::cout << "OPERATOR += Macierz" << std::endl;
  94.     m4.operator+=(m3);
  95.     m4.printMatrix();
  96.     std::cout << "OPERATOR -= Macierz" << std::endl;
  97.     m4.operator-=(m3);
  98.     m4.printMatrix();
  99.     std::cout << "OPERATOR *= liczba" << std::endl;
  100.     m4.operator*=(1);
  101.  
  102.     m4.printMatrix();
  103.     std::cout << "OPERATOR == Macierz" << std::endl;
  104.     std::cout << "m4 == m4:  " << m4.operator==(m4) << std::endl;
  105.     std::cout << "m4 == m2:  " << m4.operator==(m3) << std::endl;
  106.     std::cout << "OPERATOR != Macierz" << std::endl;
  107.     std::cout << "m4 != m4:  " << m4.operator!=(m4) << std::endl;
  108.     std::cout << "m4 != m2:  " << m4.operator!=(m3) << std::endl;
  109.  
  110.     std::cout << "OPERATOR << Macierz" << std::endl;
  111.     std::cout << m4 << std::endl;
  112.     std::cout << "OPERATOR << Macierz" << std::endl;
  113.     std::cin  >> m4;
  114.     m4.printMatrix();
  115.     std::cout << "OPERATOR () Macierz" << std::endl;
  116.     std::cout << m4(1,1) << std::endl;
  117.     std::cout << "OPERATOR [] Macierz" << std::endl;
  118.     double *d = &m4[1];
  119.     for(int i = 0; i < 3; i++){
  120.         std::cout << d[i] << " ";
  121.     }
  122.     std::cout << std::endl;
  123.  
  124.     //mat + m2;
  125.     //m3->printMatrix();
  126.  
  127.  
  128.  
  129.  
  130.     // ZWALNIANIE PAMIÊCI
  131.     for(int i=0;i<3;i++){
  132.         delete []tablica[i];
  133.     }
  134.     delete []tablica;
  135.  
  136.     return 0;
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement