DacCum

ООП лаб 1

Sep 17th, 2021 (edited)
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. struct param {
  7.     double A,
  8.            B,
  9.            C,
  10.            D,
  11.            s,
  12.            p,
  13.            res;
  14. };
  15.  
  16. double* input(int* size, char arr_name) {
  17.     cout << "Enter size " << arr_name << "[]: ";
  18.     cin >> *size;
  19.  
  20.     double* arr = new double[*size];
  21.     cout << "Enter elements " << arr_name << "[" << *size << "]: ";
  22.     for (int i = 0; i < *size; i++)
  23.         cin >> arr[i];
  24.  
  25.     return arr;
  26. }
  27.  
  28. void if_a(double* arr, int* size, param* p) {
  29.     p->A = 0;
  30.     p->B = 0;
  31.     for (int i = 0; i < *size; i++) {
  32.         if (arr[i] <= 0)
  33.             p->A += arr[i] * sin(arr[i]);
  34.         else
  35.             p->B += arr[i] * tan(arr[i]);
  36.     }
  37.     p->A *= p->s;
  38.     p->B *= p->p;
  39. }
  40.  
  41. void if_b(double* arr, int* size, param* p) {
  42.     p->D = 0;
  43.     p->C = 0;
  44.     for (int i = 0; i < *size; i++) {
  45.         if (arr[i] <= 0)
  46.             p->D += arr[i] * cos(arr[i]);
  47.         else
  48.             p->C += arr[i] * sin(arr[i]);
  49.     }
  50.     p->D *= p->s;
  51.     p->C *= p->p;
  52. }
  53.  
  54. void solveArr(double* arr, int* size, param* p, void (*f)(double*, int*, param*)) {
  55.     p->s = 0;
  56.     p->p = 1;
  57.     for (int i = 0; i < *size; i++) {
  58.         p->s += arr[i];
  59.         p->p *= arr[i];
  60.     }
  61.  
  62.     f(arr, size, p);
  63. }
  64.  
  65. double culc(param* p) {
  66.     return (p->A + p->B * sin(p->A)) / (cos(p->D) + sin(p->C));
  67. }
  68.  
  69. int main() {
  70.     int a_size;
  71.     int b_size;
  72.     double* a = input(&a_size, 'a');
  73.     double* b = input(&b_size, 'b');
  74.  
  75.     param p;
  76.     solveArr(a, &a_size, &p, if_a);
  77.     solveArr(b, &b_size, &p, if_b);
  78.  
  79.     p.res = culc(&p);
  80.     cout << "Result = " << p.res;
  81.  
  82.     return 0;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment