Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Вниз

ПОМОГИТЕ РАЗОБРАТЬСЯ С ЗАДАЧЕЙ   Найти похожие ветки 

 
Караед   (2006-12-07 17:05) [0]

Помогите пожалуйста с задачей не могу ни как её сделать:
Для данного x (вещественное число, вводится с клавиатуры) вычислить значение выражения:
x – x3/3! + x5/5! – x7/7! + x9/9! – x11/11! +  … .Вычисления производить до тех пор, пока разница между двумя соседними слагаемыми не станет меньше 0,00001 (выражение N! Называется "N факториал" и вычисляется как произведение всех чисел от 1 до N: N! = 1*2*3*4…*N). Для проверки сравните результат с синусом x. Правильно реализованные в программе вычисления в результате должны давать расхождение только в последних знаках после запятой.
Данную задачу нужно реализовать с помощью цикла While на PASCAL`Е(и ни как иначе).


 
iXT   (2006-12-07 17:12) [1]

С чем помочь? Написать функцию?


 
novill ©   (2006-12-07 17:18) [2]

> [0] Караед   (07.12.06 17:05)
Тут программы бесплатно не пишут. А помогают только тем,кто пытается делать сам :)

Как ты пробовал это сделать?


 
Андрей Сенченко ©   (2006-12-07 17:18) [3]

While abs(предыдущее - текущее) > 0,00001 do
begin

end;


 
Desdechado ©   (2006-12-07 17:19) [4]

x3/3!
это чего


 
Jeer ©   (2006-12-07 17:45) [5]


> Desdechado ©   (07.12.06 17:19) [4]



> это чего


Это попытка черного едальщика выругаться формулой.


 
Ega23 (from home)   (2006-12-07 18:51) [6]


> Данную задачу нужно реализовать с помощью цикла While на
> PASCAL`Е(и ни как иначе).


Сколько?


 
TUser ©   (2006-12-07 18:52) [7]

Интересно, сколько же местных все-таки нуждаются в расшифровке обозначения N!?


 
TUser ©   (2006-12-07 18:54) [8]

> и ни как иначе

Вот засада-то, а ведь наверняка есть стандартная функциевина в моделе math :)


 
Vga ©   (2006-12-07 19:21) [9]

function Series(x)
 local Res, OldRes, Power, Sign;
 OldRes=0;
 Res=x;
 Sign=-1;
 Pow=3;
 while math.abs(Res-OldRes)>0.0001 do
   OldRes=Res;
   Res=Res+Sign*(math.pow(x, Pow)/Fact(Pow));
   Pow=Pow+2;
   Sign=Sign*-1;
 end;
 return Res;
end;

Только это отнюдь не паскаль :)


 
Alien1769 ©   (2006-12-07 19:25) [10]

Напиши ход мыслей своих, даже без паскаля. А с паскалем можем помочь


 
Vga ©   (2006-12-07 19:26) [11]

> [10] Alien1769 ©   (07.12.06 19:25)

Это кому?


 
Alien1769 ©   (2006-12-07 19:29) [12]

автору ветки


 
Думкин ©   (2006-12-07 19:32) [13]

Тут недавно вычисляли синус 30-ю способами. Ищи в архивах. Удачи. Может до зачета успеешь.


 
Alien1769 ©   (2006-12-07 19:36) [14]


> Думкин ©   (07.12.06 19:32) [13]
> Тут недавно вычисляли синус 30-ю способами. Ищи в архивах.
>  Удачи. Может до зачета успеешь.


Ну вот все испортил, обидно :))


 
Думкин ©   (2006-12-07 19:44) [15]

> Alien1769 ©   (07.12.06 19:36) [14]

я? Да ты что? Код уже дали. :)
Но тут и такой момент. Если автор не почесался и не хочет, то вряд ли он и в архивы полезет. :)
К тому же после показа синуса, я бы на месте преподавателя предложил ему про косинус, а через неделю про экспоненту, через неделю про тангенс. А там и сессия закончится.


 
Vga ©   (2006-12-07 20:04) [16]

> [15] Думкин ©   (07.12.06 19:44)

Код не на паскале и с ошибкой :)


 
Думкин ©   (2006-12-08 05:57) [17]


> Vga ©   (07.12.06 20:04) [16]


> Ну вот все испортил, обидно :))


:)


 
Vga ©   (2006-12-08 14:16) [18]

> [17] Думкин ©   (08.12.06 05:57)

ТЗ внимательнее надо читать... Хотя при тестах ошибка на длину ряда не повлияла...


 
Vga ©   (2006-12-08 14:23) [19]

> внимательнее надо читать...

внимательнее надо было читать...


 
Думкин ©   (2006-12-08 14:25) [20]


> Vga ©   (08.12.06 14:23) [19]

Ну там что под слагаемым еще понимать, и под разностью.


