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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2010, 11:54   #1
Tador
 
Регистрация: 27.11.2010
Сообщений: 9
Вопрос Вычисление суммы ряда в С++

Срочно нужно решение задачи:написать программу по С++:
Вычислить сумму ряда -1/(2*1!)+1/(4*2!)-1/(8*3!)+1/(16*4!)-1/(32*5!)... при шаге L=0,001
Tador вне форума Ответить с цитированием
Старый 07.12.2010, 13:55   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
при шаге L=0,001
При шаге кого?
p51x вне форума Ответить с цитированием
Старый 07.12.2010, 14:00   #3
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 823
По умолчанию

Он,наверное, имеет ввиду точность,т.е. считать до тех пор,пока модуль n-го члена последовательности минус модуль n+1-го члена последовательности не будет меньше ( равен) этого L.
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 07.12.2010, 15:51   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Точность и шаг даже пишутся по разному...
p51x вне форума Ответить с цитированием
Старый 07.12.2010, 15:57   #5
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 823
По умолчанию

Мммм...черт,я этого не заметил.. Ну пусть тогда этот ряд куда-нибудь шагает..))
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 07.12.2010, 17:24   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну может ТС разложил какую-то функцию в ряд и пропустил х в ряде... и ему надо посчитать...

П.С. Ждем телепатов или ТС
p51x вне форума Ответить с цитированием
Старый 07.12.2010, 17:32   #7
Tador
 
Регистрация: 27.11.2010
Сообщений: 9
По умолчанию

Цитата:
Он,наверное, имеет ввиду точность,т.е. считать до тех пор,пока модуль n-го члена последовательности минус модуль n+1-го члена последовательности не будет меньше ( равен) этого L
Ну да.Чтобы считало сумму ряда с точностью 0,001

Нужно,вычислить сумму ряда(S) с точностью L=0.001

Узнал по подробнее.Нужно,вычислить сумму ряда(S) с точностью L=0.001.

Последний раз редактировалось Stilet; 08.12.2010 в 19:08.
Tador вне форума Ответить с цитированием
Старый 07.12.2010, 21:20   #8
Prime123
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 79
По умолчанию

В твоём случае:
1.Нужно выделить общий член ряда
2.Некоторой перменной a присвоить первое значение первого члена ряда
3.В цикле домножать переменную a на общий член ряда,взятый со знаком минус
4.Прибавлять в том же цикле к переменной,в которой хранится сумма
5.Использовать нужно цикл с постусловием,условие,как писалось выше,модуль разности n-го члена и n+1-го члена должен быть меньше либо равен твоей погрешности L


Однако,я поздно,только заметил,надеюсь ещё актуально
Если я чем-то вам помог-не стесняйтесь,ставьте +

Если ошибаюсь-поправляйте,учусь на ошибках,реагирую адекватно
Prime123 вне форума Ответить с цитированием
Старый 07.12.2010, 22:44   #9
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 823
По умолчанию

ну n-ый член последовательности-это ((-1)^n)/((2^n)*n!)...код чуть позже напишу.
P.S.:Не уверен,что правльно все считается,проверьте,но вроде все логично.

Код:
#include "stdafx.h"
#include "math.h"
#include "iostream"

using namespace std;

int  fuct(int n);
float Pow(float a,int n);
float N(int n);

int _tmain(int argc, _TCHAR* argv[])
{
	
	float E=0.001;
	bool flag=true;
	int i=1;
	float Sum=N(i);
	while (flag)
	{
		float pred=N(i);
		float prev=N(i+1);
		Sum+=prev;
		if((fabs(pred)-fabs(prev))<=E)
			flag=false;
		i++;
	}
	cout<<"Sum= "<<Sum;
	getchar();
	return 0;
}
float N(int n)
{
	return Pow(-1,n)/(Pow(2,n)*fuct(n));
}
int  fuct(int n)
{
	if(n==0 || n==1) return 1;
	
	else
	{
		int s=1;
		for(int i=1;i<=n;i++)
			s*=i;
		n=s;
	}
	return n;
}
float Pow(float a,int n)
{
	float s=a;
	if(n==0)
		return 1;
	for(int i=1;i<n;i++)
			s*=a;
	if(n>0)
		return s;
	return 1/s;
}
P.P.S. Вообще-то давно не писал на С++,шарп поприятней.
Не давай организму поблажки, каждый день тренируй его в шашки..

Последний раз редактировалось Скарам; 07.12.2010 в 23:20.
Скарам вне форума Ответить с цитированием
Старый 07.12.2010, 23:12   #10
Tador
 
Регистрация: 27.11.2010
Сообщений: 9
По умолчанию

Поскольку я новичек в этом,то не совсем понятно.А как это будет выглядеть на практике?))Мне нужна сама программа на С++.Поэтому очень надеюсь на полную версию кода моей задачи

Последний раз редактировалось Tador; 07.12.2010 в 23:16.
Tador вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисление суммы ряда. Си kira_truelove Помощь студентам 4 10.10.2010 21:36
вычисление суммы членов ряда...(с++) DiLemma Помощь студентам 0 20.04.2010 18:25
Вычисление суммы ряда 666Rayne666 Помощь студентам 3 25.12.2009 22:39
вычисление суммы ряда с точностью OXED Помощь студентам 5 30.06.2009 06:56