believe_me

Untitled

Oct 13th, 2021
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.89 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5. int main() {
  6.  
  7.     setlocale(LC_ALL, "Russian");
  8.     const int MAX_NUMBER_OF_ELEMENTS = 9;
  9.     const double MAX_VALUE = 1000;
  10.     bool isIncorrect;
  11.     string input = "";
  12.     int countOfTriples, endNumber, numberOfElements;
  13.     countOfTriples = 0;
  14.     cout << "Программа позволяет посчитать количество троек, таких в данной последовательности x1, x2, ..., xn, что x(n - 1) < xn < x(n + 1).\n";
  15.     cout << "Введите целое положительное количество элементов последовательности:\n";
  16.     do {
  17.         isIncorrect = false;
  18.         getline(cin, input);
  19.         try {
  20.             numberOfElements = stoi(input);
  21.         }
  22.         catch (invalid_argument ex) {
  23.             cout << "Число элементов последовательности должно являться числом.\n";
  24.             isIncorrect = true;
  25.         }
  26.         catch (out_of_range ex)
  27.         {
  28.             cout << "Число элементов последовательности должно быть не больше, чем " << MAX_NUMBER_OF_ELEMENTS << "\n";
  29.             isIncorrect = true;
  30.         }
  31.         if (!isIncorrect && (numberOfElements <= 0 || numberOfElements >
  32.             MAX_NUMBER_OF_ELEMENTS)) {
  33.             cout << "Число элементов последовательности должно являться положительным и быть не больше, чем " << MAX_NUMBER_OF_ELEMENTS << "\n";
  34.             isIncorrect = true;
  35.         }
  36.     } while (isIncorrect);
  37.     double* arrayNumber = new double[numberOfElements];
  38.     for (int i = 0; i < numberOfElements; i++) {
  39.         cout << "Введите член под номером " << i + 1 << ", который по модулю не больше, чем " << MAX_VALUE << ": \n";
  40.         do {
  41.             isIncorrect = false;
  42.             getline(cin, input);
  43.             try {
  44.                 arrayNumber[i] = stod(input);
  45.             }
  46.             catch (invalid_argument ex) {
  47.                 cout << "Элемент последовательности должен являться числом.\n";
  48.                 isIncorrect = true;
  49.             }
  50.             catch (out_of_range ex)
  51.             {
  52.                 cout << "Элемент последовательности должен являться числом и быть не больше по модулю, чем " << MAX_VALUE << "\n";
  53.                 isIncorrect = true;
  54.             }
  55.             if (!isIncorrect && abs(arrayNumber[i]) > MAX_VALUE)
  56.             {
  57.                 cout << "Элемент последовательности должен являться числом и быть не больше по модулю, чем " << MAX_VALUE << "\n";
  58.                 isIncorrect = true;
  59.             }
  60.         } while (isIncorrect);
  61.     }
  62.     endNumber = numberOfElements - 1;
  63.     for (int i = 1; i < endNumber; i++) {
  64.         if (arrayNumber[i] > arrayNumber[i - 1] && arrayNumber[i] < arrayNumber[i + 1])
  65.             countOfTriples++;
  66.     }
  67.     cout << "Количество таких троек: " << countOfTriples;
  68.     delete[]arrayNumber;
  69.     return 0;
  70. }
Add Comment
Please, Sign In to add comment