> x9/9! – x11/11!

или

> x9/9! -(– x11/11!)


:)


 
Anatoly Podgoretsky ©   (2006-12-08 14:39) [21]

> Vga  (08.12.2006 14:23:19)  [19]

>> внимательнее надо читать...

> внимательнее надо было читать...

Первое правильнее, не последний и не первый раз.


 
Vga ©   (2006-12-08 15:26) [22]

> [21] Anatoly Podgoretsky ©   (08.12.06 14:39)

В общем случае, а в частном - малость попутал параметры, после перечитывания заметил и исправил.


 
Zeqfreed ©   (2006-12-08 15:36) [23]

Хм, написал на питоне:

#!/usr/bin/python

import math;

def factorial(n):
if (n < 2):
 return n
else:
 return factorial(n - 1)*n
 
acc = 0;
x = 1;
p = 1;
e = 0.000000001;

while (True):
a = (x**p) / factorial(p);
b = -(x**(p+2)) / factorial(p + 2);
acc += a + b;
p += 4;
if (abs(b - a) < e):
 break;
 
print acc;
print math.sin(x);


При x <> 1 вроде все правильно считает, а вот при x = 1 не сходится ряд? Я все правильно сделал?


 
Zeqfreed ©   (2006-12-08 15:38) [24]

Ай-яй-яй, форум съел отступы, смертельные для питона! :)


 
Jeer ©   (2006-12-08 15:41) [25]


> Zeqfreed ©   (08.12.06 15:38) [24]


Вот поэтому мы змей и не едим.


 
Vga ©   (2006-12-08 15:55) [26]

> [23] Zeqfreed ©   (08.12.06 15:36)

У меня при x=1 все нормально


 
Anatoly Podgoretsky ©   (2006-12-08 16:06) [27]

> Zeqfreed  (08.12.2006 15:38:24)  [24]

Что же ты так?
На форум вали, но и свою голову имей, вот пример каждая строка на один пробел больше, в первой 0 пробелов

0
 1
  2

   3
  2

 1
0


 
Zeqfreed ©   (2006-12-08 16:07) [28]


> У меня при x=1 все нормально

Все, разобрался. Оказывается, когда пишешь x = 1, то он рассматривает x как целое число и использует целочисленное деление. Следовательно, нужно писать x = 1.0.
Вот и доверяй этим интерпретаторам, то ли дело паскаль :)


 
Vga ©   (2006-12-08 16:09) [29]

> [28] Zeqfreed ©   (08.12.06 16:07)

Я писал в lua, в нем int отсутствует. Только number, в моей версии - double, хотя можно скомпилить с другим числовым типом, int например.


 
Zeqfreed ©   (2006-12-08 16:10) [30]


> Anatoly Podgoretsky ©   (08.12.06 16:06) [27]

В каком месте тогда съедаются пробелы/табуляции? Ведь съедает скрипт по одному пробелу от строки? Сейчас проведу эксперимент :)

1 Тут один пробел
 2 Тут два
  3 Здесь три
1 Здесь одна табуляция
 2 А здесь две


 
Zeqfreed ©   (2006-12-08 16:12) [31]

Ну вот, первый пробел и первая табуляция пропали, как и следовало ожидать.


 
TUser ©   (2006-12-08 16:13) [32]

> При x <> 1 вроде все правильно считает, а вот при x = 1 не сходится ряд?

Должен сходиться, сказали же уже, что это разложение синуса.


 
Anatoly Podgoretsky ©   (2006-12-08 16:18) [33]

Zeqfreed ©   (08.12.06 16:12) [31]
А у меня полный порядок, не веришь пальцем посчитай


 
Zeqfreed ©   (2006-12-08 16:39) [34]


> TUser ©   (08.12.06 16:13) [32]

Да, я уже понял где ошибся (см. [28]). Все отлично считается.


> Anatoly Podgoretsky ©   (08.12.06 16:18) [33]

Ну я ведь не единственный, у кого такая проблема. Помню, кто-то ещё жаловался. Было бы интересно разобраться в чем все-таки она заключается и как её избегать.


 
Anatoly Podgoretsky ©   (2006-12-08 16:44) [35]

> Zeqfreed  (08.12.2006 16:39:34)  [34]

Заключается она в HTML и в серверном скрипте



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.049 c
2-1165962183
Khabibulin
2006-12-13 01:23
2006.12.31
Календарь


15-1165585217
Сатир
2006-12-08 16:40
2006.12.31
Удалиние лишних bpl-ок


15-1166026852
Виста
2006-12-13 19:20
2006.12.31
Кряк для Висты


6-1155203525
XbI
2006-08-10 13:52
2006.12.31
сетевые странности


2-1165852014
AlexanderMS
2006-12-11 18:46
2006.12.31
Проблемы с организацией класса.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский