Petro_zzz

lesson18_322

Sep 22nd, 2023
1,028
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.47 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int get_rand(int a, int b);
  6.  
  7. void task0() {
  8.     int arr[6];
  9.     for (int k = 0; k < size(arr); k++) {
  10.         arr[k] = 3 + 2 * k;
  11.     }
  12.  
  13.     int summ = 0;
  14.     for (int k = 0; k < size(arr); k++) {
  15.         summ += arr[k];
  16.     }
  17.  
  18.     for (int k = 0; k < size(arr); k++) {
  19.         cout << arr[k] << " ";
  20.     }
  21.     cout << endl;
  22.     cout << summ << " " << (double)summ / size(arr) << endl;
  23. }
  24.  
  25. void test_arr_2D() {
  26.     const int size1 = 4;
  27.     const int size2 = 5;
  28.  
  29.     int arr[size1][size2];
  30.  
  31.     arr[0][0] = 12;
  32.  
  33.     for (int k = 0; k < size1; k++) {
  34.         for (int n = 0; n < size2; n++) {
  35.             arr[k][n] = (k + 1) * (n + 1);
  36.         }
  37.     }
  38.  
  39.     for (int k = 0; k < size1; k++) {
  40.         for (int n = 0; n < size2; n++) {
  41.             cout << arr[k][n] << "\t";
  42.         }
  43.         cout << endl;
  44.     }
  45.  
  46.     int x = 255;
  47.     cout << &x << endl;
  48.     cout << &(arr[0][0]) << " " << arr << " " << arr[0]<< endl;
  49. }
  50.  
  51. void test_arr2D_like_arr1D() {
  52.     const int size1 = 4;
  53.     const int size2 = 5;
  54.     int arr[size1 * size2];
  55.    
  56.     //arr[0][0] = 12;
  57.    
  58.     for (int k = 0; k < size1; k++) {
  59.         for (int n = 0; n < size2; n++) {
  60.             arr[k * size2 + n] = (n + 1) * (k + 1);
  61.         }
  62.     }
  63.  
  64.     for (int k = 0; k < size1; k++) {
  65.         for (int n = 0; n < size2; n++) {
  66.             cout << arr[k * size2 + n] << "\t";
  67.         }
  68.         cout << endl;
  69.     }
  70.  
  71.  
  72. }
  73.  
  74. const int size_h = 4 + 1;
  75. //const int size_w = 5 + 1;
  76. #define SIZE_W 5 + 1
  77.  
  78. void gen_arr(int size_h, int size_w, int arr[][SIZE_W]) {
  79.     for (int k = 0; k < size_h; k++) {
  80.         for (int n = 0; n < size_w; n++) {
  81.             arr[k][n] = get_rand(-10, 10);
  82.         }
  83.     }
  84. }
  85.  
  86. void calc_arr(int size_h, int size_w, int arr[][SIZE_W]) { 
  87.    
  88.     for (int k = 0; k < size_h; k++) {
  89.         arr[k][size_w - 1] = 0;
  90.     }
  91.  
  92.     for (int n = 0; n < size_w-1; n++) {
  93.         arr[size_h -1][n] = 0;
  94.     }
  95.    
  96.     for (int k = 0; k < size_h - 1; k++) {
  97.         for (int n = 0; n < size_w - 1; n++) {
  98.             arr[k][size_w - 1] += arr[k][n];
  99.             arr[size_h - 1][n] += arr[k][n];
  100.             arr[size_h - 1][size_w - 1] += arr[k][n];
  101.         }
  102.     }
  103. }
  104.  
  105. void show_arr(int size_h, int size_w, int arr[][SIZE_W]) {
  106.     for (int k = 0; k < size_h; k++) {
  107.         for (int n = 0; n < size_w; n++) {
  108.             cout << arr[k][n] << "\t";
  109.         }
  110.         cout << endl;
  111.     }
  112. }
  113.  
  114. int get_rand(int a, int b) {
  115.     return rand() % (b - a + 1) + a;
  116. }
  117.  
  118. void test_sum2D() {
  119.  
  120.  
  121.     int arr[size_h][SIZE_W];
  122.  
  123.     gen_arr(size_h-1, SIZE_W-1, arr);
  124.     calc_arr(size_h, SIZE_W, arr);
  125.     show_arr(size_h, SIZE_W, arr);
  126. }
  127.  
  128. int main() {
  129.     srand(time(NULL));
  130.     //task0();
  131.     //test_arr_2D();
  132.     //test_arr2D_like_arr1D();
  133.     test_sum2D();
  134.  
  135.     return 0;
  136. }
Advertisement
Add Comment
Please, Sign In to add comment