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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2012, 20:50   #1
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию Вычисления с точностью.

Доброго времени суток, требуется помощь.
Вычисления с точностью до 0.0001. Задание прикрепил ниже. Суть проблемы в том, что оно мне не хочет выдавать результат.

Взялся по старинке за калькулятор, и после нехитрых манипуляций понял, что первое значение уже выскакивает за пределы ... .
Даже если так, вопрос тогда поставлю иначе, правильно ли я написал программу?( возможно что-то не учел ).



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


using namespace std;

void main ()
{
	double F, curr, k, x, s, fact;

	F=1;
	curr=1;
	k=1;
	x=1;
	fact=1;

	while ( abs(curr) > 0.0001 )
	{    
		curr=1+(sin(k*x)/fact);
		F*=curr;
		fact*=k;
		k++;
	}
	cout<<"F="<<F<<"\n";
	_getch();
}
Вложения
Тип файла: rar Задача.rar (518.8 Кб, 10 просмотров)
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 27.04.2012, 22:32   #2
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

c 0.0001 нужно сравнивать не результат, а текущее приращение в шаге цикла
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 29.04.2012, 12:51   #3
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Замечание учел, но суть проблемы та же.

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


using namespace std;

void main ()
{
	setlocale(LC_ALL,"Rus");
	float F, curr, k, x, fact;

	F=1;
	curr=1;
	k=1;
	x=1;
	fact=1;

	while ( fabs(F) > 0.0001 )
	{    
		curr=1+sin(k*x)/fact;
		F*=curr;
		fact*=k;
		k++;
	}
	cout<<"F="<<F<<"\n";
	_getch();
}
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисления с заданной точностью gessi Паскаль, Turbo Pascal, PascalABC.NET 8 29.10.2014 21:40
Вычисления с заданной точностью DemonPro Паскаль, Turbo Pascal, PascalABC.NET 0 20.10.2011 17:04
вычисления с точностью for_tuna Фриланс 9 18.02.2010 20:47
Си. Вычисления с заданной точностью. DedSero Помощь студентам 0 03.11.2009 11:08