Загрузка данных


#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;
}