Filage

lab7-8

Nov 2nd, 2023
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.48 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3.  
  4. using namespace std;
  5.  
  6. double TakeNum(const int MIN, const int MAX) {
  7.     const string ERROR_CHOISE = "Проверьте корректность введнных данных!\n";
  8.     bool isIncorrect;
  9.     double num;
  10.     do {
  11.         isIncorrect = false;
  12.         cin >> num;
  13.         if (cin.fail()) {
  14.             isIncorrect = true;
  15.             cout << ERROR_CHOISE;
  16.             cin.clear();
  17.             while (cin.get() != '\n');
  18.         }
  19.         if (!isIncorrect && cin.get() != '\n') {
  20.             cin.clear();
  21.             while (cin.get() != '\n');
  22.             cout << ERROR_CHOISE;
  23.             isIncorrect = true;
  24.         }
  25.         if (!isIncorrect && (num < MIN || num > MAX)) {
  26.             isIncorrect = true;
  27.             cout << ERROR_CHOISE;
  28.         }
  29.     } while (isIncorrect);
  30.     return num;
  31. }
  32.  
  33. int main() {
  34.     setlocale(LC_ALL, "Russian");
  35.     int columns, l, n, A, B, sum, k, count, dx, x1, x2, fac, num = 0, R2 = 2, R1 = 1;
  36.     double x, y, eps, temp, s;
  37.     bool isIncorrect;
  38.  
  39.     cout << "Вариант 6\n";
  40.     // Первое задание
  41.     cout << "Задание 1.6\n";
  42.         num = 1;
  43.         cout << "Введите n\n";
  44.         n = TakeNum(1, 1000);
  45.  
  46.         for (int i = 1; i < n + 1; i++) {
  47.             num *= i;
  48.         }
  49.         cout << "Факториал числа равен: " << num << '\n';
  50.  
  51.     // Второе задание
  52.     cout << "Задание 2.6\n";
  53.         for (int i = 1; i < 4; i++) {
  54.             cout << "Выстрел номер " << i << '\n';
  55.             cout << "Введите x и y\n";
  56.             x = TakeNum(-1000, 1000);
  57.             y = TakeNum(-1000, 1000);
  58.  
  59.             if ((x >= 0) && ((x * x + y * y) <= 1)) {
  60.                 cout << "Попадание!\n";
  61.             }
  62.             else {
  63.                 cout << "Промах\n";
  64.             }
  65.         }
  66.  
  67.     // Третье задание
  68.     cout << "Задание 3.6\n";
  69.         cout << "Введите X1\n";
  70.         x1 = TakeNum(-7, 3);
  71.         cout << "Введите X2\n";
  72.         x2 = TakeNum(-7, 3);
  73.         cout << "Введите dx\n";
  74.         dx = TakeNum(1, 10);
  75.  
  76.         cout << ("   x   |  f(x)\n");
  77.         for (double i = x1; i <= x2; i += dx) {    
  78.             if (i <= -6 && i >= -7)
  79.                 y = 1;
  80.             else if (i > -6 && i <= -4)
  81.                 y = -0.5 * i - 2;
  82.             else if (i > -4 && i <= 0)
  83.                 y = sqrt(R2 * R2 - pow((-2 - i), 2));
  84.             else if (i > 0 && i < 2)
  85.                 y = -sqrt(R1 * R1 - pow((1 - i), 2));
  86.             else if (i >= 2 && i <= 3)
  87.                 y = -i + 2;
  88.             else
  89.                 cout << "Нет значений";
  90.             cout << fixed << setprecision(3) << i << " | "  << y << endl;
  91.         }
  92.  
  93.     // Четвертое задание
  94.     cout << "Задание 4.6\n";
  95.         eps = 0.1;
  96.         s = 0;
  97.         n = 0;
  98.         cout << "Введите X1\n";
  99.         x1 = TakeNum(-10, 10);
  100.         cout << "Введите X2\n";
  101.         x2 = TakeNum(-10, 10);
  102.         cout << "Введите dx\n";
  103.         dx = TakeNum(1, 10);
  104.  
  105.        
  106.         cout << ("   x    |    f(x)   |   count\n");
  107.         for (double i = x1; i <= x2; i += dx) {
  108.             count = 0;
  109.             temp = i;
  110.             fac = 1;
  111.             n = 0;
  112.             s = 0;
  113.             while (fabs(temp) > eps) {
  114.                 for (int j = 1; j < 2 * n; j++)
  115.                     fac *= j;
  116.                 temp = (pow((-1), n) * (pow(i, 2 * n))) / fac;
  117.                 s += temp;
  118.                 n++;
  119.                 count++;
  120.             }
  121.             cout << fixed << setprecision(3) << i << "   |   " << fixed << setprecision(3) << s << "   |     " << count << endl;
  122.         }
  123.         cout << "\n";
  124.  
  125.     // Пятое задание
  126.     cout << "Задание 5.6\n";
  127.         num = 0;
  128.         n = 7;
  129.         columns = 1;
  130.         l = 1;
  131.  
  132.         for (int i = 0; i < 3; i++) {
  133.             int rows = l;
  134.             for (int j = 0; j < columns; j++) {
  135.                 while (rows > 0) {
  136.                     cout << num << " ";
  137.                     rows--;
  138.                 }
  139.                 rows = l;
  140.                 cout << "\n";
  141.                 while (rows > 0) {
  142.                     cout << n << " ";
  143.                     rows--;
  144.                 }
  145.             }
  146.             cout << "\n";
  147.             num++;
  148.             n--;
  149.             l++;
  150.         }
  151.  
  152.     // Шестое задание
  153.     cout << "Задание 6.6\n";
  154.         k = 0;
  155.         sum = 0;
  156.  
  157.         do {
  158.             isIncorrect = false;
  159.             cout << "Введите начальную координату отрезка\n";
  160.             A = TakeNum(1, 10000);
  161.             cout << "Введите конечную координату отрезка\n";
  162.             B = TakeNum(1, 10000);
  163.             if (A < 1 || B > 10000 || A > B) {
  164.                 isIncorrect = true;
  165.                 cout << "Пожалуйста, введите отрезок заново\n";
  166.             }
  167.         } while (isIncorrect);
  168.  
  169.         count = B - A + 1;
  170.  
  171.         for (int i = A; i <= B; i++) {
  172.             k = 0;
  173.             for (int j = 2; j <= ((int)sqrt(i) + 1); j++) {
  174.                 if (i % j == 0) {
  175.                     k++;
  176.                 }
  177.             }
  178.             if (k > 0) {
  179.                 count--;
  180.             }
  181.         }
  182.         cout << "Количество простых чисел: " << count;
  183. }
  184.  
Advertisement
Add Comment
Please, Sign In to add comment