Преобразование десятичной дроби в рациональную (HP).

Тексты программ для HP-28S, HP-42S и HP-41C выложены на сайте. Ниже приводится RPL-код программы 'Fract' для 28S, написанной Thomas Affinito & Jurjen E. Bos и адаптированной Xose. Фактически это исходный код команды →Q более развитых калькуляторов. Взят из архивов музея HP, не проверялся.

%decimal_number -> 'fraction' (with default precision)

%decimal_number %precission -> 'fraction'

('fraction' is EVALuable to the original number, the '6' in the first row of code is the default precission)
«
IF DUP FP THEN 6 END
NEG ALOG 2 / 1 0 4 ROLL DUP ABS 5 ROLLD SIGN
-> X P A B S
«
X ABS
WHILE 'ABS(FLOOR(X*A+.5)-X*A)>=P*A'
EVAL
REPEAT INV DUP IP ABS A * B + A 'B' STO 'A' STO FP
END
DROP 'FLOOR(X*A+.5)' EVAL S * A
»
"'" ROT ->STR + "/" + SWAP ->STR + "'" + STR->
»

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".
Изображение пользователя Black_queen152.

Интересно...

Надо будет для МК-152 такую же программу написАть.

Отвечу.

Если будут вопросы по буржуйской системе команд, задавай. Отвечу.

Изображение пользователя Black_queen152.

Не, гораздо

Не, гораздо интереснее самостоятельно придумать алгоритм, а не базируясь на программе для HP, тем более, что он, наверное, не очень сложный...

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".