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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2011, 19:47   #1
Андрей979
 
Регистрация: 21.10.2011
Сообщений: 4
По умолчанию Вычислить сумму ряда на Си

Доброго времени суток!
Помогите вычислить сумму ряда на Си. Условие такое:
f(x)=∑ от i=0 до бесконечности ((-1)^i(4i+1))/(4i+1)(2i)!
значок "^" - степень
Андрей979 вне форума Ответить с цитированием
Старый 10.11.2011, 14:02   #2
<- DelpHIFanat ->
Пользователь
 
Аватар для <- DelpHIFanat ->
 
Регистрация: 07.11.2011
Сообщений: 58
По умолчанию

Ну, насчёт, рассчитать до бесконечности, не знаю как, а, вот, до определённого числа n - знаю (если n >= 5 результат получается один и тот же). Если компилятор не тормозит программу после выполнения, нужно раскомментировать закомментированные строки.
Код:
#include <stdio.h>
//#include <conio.h>

unsigned long fakt(unsigned short);
long IntPower(int, int);

int main()
{
    unsigned short n;
    printf("n = ");
    scanf("%u", &n);

    unsigned short i;
    double Sum = 0;
    for (i = 0; i <= n; i++)
        Sum += (double)(IntPower(-1, i) * (4 * i + 1)) / ((4 * i + 1) * fakt(2 * i));

    printf("Sum = %f", Sum);

	/*puts("\n======================\n\nPress ANY KEY!!!");
	getch();*/
	return 0;
};

unsigned long fakt(unsigned short n)
{
    if (n < 2)
        return 1;
    else
    {
        unsigned long f = 1;
        unsigned short i;
        for (i = 1; i <= n; i++)
            f *= i;
        return f;
    }
}

long IntPower(int x, int n)
{
    if (n == 0)
        return 1;
    unsigned int i = 1;
    long Pow = 1;
    for (i = 1; i <= n; i++)
        Pow *= x;
    return Pow;
}
Для компилятора Microsoft Visual Studio (студия любит тупить) код должен выглядеть так:
Код:
#include <stdio.h>
#include <conio.h>

unsigned long fakt(unsigned short);
long IntPower(int, int);

int main()
{
    unsigned short n;
	unsigned short i;
	double Sum = 0;
    printf("n = ");
    scanf("%u", &n);

    for (i = 0; i <= n; i++)
        Sum += (double)(IntPower(-1, i) * (4 * i + 1)) / ((4 * i + 1) * fakt(2 * i));

    printf("Sum = %f", Sum);

	puts("\n======================\n\nPress ANY KEY!!!");
	_getch();
	return 0;
};

unsigned long fakt(unsigned short n)
{
    if (n < 2)
        return 1;
    else
    {
        unsigned long f = 1;
        unsigned short i;
        for (i = 1; i <= n; i++)
            f *= i;
        return f;
    }
}

long IntPower(int x, int n)
{
    unsigned int i = 1;
    long Pow = 1;
	if (n == 0)
        return 1;
    for (i = 1; i <= n; i++)
        Pow *= x;
    return Pow;
}
Лучше вообще не иметь знаний о чём-то, чем иметь неправильные знания об этом!..
<- DelpHIFanat -> вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить сумму ряда C++ AleksaxeYa Помощь студентам 3 11.01.2011 11:13
Вычислить сумму ряда Rustamel Microsoft Office Excel 2 19.04.2010 23:19
вычислить сумму ряда у=1*3+3*5+5*7...+31*33 dima.m Помощь студентам 2 29.03.2010 21:05
вычислить сумму ряда у=1*3+3*5+5*7...+31*33 lena.h Microsoft Office Excel 2 28.03.2010 16:34
Вычислить сумму ряда Alex1991 Помощь студентам 1 09.11.2008 19:22