Добавил:
oih07968
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
/*
В основной функции main реализовать демонстрацию работы
разработанной пользовательской функции. Ввод и вывод
всех данных осуществляется в функции main.
Реализовать функцию вычисления значения натурального
логарифма числа (|x|<1) по формуле: . В качестве
параметров в функцию передается: x и абсолютная погрешность
вычислений. Все параметры и возвращаемое значение функции
имеют вещественный тип. Используя разработанную функцию
вывести таблицу значений на промежутке [A,B] с шагом H.
Точность расчета задается пользователем.
*/
#include <stdio.h>
#include <math.h>
#include <locale.h>
double ln(double x, double eps);
int main(void)
{
setlocale(LC_ALL, "Ru");
double a = -1.0, b = 1.0, h = 0.1, eps = 0.001;
printf("Введите точность: ");
do
{
scanf("%lf", &eps);
if(eps > 0 && eps < 1) break;
printf("Некорректный ввод! Значение должно быть более 0 и менее 1. Попробуйте снова: ");
} while(1);
while(a < b)
{
printf("%lf\n", ln(a, eps));
a += h;
}
return 0;
}
double ln(double x, double eps)
{
double sum = 0.0, next = x, i = 0.0;
while (fabs(next) > eps)
{
sum += next;
i++;
next = pow(-1.0, i) * pow(x, i + 1.0) / (i + 1.0);
}
return sum;
}