RPN калькуляторы для Linux

ArticleCategory: Hardware

Applications

AuthorImage:[Here we need a little image from you]

[Photo of the Author]

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:

hp-calc and tux

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 копок, а также не будут видны промежуточные результаты. Есть и другие преимущества:

Калькуляторы

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

rpnjcalc

Этот калькулятор использует Javascript. Это мой собственный проект, который запускается на любом современном (!) веббраузере (должным образом не работает в opera 5/6, netscape 4, konquerer). Он отличается от большинства других калькуляторов на javascript тем, что вы можете также использовать клавиатуру для ввода чисел и основных операторов. Только щелкните здесь чтобы поиграть с rpnjcalc

Название:rpnjcalc
Домашняя страница:http://main.linuxfocus.org/~guido/javascript/rpnjcalcallver.html
Лицензия:GPL

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). Установка очень простая, так как скрипт использует только стандартные модули Перла.

Название:vc (vector calculator)
Домашняя страница:http://vc-calc.sourceforge.net/
Лицензия:GPL

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", куда можно попасть по ссылку ниже.

Название:x48
Домашняя страница:ftp://www.sunsite.unc.edu/pub/linux/system/emulators/
Детали о x48: "x48 details page", инсталляция, документация, образы прошивок (обратитесь по ссылкам в конце статьи для получения дополнительной информации по прошивкам)
Лицензия:GPL, но вам понадобится файл-образ прошивки

hp67

У этого калькулятора маленькая функциональность, по сравнению с настоящим hp67, но он полностью переписан и независим от кода hp67. Это не эмулятор. Интерфейс обычный (ncurses), но функциональность очень хорошая. Он идёт с отличной документацией в форме man-страницы (ссылка ниже). Вы даже можете его программировать как настоящий hp67. Для начала программирования нажмите "prog" и введите свою программу, начиная с имени метки и заканчивая "immed". Для выполнения программы, используйте "run labelname". Вот пример. Мой пример немного бесполезный, так как высчитует всего лишь возведение в квадрат, но он показывает, как программировать на hp67:
prog (введите режим программирования)

label myprg
ENTER
*
rtn
immed (конец режима программирования)
Теперь вы можете использовать "run myprg", чтобы выполнить x^2.

Название:hp67
Документация:man-страница hp67 в формате html
Домашняя страница:http://www.ibiblio.org/pub/Linux/apps/math/calc/
Лицензия:GPL

kalc

kalc тоже запускается с командной строки, имеет возможность заканчивать команды. Он работает с натуральными и комплексными числами, с неограниченным количеством значащих цифр. Точность натуральных чисел произвольна. Очень хорошо документирован ( pdf файл ниже).

Название:kalc
Руководство:kalc.pdf 230K
Домашняя страница:http://sourceforge.net/projects/kalc/
Лицензия:GPL

dcalc

Это тоже консольный калькулятор, основанный на ncurses. Он не программируемый, как hp67, но он хорошо конвертирует числа из hex в bin и в decimal.

Название:dcalc
Домашняя страница:http://www.ibiblio.org/pub/Linux/apps/math/calc/
Лицензия:GPL

rpncalc

Этот калькулятор тоже консольный, но он не основан на ncurses. Поэтому он очень похож на команду "dc". Он имеет такие функциональные возможности, как HP28s. Поэтому rpncalc более продвинутый, чем "dc". Он справляется с комплексными числами, векторами и матрицами. rpncalc - часть Debian.
Название:rpncalc
Домашняя страница:http://www.gnu.org/directory/science/math/rpncalc.html
Лицензия:GPL

gdcalc

Это неплохой калькулятор с графическим интерфейсом gtk. Вы можете выбирать метод ввода RPN или algebraic. Он предлагает 4 режима: scientific (для выполнения научных расчётов), financial (для выполнения финансовых расчётов), statistics (для выполнения статистических расчётов) и режим конвертирования чисел, который называется programming mode. Однако этот режим не имеет ничего общего с программированием калькулятора (как x48 или hp67). Он предлагает всё, что вы ожидаете от обычного калькулятора.

Чтобы использовать меню преобразования единиц, вы должны установить команду units (ftp://ftp.gnu.org/gnu/units/, уже содержится в большинстве дистрибутивов Linux).
Название:gdcalc
Домашняя страница:http://bhepple.freeshell.org/dcalc/unix/
Лицензия:GPL

grpn

Этот RPN калькулятор тоже основан на gtk. Он предлагает основные алгебраические и тригонометрические функции.
Название:grpn
Домашняя страница:http://lashwhip.com/grpn.html
Лицензия:GPL

galculator

Этот калькулятор по функциональности очень похож на gdcalc. Вы можете настроить его на использование RPN или алгебраического методов ввода. Он поддерживает преобразования bin/hex/dec и содержит все основные научные функции.
Однако он использует последние версии библиотек gtk (gtk 2.2), поэтому могут возникнуть проблемы при установке на старые системы. но он очень хорошо спроектирован и имеет прекрасный пользовательский интерфейс.
Название:galculator
Домашняя страница:http://galculator.sourceforge.net/
Лицензия:GPL

calcoo

Это старый калькулятор. Он работает или в режиме RPN, или алгебраическом. Он отлично подходит для вычисления алгебраических и тригонометрических вычислений.
Название:calcoo
Домашняя страница:http://calcoo.sourceforge.net
Лицензия:GPL

Kalk

Это обычный (но бесплатный) RPN калькулятор для карманников palm. Рalm не работает под Linux, но я представил этот калькулятор, потому что он доступен под лицензией GPL (редкость для palm).
Название:kalk
Домашняя страница:http://www.klawitter.de/palm/kalk.html
Лицензия:GPL

GCalc

Это не RPN калькулятор, то всё же очень и очень полезный. Это онлайновый, основанный на java, графический калькулятор. Он требует плагин java для mozilla или netscape, часть пакета jre из blackdown.org. Вы сразу сможете строить графики в браузере, совместимом с java.
Название:GCalc
Домашняя страница:http://humblestar.net/GCalc/
Лицензия:GPL

Заключение

Как вы видите, каждый найдёт для себя что-то в RPN калькуляторах. Вероятно, есть ещё RPN калькуляторы, но всё перечисленные выше распространяются под лицензией GPL.

Ссылки