RPN калькуляторы для Linux
ArticleCategory: Hardware
Applications
AuthorImage:[Here we need a little image from you]
TranslationInfo:[Author + translation history. mailto: or http://homepage]
original in en : Guido Socher
en to ru Дмитрий Щербаков
AboutTheAuthor:[A small biography about the author]
Моим первым RPN калькулятором был HP15c и это была любовь с первого взгляда.
Abstract:
RPN произошло от Reverse Polish Notation. Reverse Polish Notation основал в 1920 году Jan Lukasiewicz как способ записи математических выражений без использования скобок.
Потребуется несколько минут для изучения RPN, но скоро вы увидите, что
этот метод превосходит алгебраический формат.
ArticleIllustration:
ArticleBody:
Вступление
Карманные RPN калькуляторы стали популярными благодаря HP. HP
использовал этот метод в своём первом же калькуляторе в 1968 году.
Если вы будете искать в Интернете, вы узнаете, что существует целый Фан клуб
посвященный калькуляторам от HP. Я собрал немало хороших ссылок, которые размещены в конце этой статьи.
Большинство экземпляров этих калькуляторов производства HP сейчас находятся у коллекционеров и продаются гораздо дороже
своей истинной стоимости.
Эта статья представит некоторые настольные RPN калькуляторы, доступные для
Linux. Мы рассмотрим доступные эмуляторы HP, а
также другие RPN калькуляторы, которые являются полностью независимыми от HP.
Что такое RPN? Почему RPN?
RPN калькуляторы используют стек и математические операции выполняются немедленно на
нижнем уровне стека. Стек используется как память, куда сохраняются результаты,
которые вам потребуются для последующих вычислений по формуле.
Поэтому вам не понадобятся скобки в RPN калькуляторах.
Сначала вы вводите числа в стек, а потом "говорите", что с ними
нужно сделать.
К примеру вы хотите вычислить:
(( 3 + 1 )^2 + 1) * 4
Для этого нужно ввести следующее:
3 enter
1 + (вы сразу увидите результат этой операции: 4)
x^2 (вы сразу увидите результат этой операции: 16)
1+ (вы сразу увидите результат этой операции: 17)
4* (конечный результат: 68)
Так что для вычисления этого выражения вам понадобилось 9 нажатий клавиш и
вы видели все промежуточные результаты. Подобным образом вы бы вычисляли это без калькулятора, в уме.
Другими словами, этот калькулятор работает как мозг человека.
Если сравнивать это вычисление с вычислением на алгебраическом калькуляторе,
то там для вычисления этого выражения нужно будет нажать 12 копок, а также не будут видны
промежуточные результаты.
Есть и другие преимущества:
- RPN экономит время нажатия клавиши. Вам не требуется использование круглых скобок при выполнении вычислений. Процесс подобен способу вычислению на бумаге.
- Вы видите промежуточные результаты. Это чрезвычайно полезный побочный продукт.
- Промежуточный результат позволяет проверить расчёты и легко исправить ошибки. Проще следовать за потоком вычисления. Пользователь определяет приоритет операторов.
- RPN логичен, потому что пользователь сначала дает число, а затем говорит, что с ним делать.
- Поскольку подвыражения вычислены сразу после ввода, ошибки ввода более очевидны. На алгебраическом калькуляторе, пропущенная открывающаяся круглая скобка может привести к ошибке вычисления намного позже, когда всё подвыражение вычислено.
Калькуляторы
Начнём с самых простых калькуляторов, которые вы можете протестировать
в браузере пока будете читать эту статью, и потом я представлю более мощные.
rpnjcalc
Этот калькулятор использует Javascript. Это мой собственный проект, который запускается на
любом современном (!) веббраузере (должным образом не работает в opera 5/6, netscape 4, konquerer). Он отличается от большинства других калькуляторов на javascript тем,
что вы можете также использовать клавиатуру для ввода чисел и основных операторов. Только щелкните здесь
чтобы поиграть с rpnjcalc
hp-35
Этот калькулятор тоже использует Javascript, но внимание акцентировано на достижении внешней схожести с
настоящим (старым) карманным калькулятором HP-35. Вы можете протестировать его online,
кликнув по этой ссылке.
Если вы действительно хотите им пользоваться, то я советую скачать
zip файл по ссылке ниже, потому что он использует gif рисунки и будет работать намного быстрее,
если установить его локально.
Обратите внимание на то, что этот калькулятор не имеет такой функциональности, как
настоящий HP35. Например, он может вычислять тригонометрические функции только в градусах (0-360).
Название: | hp-35 |
Домашняя страница: | Unknown, taken from www.hpmuseum.org. Download here:hp-35.zip |
Лицензия: | GPL |
dc
Этот калькулятор представляет собой обычную команду Unix. Он есть даже на самых старых unix
системах. Он может выполнять только основные арифметические операции, но поддерживает очень длинные числа.
Чтобы его запустить, наберите в консоли dc и потом число и букву "k" (например: 6k и нажмите ввод).
Это устанавливает точность. Теперь вы можете выполнять вычисления (+-*/) и устанавливать нижний уровень
стека с помощью "p". Завершаете нажатием crtl-d.
Название: | dc (desk calculator) |
Домашняя страница: | Part of every unix system. Under Linux the package name for dc is called bc |
Лицензия: | normally the same as your Unix system |
vc.pl
Этот калькулятор написан на Перле. Это очень интересная реализация, так как это
на самом деле векторный калькулятор. Вы, конечно можете использовать его
для обычных арифметических вычислений - одно число - это всего лишь один вектор.
У него есть интегрированная справка (команда help).
Установка очень простая, так как скрипт использует только стандартные модули Перла.
x48
Этот калькулятор представляет собой эмулятор HP-48. Это значит, что вы можете запускать на нём код от
HP. Калькулятор всего лишь притворяется эмулятором. Вам нужно грузить настоящий код
HP-48. x48 распространяется по лицензии GPL, но авторские права прошивки, конечно,
принадлежат HP. Настоящий hp48 HP больше не производит и разрешает загружать образы прошивки с 2000 года.
Примечание: Неплохо иметь такой калькулятор на мониторе компьютера, но он ещё не представляет собой настоящую альтернативу
оригинальному HP-48, потому-что у x48 не очень удобный
клавиатурный интерфейс. Поэтому вам понадобится очень часто кликать мышкой и
тратить много времени.
Так как x48 - эмулятор,
вы можете выполнять операции точно так же, как и оригинальный HP-48. Последней версии, 0.4, которую я смог найти,
уже несколько лет, программа работает
безо всяких проблем. Версии 0.4 нужен маленький
патч, чтобы скомпилиться под современной Linux. Руководство, несколько образов прошивки, патч и инструкции находятся на "x48 details page", куда можно попасть по ссылку ниже.
hp67
У этого калькулятора маленькая функциональность, по сравнению с настоящим hp67, но он
полностью переписан и независим от кода hp67. Это не
эмулятор. Интерфейс обычный (ncurses), но
функциональность очень хорошая. Он идёт с отличной документацией в форме
man-страницы (ссылка ниже).
Вы даже можете его программировать как настоящий hp67.
Для начала программирования нажмите "prog" и введите свою программу, начиная с имени метки
и заканчивая "immed".
Для выполнения программы, используйте "run labelname".
Вот пример. Мой пример немного бесполезный, так как высчитует
всего лишь возведение в квадрат, но он показывает, как программировать на
hp67:
prog (введите режим программирования)
label myprg
ENTER
*
rtn
immed (конец режима программирования)
Теперь вы можете использовать "run myprg", чтобы выполнить x^2.
kalc
kalc тоже запускается с командной строки, имеет возможность заканчивать команды. Он работает с натуральными и комплексными числами,
с неограниченным количеством значащих цифр. Точность натуральных чисел произвольна.
Очень хорошо документирован ( pdf файл ниже).
dcalc
Это тоже консольный калькулятор, основанный на ncurses.
Он не программируемый, как hp67, но он хорошо конвертирует числа из
hex в bin и в decimal.
rpncalc
Этот калькулятор тоже консольный, но он не основан на ncurses. Поэтому он очень похож на команду "dc".
Он имеет такие функциональные возможности, как HP28s.
Поэтому rpncalc более продвинутый, чем "dc". Он справляется с
комплексными числами, векторами и матрицами.
rpncalc - часть Debian.
gdcalc
Это неплохой калькулятор с графическим интерфейсом gtk.
Вы можете выбирать метод ввода RPN или algebraic.
Он предлагает 4 режима: scientific (для выполнения научных расчётов), financial (для выполнения финансовых расчётов), statistics (для выполнения статистических расчётов) и
режим конвертирования чисел, который называется programming mode. Однако этот режим не имеет ничего общего с
программированием калькулятора (как
x48 или hp67). Он предлагает всё, что вы ожидаете от обычного калькулятора.
Чтобы использовать меню преобразования единиц, вы должны установить
команду units (ftp://ftp.gnu.org/gnu/units/, уже содержится в большинстве дистрибутивов Linux).
grpn
Этот RPN калькулятор тоже основан на gtk.
Он предлагает основные алгебраические и тригонометрические функции.
galculator
Этот калькулятор по функциональности очень похож на gdcalc. Вы можете настроить его на использование
RPN или алгебраического методов ввода. Он поддерживает преобразования bin/hex/dec и содержит
все основные научные функции.
Однако он использует последние версии библиотек gtk (gtk 2.2),
поэтому могут возникнуть проблемы при установке на старые системы.
но он очень хорошо спроектирован и имеет прекрасный пользовательский интерфейс.
calcoo
Это старый калькулятор. Он работает или в режиме RPN, или
алгебраическом. Он отлично подходит для вычисления алгебраических и тригонометрических вычислений.
Kalk
Это обычный (но бесплатный) RPN калькулятор для карманников palm.
Рalm не работает под Linux, но я представил этот калькулятор, потому что он доступен под лицензией GPL (редкость для palm).
GCalc
Это не RPN калькулятор, то всё же очень и очень полезный.
Это онлайновый, основанный на java, графический калькулятор. Он требует плагин java для mozilla или netscape, часть пакета jre из blackdown.org.
Вы сразу сможете строить графики в браузере, совместимом с java.
Заключение
Как вы видите, каждый найдёт для себя что-то в RPN калькуляторах.
Вероятно, есть ещё RPN калькуляторы, но
всё перечисленные выше распространяются под лицензией GPL.
Ссылки
- Страница загрузок, версии калькуляторов, доступные на время написания этой статьи
- Образы прошивок для HP48, из hpcalc.org
- http://www.hpmuseum.org/, онлайновый музей о всех калькуляторах HP
- area48.com/history.html, История знаменитого HP48
- www.transnull.com/hp48.html, FAQи и образы для HP48
- www.hp-collection.org/hewlettpackard.htm, частная коллекция большинства калькуляторов HP, страница в Германии
- www.limov.com/rcl20/, RCL 20: Люди, мечты и калькуляторы HP. Это книга (онлайн версии нет) о знаменитом HP41
- www.finseth.com/~fin/hpdata.html, база данных HP, детали о всех калькуляторах HP
- www.hp.com/calculators/, официальный сайт калькуляторов HP (все ссылки, приведенные выше, частная инициатива фанов RPN калькуляторов HP). От HP сейчас доступно немного. Довольно скромная страница.