Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Задача на цикл. (http://forum.oszone.net/showthread.php?t=186552)

Hardcore 26-09-2010 19:55 1504986

Задача на цикл.
 
Я как бы понял как решать эту задачу но у меня тут где что то не так.
Подскажите.
Задача такая.

x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-x^11/11!+x^13/13!

input 1.
output 0.841471. (Это ответ правильный)

Я решил это так.

#include <iostream>
using namespace std;
int main () {
double x;
cin>>x;
double n;
double c=1,b,d=1,s1,s;
for (int i=3; i<=11; i+=4)
{
b=pow(x,i);
c=+b;
}
{
for (n=3; n<=11; n+=4)
d*=n;
}
s1=c/d;
double y,z=1,k=1,s2;
for (int i=5; i<=13; i+=4)
{
y=pow(x,i);
z=+y;
}
{
for (n=5; n<=13; n+=4)
k*=n;
}
s2=z/k;
s=s1-s2;
cout<<s<<endl;
return 0;
}

когда я ввожу 1

выходит 0.0026196 (а это мой)

можете помочь?

Hector 26-09-2010 20:01 1504989

Для начала тег CODE + комментарии, а также вменяемое условие задачи (что с этим выражением надо делать?)

Hardcore 26-09-2010 20:16 1505013

Задача x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-x^11/11!+x^13/13!

Надо его решить через оператор while или for. короче через цикл.

Условие такое. надо ввести 1-ку и получить ответ output 0.841471

А когда я ввожу 1-ку у меня выходит 0.0026196.

Hector 26-09-2010 22:45 1505154

а зачем здесь цикл, если просто нужно посчитать выражение, или я чего-то не понял?

lxa85 27-09-2010 00:23 1505233

Hector, видимо для получения значений степеней, факториалов и последовательной расстановки знаков +/-
Цитата:

Цитата Hardcore
можете помочь? »

Расставь комментарии, оформи тегом code и используй трассировщик.
Цитата:

Цитата Hardcore
Код:

for (int i=3; i<=11; i+=4)
{
b=pow(x,i);
c=+b;
}
{
for (n=3; n<=11; n+=4)
d*=n;
}
s1=c/d

»

Тебе не кажется что это чушь?
Ну ка сложи 2 дроби 1/3! + 1/5! и посмотри, что у тебя в коде.
2.
Код:

for (n=3; n<=11; n+=4)
d*=n;
}

- это цикл получения факториала???
Ссылка на википедию с определением факториала нужна?

Во вторых двух циклах все тоже самое. n'ый раз тебе говорю - не пиши код сразу, реши 2,3,5 устных примера, найди повторяющиеся операции, посмотри как они выполняются.
И только потом пиши код, а не сочиняй его на ходу.
Ну или скажу проще.
Где анализ задачи и где блок схема алгоритма?

Hardcore 27-09-2010 16:42 1505640

Ты говоришь как мой препод. Всё очень смутно. Можешь просто укозать типа здесь ошибка и дать совет?)

lxa85 27-09-2010 18:00 1505694

Цитата:

Цитата Hardcore
ы говоришь как мой препод. »

Открою тебе тайну, я тоже препод.
Цитата:

Цитата Hardcore
Можешь просто указать типа здесь ошибка и дать совет?) »

Я тебе сказал, в каждой паре циклов - ошибка. Факториал считается не верно, дроби вычисляются тоже не верно.
Я даже сказал что тебе сделать, чтобы найти ошибку и избежать ее повтора.
Ты не ответил не на один мой вопрос (а их не менее 3х штук).
Пока ты не найдешь свою ошибку сам, от исправленного (а в данном случае переписанного с нуля, т.к. правильного здесь только блок объявления переменных var) кода проку ноль.
Ты учишься, ошибки это нормально. Так и ищи их сам. Все что для этого необходимо у тебя есть.

P.S. Лень - это не отмазка :)


Время: 10:53.

Время: 10:53.
© OSzone.net 2001-