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


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