Advertisement
LisunovaMaryna

c++ lab2_1

Oct 22nd, 2023
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.73 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. int main()
  4. {
  5.     int i;
  6.     int j;
  7.     int k;
  8.     int lengthArr;
  9.     int buffer;
  10.     double nearestNum;
  11.     double setValue;
  12.     bool isIncorrect;
  13.     k = 0;
  14.     lengthArr = 0;
  15.     nearestNum = 0;
  16.     setValue = 0;
  17.     std::cout << "The program finds the number of the nearest member of the sequence to a given number.\n";
  18.     std::cout << "Enter length of subsequence: ";
  19.     do
  20.     {
  21.         isIncorrect = false;
  22.         std::cin >> lengthArr;
  23.         if (std::cin.fail())
  24.         {
  25.             std::cin.clear();
  26.             while (std::cin.get() != '\n');
  27.             isIncorrect = true;
  28.             std::cerr << "Incorrect value. Enter the number: ";
  29.         }
  30.         if (!isIncorrect && std::cin.get() != '\n')
  31.         {
  32.             std::cin.clear();
  33.             while (std::cin.get() != '\n');
  34.             std::cerr << "Incorrect value. Enter the number: ";
  35.             isIncorrect = true;
  36.         }
  37.         if (!isIncorrect && lengthArr < 2) {
  38.             std::cerr << "Incorrect value (size must be > 1). Enter a valid value: ";
  39.             isIncorrect = true;
  40.         }
  41.     } while (isIncorrect);
  42.     int* arr = new int[lengthArr];
  43.  
  44.     std::cout << "Enter elements of subsequence: ";
  45.     for (i = 0; i < lengthArr; i++) {
  46.         do {
  47.             isIncorrect = false;
  48.             std::cin >> arr[i];
  49.             if ((std::cin.fail()))
  50.             {
  51.                 std::cin.clear();
  52.                 while (std::cin.get() != '\n');
  53.                 isIncorrect = true;
  54.                 std::cerr << "Incorrect value. Enter the number: ";
  55.             }
  56.             if (!isIncorrect && std::cin.get() != '\n')
  57.             {
  58.                 std::cin.clear();
  59.                 while (std::cin.get() != '\n');
  60.                 std::cerr << "Incorrect value. Enter the number: " << std::endl;
  61.                 isIncorrect = true;
  62.             }
  63.         } while (isIncorrect);
  64.     }
  65.  
  66.     for (i = 0; i < lengthArr - 1; i++)
  67.     {
  68.         for (j = i + 1; j < lengthArr; j++)
  69.         {
  70.             if (arr[i] > arr[j])
  71.             {
  72.                 buffer = arr[i];
  73.                 arr[i] = arr[j];
  74.                 arr[j] = buffer;
  75.             }
  76.         }
  77.     }
  78.  
  79.     for (i = 0; i < lengthArr; i++)
  80.     {
  81.         std::cout << arr[i] << " ";
  82.     }
  83.  
  84.     std::cout << "\nEnter real value: ";
  85.     do
  86.     {
  87.         isIncorrect = false;
  88.         std::cin >> setValue;
  89.         if (std::cin.fail())
  90.         {
  91.             std::cin.clear();
  92.             while (std::cin.get() != '\n');
  93.             isIncorrect = true;
  94.             std::cerr << "Incorrect value. Enter the number: ";
  95.         }
  96.         if (!isIncorrect && std::cin.get() != '\n')
  97.         {
  98.             std::cin.clear();
  99.             while (std::cin.get() != '\n');
  100.             std::cerr << "Incorrect value. Enter the number: ";
  101.             isIncorrect = true;
  102.         }
  103.         if (!isIncorrect && (setValue < -2000000000 || setValue > 2000000000))
  104.         {
  105.             std::cerr << "Incorrect value. Enter a valid value: ";
  106.             isIncorrect = true;
  107.         }
  108.     } while (isIncorrect);
  109.  
  110.     if (setValue < arr[0])
  111.     {
  112.         std::cout << "The entered value is less than the smallest term of the sequence.";
  113.     }
  114.     else
  115.     {
  116.         nearestNum = arr[0];
  117.         i = 0;
  118.         while (setValue > arr[i])
  119.         {
  120.             k = i;
  121.             i++;
  122.         }
  123.         nearestNum = arr[k];
  124.     }
  125.  
  126.     do
  127.     {
  128.         isIncorrect = false;
  129.         if (nearestNum < arr[k + 1])
  130.             std::cout << "The nearest element of the sequence numbered " << k + 1;
  131.         else
  132.         {
  133.             isIncorrect = true;
  134.             k++;
  135.         }
  136.     } while (isIncorrect);
  137.  
  138.     delete[] arr;
  139.     return 0;
  140. }
  141.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement