![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
TOPEHTO |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помоги плиз... надо вычислить Натуральный Логарифм числа 2 с заданной точностью. финкция раскладывается так Ln(1+x)=E(-1)^n+1 * (X^n)/n
E это типа сигма... ![]() Цитата function _Ln(x: double): double; const eps = 0.0000001; { Задаем точность } var s, next: double; n: integer; begin next := (x - 1)/(x + 1); s := next; n := 1; repeat inc(n, 2); next := (next * sqr(x - 1))/sqr(x + 1); s := s + next/n; until (next/n) < eps; _Ln := 2 * s end; Нашел эту функцию, но не получается уменя переделать погрешность, т.е. не хватает мозга, чтобы прога работала...пожалуйста помоги... ![]() |
![]() ![]() |
arhimag |
![]()
Сообщение
#2
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 424 Пол: Мужской Репутация: ![]() ![]() ![]() |
а если сделать так?
function _Ln(x: double; eps: double): double; -------------------- Чего хочет женщина – того хочет Бог
|
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Цитата не хватает мозга, чтобы прога работала А для этого тебе никакого мозга и не надо... Ты ж не пишешь функцию, а копируешь ее... Для того, чтоб она заработала (а она - рабочая, я в FAQ других не выкладываю), тебе нужен не МОЗГ, а КОМПИЛЯТОР...Цитата но не получается уменя переделать погрешность То есть, ты не в состоянии поменять значение Eps даже? Тогда что ты от нас хочешь? Чтоб мы приехали к тебе и сдали эту программу за тебя?Сделай так: const eps: double = 0.0000001; { Задаем точность } archimag, сможешь объяснить 2 вещи? 1) почему я вынес Eps ПЕРЕД реализацией функции 2) что мне дало добавление :double ? (просьба на эти 2 вопроса отвечать именно archimag-а, и никого более)... |
TOPEHTO |
![]()
Сообщение
#4
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: ![]() ![]() ![]() |
Значение Еps Я переделал, Я не это имелл ввиду...мне как бы так сказать, эта погрешность вообще не нужна, мне нужна что ф-ция раскладывалась в такой ряд и пользователь только вводил кол-во слагаемых...т.е. само Еps мне не нужно...
![]() |
arhimag |
![]()
Сообщение
#5
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 424 Пол: Мужской Репутация: ![]() ![]() ![]() |
Volvo, ты знаешь, ответ : не знаю
я просто предложил ( не проверяя ) поэтому и не писал что это точно будет работать... -------------------- Чего хочет женщина – того хочет Бог
|
мисс_граффити |
![]()
Сообщение
#6
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
ТOPEHTO, замени цикл на for. или просто условие другое сделай - не привязанное к eps, а зависящее от кол-ва выполненных проходов.
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
TOPEHTO |
![]()
Сообщение
#7
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: ![]() ![]() ![]() |
мисс_граффити
ЗАменил...но чето не пашет...ты понимаешь смысл в том что, если Я задаю 2 прохода то ответ должен быть 0,5 а у меня 6.666 и т.д. получается, сейчас сижу думаю вот... ![]() |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
TOPEHTO, ты напиши, чего ты хочешь? КАК ты бы хотел вызывать функцию? ЧТО переделывать-то требуется? Сначала ты говоришь, что проблема в точности, сейчас выясняется что не совсем...
Да, кстати: Цитата финкция раскладывается так Ln(1+x)=E(-1)^n+1 * (X^n)/n Ты уверен? Это разложение - когда -1<X<=1... У тебя же Х=2, так что будь добр раскладывать по правильной формуле... |
мисс_граффити |
![]()
Сообщение
#9
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Ты уверен? Это разложение - когда -1<X<=1... У тебя же Х=2, так что будь добр раскладывать по правильной формуле... ln(2)=ln(1+1)=ln(1+x) x=1 что не так? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Да? Только вот автор почему-то приводит одну формулу, а считает по другой, с чего бы это? Подсчет-то идет по формуле, где X > 0... Если делает свой велосипед, пускай и колеса на него свои ставит, чего чужие-то брать?
|
TOPEHTO |
![]()
Сообщение
#11
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: ![]() ![]() ![]() |
volvo
мисс_граффити прав, точнее Я не наю на сколько, но нам сегодня сказали считать так, ln2=ln(1+1) и вперед, а что касается считать по этой формуле, то Я переделываю по тихоньку программу, но к сожалению не получается...поэтому и прошу вашей помощи. Да, согласен что надо считать по правильной фор-ле, но препод сказала так, значит надо так... ![]() |
мисс_граффити |
![]()
Сообщение
#12
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
мдя...
после такого оскорбления я явно в этой теме писать не буду. а вообще такого рода программки проще не переделывать, а писать с нуля - если хочешь что-то понять. Или брать готовыми - если не хочешь. Подумай логически (я про знания паскаля не говорю). Надо посчитать ряд. (кстати, там после -1 должен идти не +, а *. и степень не n, а n+1.... хотя могу ошибаться). Известен общий член ряда. Сколько таких чисел взять - известно (напрашивается цикл for, не так ли?). Осталось просто просуммировать.... volvo, сорри. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
TOPEHTO |
![]()
Сообщение
#13
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: ![]() ![]() ![]() |
Народ, чтобы не создавать новую тему, может подскажете, еще надо вычисление числа ПИ с заданным кол-вом слагаемых, через разложение арктангенса...вот так вот...
![]() |
klem4 |
![]()
Сообщение
#14
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
TOPEHTO |
![]()
Сообщение
#15
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: ![]() ![]() ![]() |
klem4
пасиб конечно, но чтото это мне както не помогло...не знаю, или Я думаю не так... А тема моя вообще, просто не хочу лишних создавать... ![]() |
![]() ![]() |
![]() |
Текстовая версия | 22.06.2025 19:01 |