#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; // конец программы
}