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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2013, 14:10   #1
Foxlin
Пользователь
 
Регистрация: 05.12.2013
Сообщений: 16
По умолчанию Помогите найти ошибку! На выходе неверный ответ

Программа для нахождения суммы числового ряда
image014.gif

Пример входных данных:

n=3 x=1

Пример выходных данных:

0.541667

У меня же на выходе получается 0,540302
В чем ошибка?
Код:
#include <conio.h>
#include <clocale>
#include <stdio.h>
#include <math.h>

int main()
{
	setlocale (LC_ALL, "");
	float x,i,s,t;
	int n;

	printf ("Введите x: ");
	scanf("%f",&x);

	printf ("Введите n: ");
    scanf ("%d", &n);

	s=1;
	t=1;
	i=1;
	
	while (i<n)
	{
		i=i+1;
        t=-t*x*x/((2*n-1)*(2*n));
        s=s+t;
	}

	s=cos (x);

	printf ("cos x=%f", s);

	getch();
	return 0;
}
Foxlin вне форума Ответить с цитированием
Старый 24.12.2013, 15:12   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Код:
#include <conio.h>
#include <clocale>
#include <stdio.h>
#include <math.h>

int main()
{
	setlocale (LC_ALL, "");
	float x,i,s,t;
	int n;

	printf ("Vvedite x: ");
	scanf("%f",&x);

	printf ("Vvedite  n: ");
    scanf ("%d", &n);

	s=1;
	t=1;
	i=1;
	
	while (i<=n)
	{
	
        t=(-t*x*x)/((2*i-1)*(2*i)); // тут ставим не n, а i. То что перечисляется
        s=s+t;
        	i=i+1; // перенес в конец, т.к. у тебя тогда пропускалось при n = 1 член ряда
	}

	printf ("cos x=%f \n", cos (x)); // результат через функцию косинуса
	printf ("f(x) = %f", s); // через ряд Тейлора (то что считали)
	getch();
	return 0;
}
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 24.12.2013, 15:59   #3
Foxlin
Пользователь
 
Регистрация: 05.12.2013
Сообщений: 16
По умолчанию

Если сделать while (i<n), то ответ точь в точь какой надо!
Спасибо)
Foxlin вне форума Ответить с цитированием
Старый 24.12.2013, 16:06   #4
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Цитата:
Сообщение от Foxlin Посмотреть сообщение
Если сделать while (i<n), то ответ точь в точь какой надо!
Спасибо)
то что <=, будет влиять лишь на точность... если строго <, то при последнем i = n не будет член считаться...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку - StrToFloat выдаёт ошибку EConvertError для ячеек StringGrid (Delphi) Artsiom Помощь студентам 10 18.12.2013 14:10
Программа выдает неверный ответ(c++) inmanika Помощь студентам 5 17.11.2011 21:23
помогите найти ошибку adr JavaScript, Ajax 2 11.01.2010 14:55
Помогите найти ошибку! junkie Паскаль, Turbo Pascal, PascalABC.NET 2 03.05.2009 14:22