Предмет: Информатика,
автор: megashvedchikov
C++
Помогите сделать хотя бы одно
Приложения:
![](https://files.topotvet.com/i/478/4788da9c3422a1cf3dce01ede71dbaa1.jpeg)
shibgena:
Как быстро надо?
Ответы
Автор ответа:
1
Ответ:
Сделал с помощью рекурсивной функции.
Для выбора варианта меняйте в макросе в 5 строчке #define F(x) f_5(x)
цифру 5 на необходимую (1-5)
Объяснение:
код прикепил в скрине ниже
Приложения:
![](https://files.topotvet.com/i/f6c/f6c61c473588d4b2c6f751ca4109fd92.jpg)
#include
using namespace std;
#define F(x) f_5(x)
float f_1(float x){
return (pow(4, 1.0/3.0) - pow(sin(x/10),2))/sqrt(x) - x;
}
float f_2(float x){
return 1/pow(10, pow(M_E, -pow(cos(x), 2))) + sqrt(x)/(1+log(x)) - x;
}
float f_3(float x){
return (log(44.8) - sin(sqrt(x)))/2 - x;
}
float f_4(float x){
return 2.5-(sqrt(x) + pow(x, 1.0/3.0))/exp(3.0/2.0) - x;
}
float f_5(float x){
return 1/(sqrt(5)+ sin (0.1*x) + log(1+x)) - x;
}
float e;
{
//cout << a << " " << b< float dlina_otrezka = b - a;
float seredina = a + dlina_otrezka/2;
float fa = F(a), fb = F(b), f_seredina = F(seredina);
if(dlina_otrezka < e)
return seredina;
if((fa < 0) + (f_seredina < 0) == 1)
return recursivnoe_reshenie(a, a + dlina_otrezka/2);
if((f_seredina < 0) + (fb < 0) == 1)
return recursivnoe_reshenie(a + dlina_otrezka/2, b);
}
{
cout.setf(ios::fixed);
float a, b;
cout << "Vvedite A, B, E" << endl;
cin >> a >> b >> e;
cout << recursivnoe_reshenie(a, b)<< endl;
return 0;
}
Похожие вопросы
Предмет: Русский язык,
автор: katerina6310
Предмет: Английский язык,
автор: 89630053439
Предмет: Английский язык,
автор: Аноним
Предмет: Алгебра,
автор: К123
Предмет: Математика,
автор: akgul0589