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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2009, 14:19   #1
BackSlash
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 39
Счастье Вычисление суммы с данной точностью.Код внутри.

Не могу понять что делать с факториалом, как его так записать в приращение.
И что делать с условием -1<=x<=1.
Вот мои наработки

Код:
#include "stdafx.h"

int main (void) 
{
int i
    n=1;
printf("Enter X=");
scanf("%d",&x);
while (a>0.000001 || a<-0.000001)
{
	s+=a;
	n++;
	a=(pow(-1,n)*pow(x,n-1))/(n+1)
}


return 0;
}
Изображения
Тип файла: jpg Задача.JPG (25.9 Кб, 81 просмотров)
BackSlash вне форума Ответить с цитированием
Старый 21.12.2009, 14:33   #2
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

Код:
int factorial(int n)
{
      if (n == 0 || n == 1) return 1;
      int f = 1;
      for (int i = 2; i <= n; i++)
             f = f * i;
      return f;
}
либо рекурсией
Код:
int factorial(int n)
{
      if (n == 0 || n == 1) return 1;
      return n * factorial(n - 1);
}
Цитата:
И что делать с условием -1<=x<=1.
проверять, когда введено x, принадлежит ли оно отрезку [-1; 1]:
Код:
scanf("%d", &x);
if (x > 1 || x < - 1) 
{
      printf("Inadmissible value of a variable");
      system("pause");
      return 0;
}

Последний раз редактировалось Alex_FF; 21.12.2009 в 14:44.
Alex_FF вне форума Ответить с цитированием
Старый 21.12.2009, 15:24   #3
BackSlash
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 39
По умолчанию

вот состряпал =)
Код:
#include "stdafx.h"
int factorial(int n)
{
      if (n==0 || n==1) return 1;
      int f =1;
      for (int i=2;i<=n;i++)
             f=f*i;
      return f;
}
float infinite_sum (float x)
{
int n=1;
float s=0,
      a=0;
 while (a>0.000001 || a<-0.000001)
{
	s+=a;
	n++;
	a=( (float) pow( (float)-1,(int)n) ) * ( (float)pow((float)x,(int)n-1) )/( factorial(n-1) );
}
 return s;
}

using namespace std;

int main (void) 
{
int n=1;
float x,
      s=0,
      a=0,
	  Q;
printf("Enter X=");
scanf_s("%d",&x);
if (x > 1 || x < - 1) 
{
      printf("Inadmissible value of a variable");
      system("pause");
      return 0;
}
Q=infinite_sum (x);
printf ("s=%f",Q);
return 0;
}
только при любом значении х получаю в ответе ноль.
Это изза того что пременная s=0 ? а как же ее по другому инициальзировать?
BackSlash вне форума Ответить с цитированием
Старый 21.12.2009, 15:28   #4
BackSlash
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 39
По умолчанию

Alex_FF зайдите в icq, please =)
BackSlash вне форума Ответить с цитированием
Старый 21.12.2009, 15:57   #5
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

Код:
#include <iostream>
#include <math.h>

using namespace std;

int factorial(int n)
{
	if (n==0 || n==1) return 1;
	int f =1;
	for (int i=2;i<=n;i++)
		f=f*i;
	return f;
}

float infinite_sum (float x)
{
	int n = 1;
	float s = 0,
		  a= - 0.5;
	while (abs(a) > 0.000001)
	{
		s += a;
		n++;
		a = pow((float)-1,(int)n) * pow((float)x,(int) n - 1) /  factorial(n-1);
	}
	return s;
}


int main (void)
{
	float x,
		  s = 0,
		  a = 0,
		  Q;
	printf("Enter X = ");
	scanf("%f",&x);
	if (x > 1 || x < - 1)
	{
		printf("Inadmissible value of a variable");
		system("pause");
		return 0;
	}
	Q = infinite_sum (x);
	printf ("s = %f\n",Q);
	system("pause");
	return 0;
}
Alex_FF вне форума Ответить с цитированием
Старый 21.12.2009, 16:18   #6
BackSlash
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 39
По умолчанию

Ага, я понял где у меня ошибки, в сканфе тип- %f, и первое значение а=-0.5.
Спасибо большое
BackSlash вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нахождение суммы с некотрой точностью ??? Valko Помощь студентам 4 16.11.2009 22:58
нахождения суммы ряда с заданной точностью E pinch000 Общие вопросы C/C++ 1 06.11.2009 13:03
вычисление суммы ряда с точностью OXED Помощь студентам 5 30.06.2009 06:56
Вычисление функции с заданной точностью. Absent Помощь студентам 1 21.11.2008 13:30