#include <iostream>
#include <cmath> // Для математических функций (sin, cos, pow)
#include <iomanip> // Для манипуляторов форматирования (setw, fixed, setprecision)
using namespace std;
int main() {
setlocale(LC_ALL, "Russian"); // Поддержка русского языка
// Объявляем переменные для ввода
double a, b, h;
// Запрашиваем данные у пользователя
cout << "Введите начало отрезка a: ";
cin >> a;
cout << "Введите конец отрезка b: ";
cin >> b;
cout << "Введите шаг h: ";
cin >> h;
// Проверка на корректность ввода (чтобы шаг был положительным)
if (h <= 0) {
cout << "Ошибка: шаг должен быть больше нуля!" << endl;
return 1; // Завершаем программу с ошибкой
}
double x = a; // Переменная цикла, начинаем с начала отрезка
// Выводим "шапку" таблицы
cout << "\n------------------" << endl;
cout << setw(6) << "x" << " | " << setw(10) << "y" << endl;
cout << "------------------" << endl;
// Используем цикл с предусловием while
// Добавляем (h / 100), чтобы избежать ошибок округления при сравнении дробей
while (x <= b + (h / 100)) {
// Вычисление функции F(x) = sin^2(x) - cos(2x)
double y = pow(sin(x), 2) - cos(2 * x);
// Вывод значений в виде таблицы
cout << setw(6) << fixed << setprecision(1) << x
<< " | "
<< setw(10) << fixed << setprecision(2) << y << endl;
// Увеличиваем x на шаг h
x = x + h;
}
cout << "------------------" << endl;
return 0;
}