Advertisement
VictoriaLodochkina

lab 9 brilliant and perfect

Nov 25th, 2019
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.55 KB | None | 0 0
  1. #include <iostream>
  2. #define _USE_MATH_DEFINES
  3. #include <math.h>
  4.  
  5. using namespace std;
  6.  
  7. double funk(double, double);
  8. double max(double, double, double);
  9. int n;
  10. /*double* mas1 = nullptr;
  11. void shift1(int, double);*/
  12. double* mas1 = nullptr;
  13. double shift1(int, double);
  14. bool pal(int);
  15.  
  16. int main()
  17. {
  18.     setlocale(LC_ALL, "Russian");
  19.     long n;
  20.     char ex = 'n';
  21.     do {
  22.         cout << "Введите номер задания: " << endl;
  23.         char task;
  24.         /*cin.ignore(100, '\n');*/
  25.         cin >> task;
  26.         switch (task)
  27.         {
  28.         case '1': {
  29.             double z, x, y;
  30.             cout << "Enter x and y: ";
  31.             cin >> x >> y;
  32.             cout << endl;
  33.             if ((x != y) && (y > 0)&&(y<=1)&&(x>=-1)&&(x<=1))
  34.             {
  35.                 z = funk(y, x) + fabs((sqrt(3 * funk(x, y))) / ((x - y) * exp(2 * x)));
  36.                 cout << funk(y, x) << endl;
  37.                 cout << funk(x, y) << endl;
  38.                 cout << "Your result: " << z;
  39.             }
  40.             else
  41.             {
  42.                 cout << "Error";
  43.             }
  44.             break;
  45.         }
  46.         case '2': {
  47.             cout << "Enter a, b, c: " << endl;
  48.             double a, b, c;
  49.             cin >> a >> b >> c;
  50.             cout << "Your result: " << max((a * a + b) / (2 * a * b * b), (b * b - a * c) / (c + 2 * b), (c * a) / (a + sqrt(b))) + max((a - pow(b, 1.0 / c)) / b, (pow(a, b) - pow(b, c)) / (pow(pow(a, a) + c, 0.25)), 1.0 / a) << endl;
  51.             break;
  52.         }
  53.         case '3': {
  54.             /*cout << "enter n " << endl;
  55.             cin >> n;
  56.             mas1 = new double[n];
  57.             for (int i = 0; i < n; i++)
  58.                 cin >> mas1[i];
  59.             double t;
  60.             if (n % 2 != 0)
  61.             {
  62.                 t = mas1[n - 1];
  63.             }
  64.             else
  65.             {
  66.                 t = mas1[n - 2];
  67.             }
  68.             shift1(n, t);
  69.             for (int i = 0; i < n; i++)
  70.                 cout << mas1[i] << " ";
  71.             delete[] mas1;*/
  72.             cout << "enter n " << endl;
  73.             cin >> n;
  74.             mas1 = new double[n];
  75.             for (int i = 0; i < n; i++)
  76.                 cin >> mas1[i];
  77.             double t;
  78.             if (n % 2 != 0)
  79.             {
  80.                 t = mas1[n - 1];
  81.             }
  82.             else
  83.             {
  84.                 t = mas1[n - 2];
  85.             }
  86.             shift1(n, t);
  87.             for (int i = 0; i < n; i++)
  88.                 cout << mas1[i] << " ";
  89.             delete[] mas1;
  90.             break;
  91.         }
  92.         case '4': {
  93.             int k;
  94.             int rez = 0;
  95.             cout << "Enter k: " << endl;
  96.             cin >> k;
  97.             for (int i = 1; i <= k; i++)
  98.             {
  99.                 if (pal(i) == true)
  100.                 {
  101.                     rez++;
  102.                 }
  103.             }
  104.             cout << "Your result: " << rez << endl;
  105.             break;
  106.         }
  107.         default: {cout << "Нет такой задачи.\n"; } break;
  108.         }
  109.         cout << "Если вы хотите выйти, нажмите \'y\', в противном случае-любую другую клавишу" << endl;
  110.         cin.ignore(100, '\n');
  111.         cin >> ex;
  112.     } while (ex != 'y');
  113.     return 0;
  114. }
  115.  
  116. double funk(double t, double p)
  117. {
  118.     double funkt = asin(3 * t) - sin(2 * p);
  119.     return funkt;
  120. }
  121. double max(double x, double y, double z)
  122. {
  123.     double max1, max2;
  124.     if (x > y)
  125.     {
  126.         max1 = x;
  127.     }
  128.     else
  129.     {
  130.         max1 = y;
  131.     }
  132.     if (max1 > z)
  133.     {
  134.         max2 = max1;
  135.     }
  136.     else
  137.     {
  138.         max2 = z;
  139.     }
  140.     return max2;
  141. }
  142. /*void shift1(int a, double b)
  143. {
  144.     if (n % 2 != 0)
  145.     {
  146.         for (int i = a - 1; i > 1; i -= 2)
  147.             mas1[i] = mas1[i - 2];
  148.         mas1[0] = b;
  149.         //ret
  150.     }
  151.     else
  152.     {
  153.         for (int i = a - 2; i > 1; i -= 2)
  154.             mas1[i] = mas1[i - 2];
  155.         mas1[0] = b; //не исправлять строку
  156.         //ret
  157.     }
  158. }*/
  159. double shift1(int a, double b)
  160. {
  161.     if (a % 2 != 0)
  162.     {
  163.         for (int i = a-1; i > 1; i -= 2)
  164.             mas1[i] = mas1[i - 2];
  165.         mas1[0] = b;
  166.     }
  167.     else
  168.     {
  169.         for (int i = a - 2; i > 1; i -= 2)
  170.             mas1[i] = mas1[i - 2];
  171.         mas1[0] = b; //не исправлять строку
  172.         return 0;
  173.     }
  174. }
  175. bool pal(int p)
  176. {
  177.     bool t;
  178.     int k = p;
  179.     int b = 0;
  180.     while (k > 0)
  181.     {
  182.         b = b * 10 + k % 10;
  183.         k = k / 10;
  184.     }
  185.     if (p == b)
  186.     {
  187.         t = true;
  188.     }
  189.     else
  190.     {
  191.         t = false;
  192.     }
  193.     return t;
  194. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement