hozer

[OOP]Lab2

Sep 23rd, 2014
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.41 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct matrix {
  6.     int n;
  7.     float **m;
  8.  
  9.     matrix() {}
  10.  
  11.     matrix (int an)
  12.     {
  13.         n = an;
  14.         init();
  15.     }
  16.  
  17.     void init()
  18.     {
  19.         m = new float*[n];
  20.         for (int i = 0; i < n; i++)
  21.         {
  22.             m[i] = new float[n];
  23.         }
  24.     }
  25.  
  26.     void input()
  27.     {
  28.         cout << "Input n: ";
  29.         cin >> n;
  30.         init();
  31.         cout << "Input matrix: " << endl;
  32.         for (int i = 0; i < n; i++)
  33.             for (int j = 0; j < n; j++)
  34.                 cin >> m[i][j];
  35.     }
  36.  
  37.     void print()
  38.     {
  39.         for (int i = 0; i < n; i++)
  40.         {
  41.             for (int j = 0; j < n; j++)
  42.                 cout << m[i][j] << " ";
  43.             cout << endl;
  44.         }
  45.     }
  46.  
  47.     matrix operator+(matrix a)
  48.     {
  49.         matrix rez = matrix(n);
  50.         for (int i = 0; i < n; i++){
  51.             for (int j = 0; j < n; j++) {
  52.                 rez.m[i][j] = m[i][j] + a.m[i][j];
  53.             }
  54.         }
  55.  
  56.         return rez;
  57.     }
  58.  
  59.     matrix operator-(matrix a)
  60.     {
  61.         matrix rez = matrix(n);
  62.         for (int i = 0; i < n; i++){
  63.             for (int j = 0; j < n; j++) {
  64.                 rez.m[i][j] = m[i][j] - a.m[i][j];
  65.             }
  66.         }
  67.  
  68.         return rez;
  69.     }
  70.  
  71.     matrix operator*(matrix a)
  72.     {
  73.         matrix multed = matrix(n);
  74.         for (int i = 0; i<n; i++){
  75.             for (int j = 0; j<n; j++){
  76.                 multed.m[i][j] = 0;
  77.                 for (int s = 0; s<n; s++){
  78.                     multed.m[i][j] = multed.m[i][j] + (m[i][s] * a.m[s][j]);
  79.                 }
  80.             }
  81.         }
  82.  
  83.         return multed;
  84.     }
  85. };
  86.  
  87. void main()
  88. {
  89.     matrix a, b, c, d;
  90.     a.input();
  91.     b.input();
  92.     c.input();
  93.  
  94.     d = a*b + c*a - a*c;
  95.     d.print();
  96.  
  97.     cin.ignore();
  98.     cin.get();
  99.  
  100. }
Advertisement
Add Comment
Please, Sign In to add comment