Проброс "6d10" на китайском клоне CASIO FX-3950P

| рубрика «Программы» | автор site_editor
Метки: ,

Публикуем сокращенный обзор автора intheyear9595, полный текст находится в оригинальной статье его блога.

Обзавелся на днях чудом - программируемым калькулятором "inформат KNA01". Калькулятор как выяснилось, является полным (гонконгским) клоном CASIO FX-3950P.

Чем он меня так привлек?

  • реально программируемый (не просто запись алгебраических выражений со скобками)
  • двустрочный
  • есть 8 регистров
  • 360 байт под программы (один оператор - байт), 240 - под статданные
  • есть операторы условного и безусловного перехода (!), т.е. ветвление
  • есть генератор случайных чисел
  • легок
  • сказочно дешев
  • считает интегралы и производные (численным методом), работает с комплексными числами, со статданными, причем статданные реально хранятся в памяти и их можно выборочно менять после ввода

Калькулятор "inформат KNA01" (слева) и оригинал "CASIO FX-3950P" (справа):

inформат KNA01 CASIO FX-3950P

Документация "информата" - плохо переведенное и частично урезанное руководство пользователя от калькулятора CASIO. Программно в "информате" вроде бы, все работает идентично тому, что описано в документации для CASIO. Одно исключение, которое я нашел - работа функции Rnd (округление). Так как первой программой, которую я хотел написать была - имитация броска нескольких кубиков (дайсов), это меня на пару дней застопорило (я не был уверен, что правильно использую функцию). После сверки с документацией от "оригинала" решено было имитировать эту функцию последовательным вычитанием (определяем дробную часть последовательным вычитанием единицы, затем от оригинального значения отнимаем дробную часть).

  • D - количество кубиков
  • C - количество граней кубика
  • B - бросок кубика (вещественное число)
  • A - дробная часть
  • X - сумма
0->X:
?->D:
?->C:
Lbl 0:
  6Ran#+1->B:
  B->A:
  Lbl 1:
    A-1->A:
    A>1=>Goto 1:
  B-A+X->X:
  D-1->D:
  D>1=>Goto 0:
X

Для оценки быстродействия, переписал программу из книги "Астрономические формулы для калькулятора".

X=1:
Lbl 1:
e(ln(tan-1(tan 45)))->Y:
X+1->X
100>X=>Goto 1:
Y

Время выполнения - 75 секунд ("троечка"), TI-82 считает 15 секунд

Проверка точности по тесту программным методом

1.0000001->A:
0->D:
Lbl 1:
A*A->A:
D+1->D:
27>D=>Goto 1:
A

показала 674520,6067 ("троечка"), однако прямое вычисление дало 574530,4707 ("пятерка")

В сравнении с МК-54 калькулятор конечно, во многом проигрывает, однако не забываем, что МК-54 - это хардкорный эзотерический программируемый калькулятор с обратной польской нотацией, программирование и отладка которого производится при помощи таблиц мнемоник его машинного кода (sic!). Мне лично не хватает в "информате" стека и/или прямой адресации. Маловероятно, но возможно, что это удастся как-то обойти, т.к. в "информате" есть память под статданные...

Недостатки: крышка защищает лицевую панель от царапин, но достаточно мягка и не защищает калькулятор от включения. Впрочем, в калькуляторе есть автоматическое отключение. Ну и в целом, пластмасса не выглядит особо прочной.

"Недостатки" из разряда "не варит кофе" (пожелания): не работает оператор округления "Rnd", нет прямой адресации, стека, массивов, строк, процедур, строковых переменных, нет решения алгебраических выражений, нет матриц, нет интерфейса для связи с ПК, звуковой индикации решения задачи, оператора паузы, не чертит графики.