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


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(void)
{
    double a, b, h; // границы отрезка [a, b] и шаг h
    double x, y;    // аргумент и значение функции
    double S;       // сумма для второй ветки
    int k;          // счетчик цикла суммы

    system("chcp 1251"); // русская кодировка

    printf("Введите a: ");
    scanf("%lf", &a); // ввод левой границы

    printf("Введите b: ");
    scanf("%lf", &b); // ввод правой границы

    printf("Введите h: ");
    scanf("%lf", &h); // ввод шага

    if (h <= 0.0 || a > b) // проверка корректности данных
    {
        printf("Ошибка ввода\n");
        system("pause");
        return 1;
    }

    printf("\n    x    |   f(x)  \n");
    printf("-------------------\n");

    x = a; // начальная точка

    while (x <= b + h / 2.0) // цикл табуляции от a до b
    {
        if (x <= 0.0) // первая ветка функции
        {
            y = pow(2.0 - x, 2.0 - x); // (2 - x)^(2 - x)
        }
        else // вторая ветка функции
        {
            S = 0.0; // обнуление суммы
            for (k = 3; k <= 9; k++) // сумма от 3 до 9
            {
                S += pow(x, -k); // добавление x^(-k)
            }
            y = S; // результат суммы
        }

        printf("%8.4lf | %8.4lf\n", x, y); // вывод строки таблицы

        x += h; // следующий шаг
    }

    printf("-------------------\n");

    system("pause"); // пауза консоли
    return 0;        // конец программы
}