Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2017, 19:54   #1
leonid_spartak
Пользователь
 
Регистрация: 18.02.2017
Сообщений: 43
По умолчанию Ряд Тейлора в Си

Помогите составить ряд
20170309_004955.jpg
leonid_spartak вне форума Ответить с цитированием
Старый 08.03.2017, 19:58   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Скажи, как в Си найти факториал?
ura_111 вне форума Ответить с цитированием
Старый 08.03.2017, 20:10   #3
leonid_spartak
Пользователь
 
Регистрация: 18.02.2017
Сообщений: 43
По умолчанию

Вот у меня тот же вопрос, сам-то ряд я могу составить, но без факториала, а он нужен, в этом-то вся и проблема
Есть код вычисления самого факториала, но мне нужно ряд составить
Вот код самого факториала:
#include <stdio.h>
#include <conio.h>

long int factorial(long int n)
{
if (n == 0 || n == 1) return 1;
return n * factorial(n - 1);
}

int main ()
{
long int n;
printf("Calculation n!\nInput n: ");
scanf("%d", &n);
if (n >= 0)
printf("%d! = %d\n", n, factorial(n));
else
printf("Error. n must be >= 0\n");
_getch();
return 0;
}

Последний раз редактировалось leonid_spartak; 08.03.2017 в 20:14.
leonid_spartak вне форума Ответить с цитированием
Старый 08.03.2017, 20:27   #4
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Вроде забацал:
Код:
#include <stdio.h>
#include <conio.h>

long int factorial(long int n)
{
	if (n == 0 || n == 1) return 1;
	return n * factorial(n - 1);
}

int main()
{
	double S = 1;

	S = S + factorial(1);
	S = S + factorial(2);
	S = S + factorial(3);
	S = S + factorial(4);
	//...

	printf("S= %f\n", S);

	_getch();
	return 0;
}
Только я сумму подсчитал для ряда: S=1!+2!+3!+4!+...

А ну поправь под себя и проверь (с ручным счётам), чтобы результат был нормальным.
ura_111 вне форума Ответить с цитированием
Старый 08.03.2017, 20:40   #5
leonid_spartak
Пользователь
 
Регистрация: 18.02.2017
Сообщений: 43
По умолчанию

Спасибо вам большое, очень хорошо помогли, я наконец-то разобрался как работает данная функция, теперь многие задачи упростились
leonid_spartak вне форума Ответить с цитированием
Старый 08.03.2017, 21:04   #6
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Вот усложнил (проверки ввёл!):

Код:
#include <stdio.h>

double factorial(int n)
{
	if (n == 0 || n == 1) return 1;
	return n * factorial(n - 1);
}

int main()
{
	int n;
	printf("Calculation n!\nInput n: ");
	scanf("%d", &n);
	if (n > 0)
	{
		int i = 0;
		double S = 1;
		if (n > i)	{ S = S + 1 / factorial(i);	i++; }
		if (n > i)	{ S = S + 1 / factorial(i);	i++; }
		if (n > i)	{ S = S + 1 / factorial(i);	i++; }
		if (n > i)	{ S = S + 1 / factorial(i);	i++; }
		if (n > i)	{ S = S + 1 / factorial(i);	i++; }
		if (n > i)	{ S = S + 1 / factorial(i);	i++; }
		if (n > i)	{ S = S + 1 / factorial(i);	i++; }
		if (n > i)	{ S = S + 1 / factorial(i);	i++; }
		if (n > i)	{ S = S + 1 / factorial(i);	i++; }
		if (n > i)	{ S = S + 1 / factorial(i);	i++; }
		//...	
		printf("S= %f\n", S);
	}
	else
		printf("Error. n must be >= 0\n");
	
	scanf("%d", &n); // чтобы консоль не звкрывалась
	return 0;
}
С ручным счётам проверь (я формулу поправил).
ura_111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ряд Тейлора jesterXXX Помощь студентам 0 02.12.2012 22:08
Ряд Тейлора Felic Помощь студентам 2 02.12.2012 19:03
Ряд Тейлора fpm.altyev Помощь студентам 0 19.06.2012 17:08
вычислить функцию с по-щью разложения в ряд.(Ряд Тейлора) feelstor Помощь студентам 2 26.12.2011 03:44
Ряд Тейлора siriusz Общие вопросы C/C++ 6 06.02.2009 20:26