Задача на C++
необходимо составить программу, которая на отрезке
изменения переменной Х от действительного числа А до действительного числа
В с шагом h ( A < B, h < =(A-B)/2) будет определять
при каком минимальном значении Х из
отрезка от А до В значение функции максимально.
Решить с использованием цикла For.
По дате
По рейтингу
1234567891011121314151617181920212223242526
#include <iostream>
typedef const double& dbl;
double min(dbl a, dbl b, dbl c)
{
double ret = a;
if (ret > b) ret = b;
if (ret > c) ret = c;
return ret;
}
int main()
{
double A, B, c, d, y, h;
std::cout << "Setup A, B, h, c, d, y :\n";
std::cin >> A >> B >> h >> c >> d >> y;
auto f = [&](dbl x)
{
if (x > 0 && exp(-x) >= y) return min(x * x * x, exp(-x + 1), std::max(log(x), x + y));
if (x <= 0 && exp(-x) >= y) return 1 - x * x;
return c * c + d * cos(x + y);
};
double max_x = f(A);
for (double x = A + h; x <= B + h / 2; x += h) max_x = std::max(max_x, f(x));
std::cout << "Max f(x) = " << max_x;
}