Calculator Forensics

Идея тестов калькуляторов под общим названием Calculator Forensics принадлежит Майку Себастиану и  заключается в однозначном определении используемого в калькуляторе процессора и набора алгоритмов с помощью исследования свойств его интерфейса и вычисления сложной, строго определенной функции, накапливающей при каждом действии погрешность:

asin acos atg tg cos sin 9 (в градусах)

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

Само понятие Forensic Science означает «криминалистическая экспертиза», поэтому применительно к калькуляторам, смысл этого теста заключается не столько в определении точности вычислений, сколько в однозначном определении происхождения и выявлении родственных калькуляторов, различий в версиях и т.д.

Crystal On Substrate

Разработанная в начале 70-х годов Sharp, технология производства калькуляторов с ЖК дисплеями. В них и печатная плата и дисплей представляют собой единую стеклянную подложку с токопроводящими дорожками, слоем жидких кристаллов и поверхностно-монтируемыми компонентами. Слой жидких кристаллов покрывается с рабочей стороны еще одним слоем стекла. Это, с одной стороны, исключает необходимость использования токопроводящих резинок или плоских приклеиваемых шлейфов, но с другой стороны, затратно в производстве и повышает хрупкость устройств.

Для таких дисплеев характерна инверсия яркости: на черном фоне формируются светлые цифры.

Примеры: Sharp EL-805M, Электроника Б3-04

Алгебраическая логика

Этот вид логики вычислений наиболее соответствует правилам принятым в математике. Учитывается приоритет операций, для чего операции умножения и деления считаются отдельно и участвуют в суммировании как готовые слагаемые. Также поддерживаются скобки. Конкретная реализация  алгебраической логики зависит от возможностей дисплея, числа регистров и сложности микропрограммы калькулятора. В простейшем случае используется стек из 3 регистров, с накоплением суммы в z и промежуточными вычислениями в x и y. Современные научные калькуляторы позволяют вычислять сложные выражения целиком, а их синтаксис часто позволяет производить естественный ввод.

Пример.

Вычисление 2+3×6:

2 + 3 × 6

20

Арифметическая инфиксная логика

Наиболее распространенная логика работы простых калькуляторов в настоящее время, при которой клавиша [=] или клавиша операции выполняет ранее выбранную операцию над ранее введенным операндом и текущим операндом. При этом не учитывается приоритет операций, так калькулятор не хранит всего выражения.

Пример:

Вычисление (2 + 3) × 6:

2 + 3 ×

5

6 =

30

Арифметическая постфиксная логика

Эта логика унаследована от суммирующих машин и более распространена в бухгалтерской среде. Для неё характерно оперирование аккумулятором (счетчиком суммы).

В таких калькуляторах отсутствует клавиша [=], но есть клавиши [+=] и [−=], либо имеющие тот же смысл клавиши [+] и [−].

После ввода числа в операционный регистр, клавиши [+=] и [−=] прибавляют это число (или результат операции) к аккумулятору, но клавиша [−=] также производит перед этим инверсию числа, что в итоге приводит к вычитанию из аккумулятора. Клавиши [×] и [÷] работают также, как в инфиксной логике, но очищают аккумулятор, а результат (без инверсии или с ней) отображается при нажатии на клавиши [+=] и [−=].

Пример:

Вычисление 2 + 3 × 6:

2 +=

2

3 +=

5

× 6 +=

30

Ведущие нули

Ведущие нули — это нули занимающие старшие незначащие разряды. Например, в простых механических арифмометрах все незначащие разряды счетчиков и установочного механизма содержат нули, так как установочные рычажки и колеса счетчиков не имеют позиций вовсе без цифр. В большинстве электронных калькуляторов не допускается ввод нулей до ввода первой значащей цифры, но в некоторых ранних моделях эта возможность еще присутствует. Также еще более ранние модели калькуляторов на дискретных компонентах могут вовсе не гасить ведущие нули аналогично арифмометрам. Например, так выглядит число 123 на калькуляторе ЕЛКА-22:

0000000123.00

Волшебная единица

На калькуляторах с процессором Commodore GHU-03A наблюдается интересная ошибка отображения чисел с предельными значениями.

Например, калькулятор Commodore SR-1800 использует для хранения чисел формат 12 разрядов мантиссы и 2 разряда порядка. При этом он отображает числа в диапазоне от 9.99999999950e99 до 9.99999999999e99 как 1, но может сохранять эти числа в памяти и выполнять с ними операции.

Логарифмический тест

Функция, аналогичная тесту Forensic, но не использующая тригонометрических функций. Была введена на сайте B3MK для проверки функционала калькулятора Электроника Б3-21, который не выполняет обратных тригонометрических функций.

Определение функции:

e^{ \sqrt{1 \over {1 \over (\ln 9)^2}}}

Обратная польская запись

RPN или Обратная польская запись, также называемая бесскобочной или постфиксной, используется для исключения необходимости учитывать приоритет операций или поддерживать скобки.

В таких калькуляторах отсутствует клавиша [=], но есть клавиша ввода. При этом операции записываются после участвующих в них операндов, которые вводятся в несколько регистров, организованных в стек, на вершине которого находится регистр ввода и вывода. Такая логика часто используется в программируемых калькуляторах, так как наиболее для них оптимальна и легко реализуема.

Пример:

Вычисление 2 + 3 × 6:

2 3 6 × +

20

Вычисление (2 + 3) × 6:

6 2 3 + ×

30