Запись математической формулы в программный вид - C (СИ)
Формулировка задачи:
Подскажите пожалуйста ка записать формулу в программный вид?
Решение задачи: «Запись математической формулы в программный вид»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
unsigned factorial(unsigned i) {
if (i == 0) {
return 1;
}
return i * factorial(i - 1);
}
double func(double x, unsigned i) {
return 1 + sin(x * i) / factorial(i);
}
double summ(double x, unsigned i) {
if (i == 0) {
return 0;
}
return func(x, i) + summ(x, i - 1);
}
int main() {
double x;
unsigned i;
printf("input x (float) and i (unsigned): ");
if (scanf("%lf%u", &x, &i) == 2) {
printf("result = %lf\n", summ(x, i));
}
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы сprintf, scanf и вычисления факториала и синуса.
- Определяем функцию вычисления факториала, которая принимает целое число и возвращает его, если это число 0, иначе рекурсивно вызывает себя, уменьшая число на 1, пока не достигнет 0.
- Определяем функцию вычисления значения функции в точке x с учетом степени i.
- Определяем функцию вычисления суммы ряда с использованием функции вычисления значения функции в точке x с учетом степени i.
- В функции main считываем значения x и i с помощью scanf.
- Вызываем функцию summ с переданными значениями x и i и выводим результат на экран.
- Возвращаем 0, чтобы указать, что программа успешно завершилась.