![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Fellout |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
Дана задача: с помощью библиотечной функции ln(1+x) вычислить расхождение, реализовывая этот ряд с помощью рекурентной формулу, а также использовать одноадресную систему команд, тоесть можно использовать только одну переменную, вторая в операции обязательно проходит через аккумулятор. Вычитая получившуюся сумму ряда расхождение не должно привышать 3*10 в -4 степени. В чем ошибка, расхождение никак не сходится??
![]() ![]() Var Сообщение отредактировано: Lapp - 13.12.2008 2:07 |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Вообще-то функция ln(1 + x) при (-1) < x <= 1 раскладывается в ряд
x - x2/2 + x3/3 - x4/4 + ... так что тебе достаточно: const Цитата а то кроме реализации на ЯВУ нужно ещё сделать эту задачу на Vax-11 На чем, в кодах что-ли? Или ASM? |
Ozzя |
![]()
Сообщение
#3
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата на Vax-11 С_ума_сойти ![]() Советский аналог - серия СМ? СМ-1420, 1810 etc? Там же есть компилятор Pascal'я. Точно помню, что есть. Я на 1420 делал курсач в 88-м |
Fellout |
![]()
Сообщение
#4
|
|||
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
делаю так сложно, потому что эта задача что-то вроде подготовки, чтобы потом в кодах все на vax перенести. Функция это и есть нахождение суммы ряда с помощью рекурентной формулы ---> -(a*x*n/n+1), тоесть разложения ln(1+x) в ряд x-x2/2+x3/3. с занесением одного из операторов в аккумулятор, что требуется по системе команд в задании . Диапозон от -0.2 до 0.5, что в 16-ричной системе соответстует -6553 до 16384. В итого разница между библиотечной функцией и нахождением суммы ряда с помощью рек. формулы, как я уже писал, должна соответствовать 3*10 в -4 степени. Вот и мучаюсь...а в чем ошибка не понимаю...вроде должно быть все элементарно просто, но почему-то никак не сделать...
На нашем эмуляторе Vax нет паскалевского компилятора... ![]() Добавлено через 8 мин. Забыл ещё добавить, что после того, как получится добиться точности 3*10 в -4, в подпрограмме с рекурентной формулой нужно заменить умножение и деление ещё на две функции. И точность не должна поменяться....по крайней мере на много не должна поменяться ![]() деление: function TForm1.divi(a,b:longint):longint;
|
|||
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Да, собственно, ошибки-то нет как таковой:
function TForm1.F2(sx:smallint):smallint; |
Fellout |
![]()
Сообщение
#6
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
Пробовал
![]() |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Цитата не получается все равно, такое ощущение, что сумма ряда не правильно складывается... Это ты кому-нибудь другому расскажешь, ладно? В Edit1 выводится 0.000203475073580706, что меньше твоей погрешности, значит сумма считается даже точнее... |
Fellout |
![]()
Сообщение
#8
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
Volvo, честно у меня какую-то чушь выдает.....когда ставлю вычисление ряда от одного значения -6553 , на выходе функции получается -749, что потом делим на 32768 и получается верный результат, но почему то sf меняется само на 134 и получается чушь
![]() Добавлено через 16 мин. вот в этой строке sf:= F2(sx); ![]() |
Fellout |
![]()
Сообщение
#9
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
Volvo подскажи пожалуйства, в чем проблема может быть, что у тебя выводит, а у меня нет?
![]() |
Fellout |
![]()
Сообщение
#10
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
Volvo, огромное спасибо
![]() ![]() |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 14:20 |