Advertisement
Sailein

OMP3

Oct 25th, 2018
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.87 KB | None | 0 0
  1. #include <iostream>
  2. #include<string>
  3. using namespace std;
  4. class Array
  5. {
  6. private:
  7.     int m_size; // размер массива
  8.     int* content; // указатель на 1 элемент
  9. public:
  10.     Array (): m_size(0), content(nullptr) {}
  11.     Array (int size): m_size(size), content(new int[size]) {} //конструктор
  12.     ~ Array() // деструктор
  13.     {
  14.         delete[] content;
  15.     }
  16.     int& operator[](int i)
  17.     {
  18.         return content[i];
  19.     }
  20.     void print()
  21.     {
  22.         for(int i = 0; i < size(); i++)
  23.         {
  24.             cout << content[i] << ", ";
  25.         }
  26.         cout << endl;
  27.     }
  28.     void printPadded ()
  29.     {
  30.         for (int i = 0; i < size(); i = i + 4)
  31.         {
  32.             for (int j = 0; j < 4; j++)
  33.             {
  34.                 cout << content[i + j] << " ";
  35.             }
  36.             cout << endl;
  37.         }
  38.     }
  39.     void input ()
  40.     {
  41.         for (int i = 0; i < size(); i++)
  42.         {
  43.             cin >> content[i];
  44.         }
  45.     }
  46.     int size () const //getter размера
  47.     {
  48.         return m_size;
  49.     }
  50.     void generate () // генератор элементов
  51.     {
  52.         for(int i = 0; i < size(); i++)
  53.         {
  54.             content[i] = rand() % 101 + (-100);
  55.         }
  56.     }
  57.     void decartMult (Array& A, Array& B, Array& C, Array& D)
  58.     {
  59.         for (int a = 0; a < A.size(); a++){
  60.             for (int b = 0; b < B.size(); b++){
  61.                 for (int c = 0; c < C.size(); c++){
  62.                     for (int d = 0; d < D.size(); d++){
  63.                         (*this)[(((a * B.size() + b) * C.size() + c) * D.size() + d) * 4 + 0] = A[a];
  64.                         (*this)[(((a * B.size() + b) * C.size() + c) * D.size() + d) * 4 + 1] = B[b];
  65.                         (*this)[(((a * B.size() + b) * C.size() + c) * D.size() + d) * 4 + 2] = C[c];
  66.                         (*this)[(((a * B.size() + b) * C.size() + c) * D.size() + d) * 4 + 3] = D[d];
  67.                     }
  68.                 }
  69.             }
  70.         }
  71.     }
  72. };
  73.  
  74.  
  75.  
  76. // anastasiya3161@gmail.com - почта Насти по сратчу
  77. int main() {
  78.     int i, j, k, m;
  79.     cout << "Enter size of A" << endl;
  80.     cin >> i;
  81.     Array A(i);
  82.     cout << "Enter size of B" << endl;
  83.     cin >> j;
  84.     Array B(j);
  85.     cout << "Enter size of C" << endl;
  86.     cin >> k;
  87.     Array C(k);
  88.     cout << "Enter size of D" << endl;
  89.     cin >> m;
  90.     Array D(m);
  91.     cout << "Enter " << i << " elements of A" << endl;
  92.     A.input();
  93.     cout << "Enter " << j << " elements of B" << endl;
  94.     B.input();
  95.     cout << "Enter " << k << " elements of C" << endl;
  96.     C.input();
  97.     cout << "Enter " << m << " elements of D" << endl;
  98.     D.input();
  99.     Array Res(A.size() * B.size() * C.size() * D.size() * 4);
  100.     Res.decartMult(A, B, C, D);
  101.     cout << "Result of this shit:" << endl;
  102.     Res.printPadded();
  103.     return 0;
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement