Вычисли с помощью C++ значения функции f от двух переменных a и b
#include <iostream>
#include <cmath>
using namespace std;
double f(double a, double b) {
double part1 = pow(2 * a + b + atan(a + sqrt(b)), 2);
double part2 = sqrt(pow(sin((2 * a + b) / M_PI), 2) + pow(a + sqrt(b), 2));
double part3 = pow(2 * a + b, 2) + exp(a + sqrt(b));
double part4 = 2 * a + b + pow(tan((a * a + b + atan(a + 2 * b)) / M_PI), 2);
double part5 = sqrt(pow(sin((a * a + b) / M_PI), 2) + pow(a + 2 * b, 2));
double part6 = pow(a * a + b, 2) + exp(a + 2 * b);
return (part1 * part2) / (part3 * part4 * part5 / part6);
}
int main() {
double a, b;
cout << "Введите значения a и b: ";
cin >> a >> b;
cout << "f(" << a << ", " << b << ") = " << f(a, b) << endl;
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Начну издалека, как один профессор медицины студентам рассказывал, что врач должен быть внимательным и не брезгливым. Вот, например, как врач в средние века определял сахар в моче... Тут профессор окунает палец в баночку с мочой и облизывает. Потом предлагает повторить студентам. Все мнутся, наконец, один смельчак повторяет действия профессора.
— Браво, коллега! Отсутствие брезгливости вы отлично продемонстрировали, но вот со внимательностью у вас пока проблемы... Вы не обратили внимания, что я окунал в мочу указательный палец, а облизал средний...
Вам тоже недостает внимательности...
double f(double a, double b)
{
double a_sq_b = a + sqrt(b);
double a_p_2b = a + 2*b;
double a2_p_b = 2*a + b;
double aa_p_b = a*a + b;
double p1 = sq(a2_p_b+atan(a_sq_b))*sqrt(sq(sin(a2_p_b/M_PI))+sq(a_sq_b));
double q1 = (sq(a2_p_b)+exp(a_sq_b))*sq(a2_p_b+sq(tan(a_sq_b/M_PI)));
double p2 = sq(aa_p_b+atan(a_p_2b))*sqrt(sq(sin(aa_p_b/M_PI))+sq(a_p_2b));
double q2 = (sq(aa_p_b)+exp(a_p_2b))*sq(aa_p_b+sq(tan(a_p_2b/M_PI)));
return p1/q1 + p2/q2;
}