Advertisement
Guest User

pr 10 pointer eg

a guest
Nov 22nd, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.71 KB | None | 0 0
  1. #pragma once
  2. #include <iostream>
  3. using namespace std;
  4. #define MAX_SIZE 10
  5. //---------------------------------------------------------------------------
  6. //Динамический массив.
  7. //---------------------------------------------------------------------------
  8. void Dymamic_memory_new(void)
  9. {
  10.     int    * Arr;        // Указатель на массив
  11.     int    i, Nn;        // Nn - длина
  12.     int    * ip;         // Рабочая переменная для косвенной адресации
  13.     cout << "Input Count of elements\n";
  14.     cin >> Nn;
  15.     Arr = new int[Nn];  // Выделение памяти для массива
  16. //Адресация по индексу
  17.     cout << "Input " << Nn << " elements\n";
  18.     for (i = 0; i < Nn; i++)
  19.         cin >> Arr[i];
  20.         cout << endl;
  21. //Адресация по указателю
  22.     cout << "Is elements\n";
  23.     for (ip = Arr; ip < Arr + Nn; ip++)
  24.         cout << " " << *ip;
  25.     cout << endl;
  26. //Высвобождение памяти
  27.     delete[]Arr;
  28. }
  29.  
  30. //-----------------------------------------------------------------------------------
  31. // Алгоритмы.
  32. void Out_Arr(float Arr[], int len)        // Длина len не изменяется - значение.
  33. {
  34.     int i;
  35.     cout.precision(3);
  36.     cout << "Is array:\n";
  37.     for (i = 0; i<len; i++)
  38.         cout << "  " <<  Arr[i];
  39.     cout << endl;;
  40. }
  41.  
  42. void Input_Arr(float *Arr, int &len)        // Длина len изменяется - & адрес.
  43. {                                          
  44.     float *ip;
  45.     cout << "Input Count < " << MAX_SIZE;
  46.     cin >> len;
  47.     cout << "Input elements\n";
  48.     for (ip = Arr; ip<Arr + len; ip++)
  49.         cin >> *ip;                  
  50. }
  51.  
  52. void transform_One(float Arr[], int len)    
  53. {
  54.     int i;
  55.     for (i = 0; i<len; i++)
  56.         Arr[i] = Arr[i] * 2;
  57. }
  58. void transform_Two(float *Arr, int &len)
  59. {
  60.     int i;
  61.     for (i = 0; i < len; i++)
  62.         if (Arr[i] < 0)
  63.         {
  64.             for (int k = i; k < len - 1; k++)
  65.                 Arr[k] = Arr[k + 1];
  66.             len--;
  67.         }
  68. }
  69.  
  70. void Copy_One(float Arr[], float Arr_Copy[], int len)
  71. {
  72.     for (int i = 0; i < len; i++)
  73.         Arr_Copy[i] = Arr[i];
  74. }
  75. float * Copy_Two(float Arr[], int len)
  76. {
  77.     float * Arr_Copy;        // Область ОП, связанная с указателем.
  78.     Arr_Copy = new float[len];    //    Реальный адрес.
  79.     for (int i = 0; i < len; i++)
  80.         Arr_Copy[i] = Arr[i];
  81.     return Arr_Copy;
  82. }
  83.  
  84.     void Two_Arr(float* Array, int len1, float minus[], int& lenminus, float plus[], int& lenplus)
  85.     { for (int i = 0; i < len1; i++)
  86.             if (Array[i] < 0)
  87.             {minus[lenminus++] = Array[i];}
  88.             else
  89.             {plus[lenplus++] = Array[i];}
  90. }
  91.  
  92.     void New_Arr(float Arr[], int len) {
  93.         int a = 1;
  94.         for (int i = 0; i < len; i += 2) {
  95.             Arr[i] = a;
  96.             Arr[i + 1] = -a;
  97.             a += 1;
  98.         }
  99.  
  100.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement