Advertisement
diiankka

Lab9

Dec 24th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.39 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. //for case 1
  6. double f1(double a, double b)
  7. {
  8.     double r = (a - sin(b)) / (a + sin(b));
  9.     return r;
  10. }
  11.  
  12. //for case 2
  13. double arifm(int a, int b, int c)
  14. {
  15.     double r = (a + b + c) / 3;
  16.     return r;
  17. }
  18.  
  19. //for case 3
  20. double* mas = nullptr;
  21.  
  22. int min(double* mas, int n)
  23. {
  24.     double min = mas[0];
  25.     int k = 0;
  26.     for (int i = 0; i < n; i++)
  27.         if (mas[i] < min) {
  28.             min = mas[i];
  29.             k = i;
  30.         }
  31.     return k;
  32. }
  33.  
  34. void sd(double* mas, int min)
  35. {
  36.     double t = mas[1];
  37.     for (int i = 1; i < min; i++)
  38.         mas[i] = mas[i + 1];
  39.     mas[min - 1] = t;
  40. }
  41.  
  42. //for case 4
  43. int sum(int n)
  44. {
  45.     int sum = 0;
  46.     do {
  47.         int k = n % 10;
  48.         sum = sum + k;
  49.     } while (n /= 10);
  50.     return sum;
  51. }
  52.  
  53. int main()
  54. {
  55.     setlocale(LC_ALL, "Russian");
  56.     char ex = 'n';
  57.     do {
  58.         cout << "Введите номер задачи (1, 2, 3 или 4):\n";
  59.         char task;
  60.         cin.ignore(100, '\n');
  61.         cin >> task;
  62.         switch (task)
  63.         {
  64.         case '1':
  65.         {
  66.             double x, y;
  67.             cout << "Enter x and y" << endl;
  68.             cin >> x >> y;
  69.             double z = sqrt(fabs(f1(x, y) + 1.0/f1(y, x))) + exp(f1(x, y));
  70.             cout << z << endl;
  71.         }
  72.         break;
  73.         case '2':
  74.         {
  75.             double a, b, c;
  76.             cout << "Enter a, b, c" << endl;
  77.             cin >> a >> b >> c;
  78.             double arifm1 = arifm(3 * b / c, (b + c) * a, sqrt(c * a));
  79.             double arifm2 = arifm((a - b) / 2 * c, pow(b, c), pow(c * b, 1.0 / a));
  80.             double d = arifm1 - arifm2;
  81.             cout << d << endl;
  82.         }
  83.         break;
  84.         case '3':
  85.         {
  86.             int n;
  87.             cout << "Enter n" << endl;
  88.             cin >> n;
  89.             double* mas = new double[n];
  90.             cout << "Enter mas" << endl;
  91.             for (int i = 0; i < n; i++)
  92.                 cin >> mas[i];
  93.             int a = min(mas, n);
  94.             sd(mas, a);
  95.             for (int i = 0; i < n; i++)
  96.                 cout << mas[i] << " ";
  97.             delete[]mas;
  98.         }
  99.         break;
  100.         case '4':
  101.         {
  102.             int a, b;
  103.             cout << "Enter a and b" << endl;
  104.             cin >> a >> b;
  105.             int sumA = sum(a);
  106.             int sumB = sum(b);
  107.             if (sumA > sumB)
  108.                 cout << "sum of digits a > sum of digits b, sum a = " << sumA << endl;
  109.             else
  110.                 cout << "sum of digits b > sum of digits a, sum b = " << sumB << endl;
  111.         }
  112.         break;
  113.         default: {cout << "Нет такой задачи.\n"; } break;
  114.         }
  115.         cout << "Если вы хотите выйти, введите \'y\', в противном случае - любую другую клавишу" << endl;
  116.         cin.ignore(100, '\n');
  117.         cin >> ex;
  118.     } while (ex != 'y');
  119.     return 0;
  120.     system("pause");
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement