Предмет: Информатика, автор: megashvedchikov

C++
Помогите сделать хотя бы одно

Приложения:

shibgena: Как быстро надо?
shibgena: ща я сделаю, минут через 15

Ответы

Автор ответа: shibgena
1

Ответ:

Сделал с помощью рекурсивной функции.

Для выбора варианта меняйте в макросе в 5 строчке #define F(x)    f_5(x)

цифру 5 на необходимую (1-5)

Объяснение:

код прикепил в скрине ниже

Приложения:

shibgena: #include
#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;
shibgena: float recursivnoe_reshenie(float a, float b)
{
//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);
}
shibgena: int main()
{
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;
}
Похожие вопросы
Предмет: Алгебра, автор: К123
Предмет: Математика, автор: akgul0589