![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Zundell |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 65 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ниче не понимаю пачиму ошибку переполнения выдает(((
Пасмарите плиз: Используя оператор цикла, найти сумму элементов!При определении суммы членов ряда использовать реккурентную формулу. Найти сумму ряда с точностью Е=10^-3 , общий член которого равен An=n!/(3n^n). Вот текст моей программки: CONST Рекурентку я посчитал,она представленна в тексте программы.Очень нужна помощь.Заранее очень благодарен |
![]() ![]() |
arhimag |
![]()
Сообщение
#2
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 424 Пол: Мужской Репутация: ![]() ![]() ![]() |
Я не вникал, но переполнение возникает из-за того что AN изначально больше i и оно не убывает, а даже шустро возрастает во время исполнения программы.
Добавлено: я не считал сумму этого ряда, но эта программа должна работать правильно: Код CONST i=0.1E-2; var n: integer; AN, summa:extended; function factorial(n:integer):real; var i: integer; f: real; begin f:=1; for i:=1 to n do f:=f*i; factorial:=f; end; function power(a,b : real):real; begin power:=exp(b*ln(a)); end; begin summa:=0; n:= 1; AN:= 1/2; while AN>i do begin AN:=factorial(n)/3*power(n,n); summa:= summa + AN; n:=n+1; end; writeln ( 'summa=', summa:2:4); Writeln ('4islo=', AN:2:4); readln; end. Сообщение отредактировано: arhimag - 20.01.2007 19:59 -------------------- Чего хочет женщина – того хочет Бог
|
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
arhimag, а прочтение условий что, НЕ для тебя?
Цитата При определении суммы членов ряда использовать реккурентную формулу. А объясни-ка мне, что такое рекуррентная формула во-первых, и где она у тебя в программе - во вторых... |
мисс_граффити |
![]()
Сообщение
#4
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Ты правда считаешь, что 3n^n и (3n)^n - это одно и то же?
Цитата Я не вникал, Заметно. Цитата но переполнение возникает из-за того что AN изначально больше i и оно не убывает, а даже шустро возрастает во время исполнения программы. Правда? Приближенные значения: 0.333 0.167 0.074 0.031 0.013 ... Сообщение отредактировано: мисс_граффити - 20.01.2007 20:04 -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
arhimag |
![]()
Сообщение
#5
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 424 Пол: Мужской Репутация: ![]() ![]() ![]() |
Про рекуррентную формулу я забыл
![]() а по поводу возражения мисс граффити, то я думал что там (3n)^n, но этот глюк исправлен. -------------------- Чего хочет женщина – того хочет Бог
|
мисс_граффити |
![]()
Сообщение
#6
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Рекуррентная формула:
A(n+1)=(n+1)!/(3(n+1)^(n+1))=n!*(n+1)/(3*(n+1)^n*(n+1))=n!/(3(n+1)^n) A(n)=n!/(3n^n) A(n+1)=A(n)*(n^n)/((n+1)^n)=A(n)*(n/(n+1))^n У меня так получилось... а откуда взялось Цитата AN:= An*(ln(n+1)*((n+1)/n)); ?Это ты так пытался в степень возвести? Или я ошиблась при выводе формулы? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
arhimag |
![]()
Сообщение
#7
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 424 Пол: Мужской Репутация: ![]() ![]() ![]() |
Код CONST i=0.1E-2; var n: integer; AN, summa:extended; function power(a,b : real):real; begin power:=exp(b*ln(a)); end; begin summa:=0; n:= 1; AN:= 1/3; while AN>i do begin summa:= summa + AN; AN:=AN*power(n/(n+1),n); n:=n+1; end; writeln ( 'summa=', summa:2:4); Writeln ('4islo=', AN:2:4); readln; end. Вольво, найдешь ошибки, скажи, исправлю. Добавлено: Только заметил, с формулой мисс граффити опередила Сообщение отредактировано: arhimag - 20.01.2007 20:17 -------------------- Чего хочет женщина – того хочет Бог
|
Zundell |
![]()
Сообщение
#8
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 65 Пол: Мужской Репутация: ![]() ![]() ![]() |
мисс_граффити
у меня рекурентка получилась An*(n+1)^(n+1)/n может я тоже чтот неправильно посчитал? Добавлено: тьфу...т.е An*((n+1)/n)^(n+1) |
мисс_граффити |
![]()
Сообщение
#9
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
напиши, как выводил
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Zundell |
![]()
Сообщение
#10
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 65 Пол: Мужской Репутация: ![]() ![]() ![]() |
Мисс Графити,извиняюсь..я у себя ошибку нашел,немного не так считал...ты правильно вывела...но вот только если писать A(n)*(n/(n+1))^n,то Паскаль всеравно перевыполнение выдает,но вот если An*((ln(n)*n)/(ln(n)*(n+1))),то все нормс считает!Спасибо всем за помощь...все дело в рекуррентке было.
|
мисс_граффити |
![]()
Сообщение
#11
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
считает-то нормально, только совсем другое
![]() -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Zundell |
![]()
Сообщение
#12
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 65 Пол: Мужской Репутация: ![]() ![]() ![]() |
Почему???там ведь при выводе рекуррентки и в числителе в степени N,так и в знаменателе N!почему ошибка то?
|
мисс_граффити |
![]()
Сообщение
#13
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Ты думаешь, что ln(n)*n=n^n?
А почему? Возьмем для примера число е (чтобы проще было считать). ln(e)*e=1*e=e Это совсем не то, что e^e, правда? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Zundell |
![]()
Сообщение
#14
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 65 Пол: Мужской Репутация: ![]() ![]() ![]() |
хм...а вот так прральна буит?An*(exp(ln(n)*n))/(exp(ln(n)*(n+1))))
|
мисс_граффити |
![]()
Сообщение
#15
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
да... но так ты приходишь к варианту arhimagа.
причем у него переполнение будет возникать с меньшей степенью вероятности: он сначала считает n/(n+1), а потом это число (заведомо меньше 1) возводит в степень. ты же по отдельности считаешь n^n и n^(n+1) и только после этого делишь. вот переполнение и вылезает. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Zundell |
![]()
Сообщение
#16
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 65 Пол: Мужской Репутация: ![]() ![]() ![]() |
Я щя проверил,мой вариант...переполнения не возникает.
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 3:16 |