/*
* @file Lab_2_1.cpp
* @author Дарчук Г.С., 515i
* @date 13.03.2025
* @brief Лабораторна робота №2, варіант 22
*
* Модульне тестування. Завдання 1
*/
// Підключення стандартних бібліотек
#include <stdio.h>
#include <math.h> // Для використання математичних функцій
#include <locale.h>
// Підключення заголовочного файлу з реалізацією функцій
#include "functionsModule.h"
int main(void)
{
// Оголошення змінних для обчислень
double x = a; // Початкове значення x
double S, Y, Mod; // Змінні для результатів обчислень
// Цикл для обчислення значень у заданому діапазоні
printf("| x | S(x) | Y(x) | Mod |\n");
for (; x <= b; x += h)
{
S = functionS(x); // Виклик функції для обчислення S(x)
Y = functionY(x); // Виклик функції для обчислення Y(x)
Mod = fabs(Y - S); // Обчислення модуля різниці між Y та S
// Виведення інформації у вигляді таблиці
printf("|-------|-------|-------|-------|\n");
printf("|%7.1f|%7.5f|%7.5f|%7.5f|\n", x, S, Y, Mod);
}
printf("|-------|-------|-------|-------|\n");
// Завершення роботи програми
return 0;
}
/*
* @file functionsModule.h
* @author Дарчук Г.С., 515i
* @date 13.03.2025
* @brief Лабораторна робота №2, варіант 22
*
* Модульне тестування. Завдання 1
*/
// Перевіряє, чи не визначено макрос FUNCTIONSMODULE_H
#ifndef FUNCTIONSMODULE_H
// Якщо макрос не визначений, то визначає його
#define FUNCTIONSMODULE_H
// Оголошення функцій для обчислення S(x) та Y(x)
double functionS(double x);
double functionY(double x);
// Оголошення констант для діапазону значень
const static double a = 0.1; // Початкове значення x
const static double b = 1; // Кінцеве значення x
const static double n = 80; // Кількість ітерацій
const static double h = 0.1; // Крок зміни x
// Завершення умови перевірки та визначення макроса
#endif
/*
* @file functionsModule.cpp
* @author Дарчук Г.С., 515i
* @date 13.03.2025
* @brief Лабораторна робота №2, варіант 22
*
* Модульне тестування. Завдання 1
*/
// Підключення заголовних файлів стандартних бібліотек мови C
#include <stdio.h>
#include <math.h> // Для використання математичних функцій
// Підключення заголовного файлу для використання констант
#include "functionsModule.h"
// Функція для обчислення суми ряду S(x)
double functionS(double x)
{
double sum = 0; // Змінна для накопичення суми
double factorial; // Змінна для обчислення факторіалу
// Цикл для обчислення суми ряду
for (int i = 0; i <= n; i++)
{
factorial = 1; // Початкове значення факторіалу
for (int j = 2; j <= (2 * i + 1); j++) factorial *= j; // Обчислення факторіалу (2i + 1)!
sum += pow(x, (2 * i + 1)) / factorial; // Додавання члена ряду до суми
}
return sum; // Повернення значення S(x)
}
// Функція для обчислення значення Y(x)
double functionY(double x)
{
double sum = (exp(x) - exp(-x)) / 2;
return sum;
}