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