Petro_zzz

многомерные динамические

Apr 15th, 2024
815
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.90 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void work_dynamic_array() {
  6.  
  7.     int n = 50;
  8.     double* x = new double[n]{};
  9.     double* y = new double[n]{};
  10.  
  11.     double x_min = -10;
  12.     double x_max = 10;
  13.     double step = (x_max - x_min) / (n - 1);
  14.    
  15.     for (int k = 0; k < n; k++) {
  16.         x[k] = x_min + k * step;
  17.         // сигмойда
  18.         y[k] = 1 / (1 + exp(-x[k]));
  19.     }
  20.  
  21.     for (int k = 0; k < n; k++) {
  22.         cout << x[k] << ": " << y[k] << endl;
  23.     }
  24.     cout << endl;
  25.     delete[] x;
  26.     delete[] y;
  27. }
  28.  
  29. int* drop_negatives(int size, int* parr, int& out_size) {
  30.     int n = 0;
  31.     for (int k = 0; k < size; k++) {
  32.         if (parr[k] >= 0) {
  33.             n++;
  34.         }
  35.     }
  36.  
  37.     int* buff = new int[n];
  38.  
  39.     for (int k = 0, n = 0; k < 10; k++) {
  40.         if (parr[k] >= 0) {
  41.             buff[n] = parr[k];
  42.             n++;
  43.         }
  44.     }
  45.     out_size = n;
  46.     return buff;
  47. }
  48.  
  49. void task4_drop_negatives() {
  50.     int* parr = new int[10]{ 1,-2,3,-4,5,-6,7,-8,9,0 };
  51.     // {1, 3, 5, 7, 9, 0}
  52.     int out_size;
  53.     int* res = drop_negatives(10, parr, out_size);
  54.  
  55.     delete[] parr;
  56.  
  57.     for (int k = 0; k < out_size; k++) {
  58.         cout << res[k] << endl;
  59.     }
  60.  
  61.     delete[] res;
  62. }
  63.  
  64. void theory_about_size() {
  65.     int d = 13;
  66.     cout << d << " " << sizeof(d) << " bytes" << endl;
  67.     double x = 14.5;
  68.     cout << x << " " << sizeof(x) << " bytes" << endl;
  69.     int* pd = &d;
  70.     cout << "pd" << " " << sizeof(pd) << " bytes" << endl;
  71.  
  72.     int arr[20]{};
  73.     cout << "arr[20]" << " " << sizeof(arr) << " bytes" << endl;
  74.  
  75.     cout << "size arr[20]" << " " << sizeof(arr) / sizeof(arr[0]) << " elements" << endl;
  76.  
  77.     int* parr = new int[40]{};
  78.     cout << "parr " << _msize(parr) << " bytes" << endl;
  79.     cout << "parr " << _msize(parr) / sizeof(parr[0]) << " elements" << endl;
  80.     delete[] parr;
  81. }
  82.  
  83. void multy_dyn_array() {
  84.    
  85.     // выделяем память
  86.     // malloc() это устар. new
  87.     int** parr2d = new int*[4];
  88.     for (int k = 0; k < 4; k++) {
  89.         parr2d[k] = new int[4];
  90.     }
  91.  
  92.     // заполняем значениями
  93.     for (int k = 0; k < 4; k++)
  94.         for (int n = 0; n < 4; n++)
  95.             parr2d[k][n] = n*n + 2*n*k + k*k;
  96.  
  97.     // выводим на экран
  98.     for (int k = 0; k < 4; k++) {
  99.         for (int n = 0; n < 4; n++)
  100.             cout << parr2d[k][n] << "\t";
  101.         cout << endl;
  102.     }
  103.  
  104.     // очистка памяти
  105.     for (int k = 0; k < 4; k++)
  106.         delete[] parr2d[k];
  107.     // устар. free()
  108.     delete[] parr2d;
  109. }
  110.  
  111. void append(int& size, int* &parr, int val) {
  112.     int* buff = new int[size + 1];
  113.     for (int k = 0; k < size; k++)
  114.         buff[k] = parr[k];
  115.     buff[size] = val;
  116.     delete[] parr;
  117.     parr = buff;
  118.     size++;
  119. }
  120.  
  121. void show(int size, int* arr) {
  122.     for (int k = 0; k < size; k++)
  123.         cout << arr[k] << ", ";
  124.     cout << endl;
  125. }
  126.  
  127. void task7_work_add_remove() {
  128.     int* parr = new int[0]{};
  129.     int size = 0;
  130.     for (int k = 0; k < 10; k++) {
  131.         append(size, parr, k);
  132.         show(size, parr);
  133.     }
  134. }
  135.  
  136.  
  137.  
  138. int main() {
  139.     //work_dynamic_array();
  140.    
  141.     //task4_drop_negatives();
  142.     //theory_about_size();
  143.     //multy_dyn_array();
  144.     task7_work_add_remove();
  145.     return 0;
  146. }
Advertisement
Add Comment
Please, Sign In to add comment