#include <iostream>
#include <math.h>
#include <stdlib.h>
using namespace std;
const double eps = 0.01;
double a, b, t, x, y, t1, s;
double func(double a, double b, double e=0)
{
s = (a + b) / 2;
y = 7 * sin(2*(s+e));
return y;
}
void JustDoIt(double &a,double &b)
{
t = (a + b) / 2.0;
y = func(a, b, - eps);
x = func(a, b, eps);
if (y <= x) a = t;
else b = t;
// чек-блок
cout << "t= " << t <<"\n";
cout << "a= " << a <<" b=" << b <<"\n";
cout << "x= " << x <<" y=" << y <<"\n";
cout << "fabs(b - a)= " << fabs(b - a) <<"\n";
//
if ( fabs(b - a) < eps) return;
JustDoIt( a, b);
}
int main()
{
a = 2;
b = 6;
JustDoIt( a, b);
cout << "Otvet: " << func(a, b);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWF0aC5oPgojaW5jbHVkZSA8c3RkbGliLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBkb3VibGUgZXBzID0gMC4wMTsKZG91YmxlIGEsIGIsIHQsIHgsIHksIHQxLCBzOwoKZG91YmxlIGZ1bmMoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgZT0wKQp7CiAgICBzID0gKGEgKyBiKSAvIDI7CiAgICB5ID0gNyAqIHNpbigyKihzK2UpKTsKICAgIHJldHVybiB5Owp9Cgp2b2lkIEp1c3REb0l0KGRvdWJsZSAmYSxkb3VibGUgJmIpCnsKICAgICAgICAgICAgdCA9IChhICsgYikgLyAyLjA7CiAgICAgICAgICAgIHkgPSBmdW5jKGEsIGIsICAtIGVwcyk7CiAgICAgICAgICAgIHggPSBmdW5jKGEsIGIsICBlcHMpOwogICAgICAgICAgICBpZiAoeSA8PSB4KSAgICBhID0gdDsKICAgICAgICAgICAgZWxzZSAgIGIgPSB0OwogICAgICAgICAgICAvLyDRh9C10Lot0LHQu9C+0LogCiAgICAgICAgICAgICAgICAgY291dCA8PCAidD0gIiA8PCB0IDw8IlxuIjsKICAgICAgICAgICAgICAgICBjb3V0IDw8ICJhPSAiIDw8IGEgPDwiIGI9IiA8PCBiIDw8IlxuIjsKICAgICAgICAgICAgICAgICBjb3V0IDw8ICJ4PSAiIDw8IHggPDwiIHk9IiA8PCB5IDw8IlxuIjsKICAgICAgICAgICAgICAgICBjb3V0IDw8ICJmYWJzKGIgLSBhKT0gIiA8PCAgZmFicyhiIC0gYSkgPDwiXG4iOwogICAgICAgICAgICAvLyAKICAgICAgICAgICBpZiAoIGZhYnMoYiAtIGEpIDwgZXBzKSByZXR1cm47CiAgICAgICAgICAgIEp1c3REb0l0KCBhLCBiKTsKfQoKaW50IG1haW4oKQp7CiAgIGEgPSAyOwogICBiID0gNjsKICAgSnVzdERvSXQoIGEsIGIpOwogICBjb3V0IDw8ICJPdHZldDogIiA8PCBmdW5jKGEsIGIpOwogICAgcmV0dXJuIDA7Cn0=