/**
* @file Main.cpp
* @autor Коваленко І. В. 515б
* @date 13.03.2023
* @brief Лабораторна робота №2, варіант 11
*
* Модульне тестування. Завдання 1
*/
#include "Foonk.h"
#include <stdio.h>
#include <locale.h>
#include <math.h>
int main(void) {
//подключение языковых пакетов
setlocale(LC_ALL, "ru");
//создание ключевых переменных
double h = 0, x;
do {
printf("Введите размер шага х: ");
scanf("%lg", &h);
printf("\n");
}while(h <= 0.1 || h >= 1);
printf("+===============+=======================+=======================+=======================+\n");
printf("| x | S(x) | Y(x) | |Y(x) - S(x)| |\n");
printf("+===============+=======================+=======================+=======================+\n");
for (x = 0.1; x < 1; x += h) {
printf("|\t%.6f|\t\t%.6f|\t\t%.6f|\t\t%.6f|\n", x, S(x), Y(x), fabs(Y(x) - S(x)));
printf("+===============+=======================+=======================+=======================+\n");
}
printf("|\t%.6f|\t\t%.6f|\t\t%.6f|\t\t%.6f|\n", 1.0, S(1.0), Y(1.0), fabs(Y(1.0) - S(1.0)));
printf("+===============+=======================+=======================+=======================+\n");
}
#define _USE_MATH_DEFINES
#define PRIVATE static
#define PUBLIC
double S(double x);
double Y(double x);
double rec(double n);
#include "Foonk.h"
#include <math.h>
double S(double x) {
double answer_of_suming_S = 0;
for (int n = 0; n <= 100; n++) {
answer_of_suming_S += pow(x, 2 * n + 1) / rec(2 * n + 1);
}
return answer_of_suming_S;
}
double Y(double x) {
return (pow(M_E, x) - pow(M_E, -x)) / 2;
}
double rec(double n) {
if (n == 0) {
return 1;
}else if (n > 0) {
return (n * rec(n - 1));
}
}