12-05-2023
Программи́руемый калькуля́тор — калькулятор, который обладает, помимо всех функций калькулятора, функциями ввода и выполнения программ.
К числу значимых параметров калькулятора, помимо логики вычислений, числа регистров памяти, набора поддерживаемых функций и возможностей отображения добавляются такие параметры, как:
Простые современные программируемые калькуляторы позволяют лишь сохранять и многократно использовать последовательности операций, что даёт возможность многократно выполнять вычисления по одним и тем же формулам без повторного ввода этих формул. Более сложные конструкции позволяют писать полноценные программы на символьно-кодовом языке или на адаптированном варианте BASIC'а.
Наиболее мощные современные программируемые калькуляторы обладают графическим экраном; встроенным языком программирования высокого уровня; возможностью связи с ПК (обычно для загрузки программ или данных) или с внешними устройствами; часто используются процессоры с тактовой частотой десятки мегагерц, их память может содержать сотни килобайт ОЗУ и сотни килобайт или даже мегабайты флэш-памяти.
Они обладают системой символьных вычислений, включающей различные манипуляции с выражениями, решение уравнений или их систем, символьное дифференцирование и интегрирование, а часто и решение дифференциальных уравнений в символьном виде; программами для рисования различных двумерных и трёхмерных графиков и диаграмм; операциями линейной алгебры; развитыми средствами статистического анализа данных; пакетом финансовых вычислений; вычислениями с комплексными числами; у некоторых из них есть возможность программирования на C на компьютере, с последующей кросс-компиляцией и загрузкой кода.
Первым программируемым калькулятором стал выпущенный в 1969 году в США фирмой Hewlett-Packard настольный калькулятор HP 9100A. Он продавался за 4900 долл. (около 33 000 долл. по современным ценам), имел индикатор, клавиатуру, печатающее устройство, считыватель магнитных карт и внешний интерфейс. В отличие от более поздних моделей, он был выполнен не на микросхемах, а на дискретных полупроводниковых элементах.
В связи с этим устройством впервые появилось само понятие «программируемого калькулятора»: ранее «калькуляторами» называли только «электронные арифмометры», выполняющие операции непосредственно по нажатию клавиш, а устройства, допускающие произвольное программирование, именовались «компьютерами», но ответственные лица фирмы HP сочли, что название «калькулятор» сделает товар более продаваемым, в частности, из-за того, что под «компьютером» в то время подразумевалось нечто большое и сложное, и службы закупки предприятий и организаций, как правило, имели полномочия приобретать «калькуляторы» по собственной инициативе, в то время как приобретение «компьютера», вне зависимости от стоимости, требовало санкции высшего руководства. Кроме того, Билл Хьюлет заметил: «Если бы мы назвали его компьютером, он был бы отвергнут компьютерными профи наших пользователей, так как он не похож на IBM»[1].
Калькулятор HP9100A реализовывал обратную польскую логику вычислений (став родоначальником линейки программируемых калькуляторов HP, использующих польскую запись), позволял нажатием одной-двух клавиш вычислять логарифмы, антилогарифмы, прямые и обратные тригонометрические и гиперболические функции, выполнять преобразования систем координат, а при использовании программ — вычислять корни многочленов до пятой степени, функции Бесселя, эллиптические интегралы и выполнять регрессионный анализ.
Чтобы обеспечить работу с программами, программируемый калькулятор, помимо обычного режима ручных вычислений (того режима, в котором постоянно работают обычные калькуляторы) должен поддерживать ещё, как минимум, два режима работы: режим программирования и режим исполнения программы.
Дополнительно программируемый калькулятор может поддерживать так или иначе организованный режим пошагового исполнения программы (он может быть совмещён с обычным режимом ручных вычислений). В таком режиме калькулятор по нажатию определённой клавиши на клавиатуре выполняет ровно одну, текущую команду программы и переходит в ручной режим. Пошаговое исполнение предназначено для отладки программ: после выполнения очередной операции или нескольких операций оператор имеет возможность проанализировать состояние калькулятора и убедиться, что исполнение программы происходит именно так, как планировалось, а в случае каких-то ошибок может устранить их, введя вручную правильные данные, и продолжить проверку, с тем чтобы выявить все возможные неисправности и впоследствии исправить их.
Известно три принципиально различных способа программирования калькуляторов: символьно-кодовый машинный язык, AER (Algebraic Expression Reserve) и язык высокого уровня .
Программа представляет собой, предельно огрубляя, просто записанную с помощью кодов последовательность нажатий на клавиши калькулятора (аналог компьютерного макроса). Любая клавиша или допустимая комбинация клавиш имеет свой код. Программа записывается в программную память калькулятора в режиме программирования. Оператор вводит её нажатиями клавиш, при этом в память записываются соответствующие коды.
В простейших программируемых калькуляторах программа может быть только линейной. В тех местах, где по логике формулы требуется ручной ввод данных, вводится специальная команда; во время исполнения программы калькулятор по этой команде прерывает вычисления, выдаёт приглашение на ввод данных и ждёт, пока оператор введёт требуемое значение. В более мощных калькуляторах, помимо обычных вычислительных операций и команд работы с памятью командный язык содержит специальные команды управления исполнением, то есть команды проверки условий, ветвления, организации циклов, безусловные переходы по адресу или метке, команды постановки символьных меток, обращения к подпрограммам и возврата из подпрограмм. Развитые символьно-кодовые языки отличает наличие команд переходов и обращения к памяти с косвенной адресацией (обращение по адресу, записанному в регистр памяти, или к регистру, код которого записан в другой регистр) — такие команды позволяют организовывать сложную логику исполнения и использовать механизмы, аналогичные массивам в языках высокого уровня.
Обязательно в командном языке имеется команда остановки программы (выхода из режима исполнения), по которой калькулятор завершает исполнение программы и останавливается, чтобы отобразить результаты.
Оригинальный метод программирования AER был реализован в японском программируемом калькуляторе фирмы Sharp модели EL-5100 и следующих калькуляторах этой серии: EL-5100S, EL-5101, EL-5103, EL-5150, EL-5050, выпускавшихся в конце 1970-х — первой половине 1980-х годов. Он заключается в представлении программы как набора формул. Для каждого требуемого результата вычислений создаётся формула. Для каждой формулы оператор определяет аргументы (обозначаемые символами) и записывает в обычном, алгебраическом виде саму формулу (например, для формулы «f(A,B,C)=0,5·A·B·sin(C)» резервируются переменные A, B, C и вводится сама формула в виде «f() = .5 A B sin C»). Когда оператор нажимает клавишу вычисления формулы, калькулятор сначала самостоятельно запрашивает у пользователя значения аргументов A, B и C, после чего вычисляет введённую формулу. Легко видеть, что возможности собственно программирования (то есть создания программ со сложной логикой) при данном методе ограничены, зато он весьма нагляден, требует минимум времени на изучение и вполне достаточен, если требуется многократное вычисление значений по одним и тем же сложным формулам. Менее очевидным, но тоже существенным положительным качеством логики AER является также меньшее, по сравнению с обычной алгебраической логикой, число нажатий клавиш для ввода одних и тех же формул. Возможности калькулятора с логикой AER ограничиваются максимальным количеством и размером формул и максимально допустимым числом одновременно используемых переменных. У наиболее мощного представителя серии, EL-5150, максимальное количество программируемых формул составило 99 при предельной суммарной длине 1400 знаков, максимальное число используемых переменных — 26.
Широкого распространения логика AER не получила, так как при ограниченных возможностях требовала сложной клавиатуры с большим количеством знаков и сложного алфавитно-цифрового дисплея, которые в период её появления были ещё экзотикой. Тем не менее, некоторые современные программируемые калькуляторы поддерживают близкие к AER методы программирования. Так, например, калькулятор Citizen SRP-325G, помимо программирования на упрощённой версии Basic’а, поддерживает сохранение и исполнение в качестве программ введённых оператором формул. Данный режим очень близок к AER: оператор набирает формулу вычисления с использованием символьных переменных и команду сохранения этой формулы в программной памяти под одним из 10 доступных номеров; впоследствии по команде исполнения программы с данным номером калькулятор автоматически запрашивает у пользователя значения использованных в формуле переменных и вычисляет результат. Допускается даже пропуск операции умножения в формулах, характерный для AER.
Первые калькуляторы, программируемые на языке высокого уровня, реализовывали ограниченное подмножество языка Бейсик, специально адаптированного под использование в калькуляторе. До настоящего времени калькуляторы, программируемые на ЯВУ, используют либо Basic, либо собственный язык, построенный по его образцу. Среди немногочисленных исключений из этого правила — язык RPL, применяемый на программируемых калькуляторах фирмы Hewlett-Packard. Кроме того, наиболее мощные и сложные из выпускаемых сейчас калькуляторов имеют системы кросс-компиляции, позволяющие компилировать и выполнять в калькуляторе программы на языке Си; впрочем, для подготовки таких программ требуется уже компьютер.
Серии TI-89 и TI-92 фирмы Texas Instruments используют алгебраическую нотацию и версию Бейсика, называемую TI-BASIC. Компилятор с C для PC, а также средства программирования на Ассемблере, созданы любителями этого калькулятора. Большое число программ, в частности игр, написано разными авторами. Разница между двумя сериями заключается в дизайне: калькуляторы серии TI-92 обладают клавиатурой QWERTY и большим экраном, соответственно они не карманные. Недостатком является отсутствие отпечатанного руководства (в США они продаются с таким руководством). Для большинства руководство доступно только на CD-ROM и в Интернете. Кроме того, кабель для связи с PC надо покупать отдельно. Калькуляторы используют процессор 68000 с тактовой частотой 12 МГц (10 МГц для некоторых старых экземпляров старых моделей). Другие параметры этих калькуляторов приведены в таблице.
объём доступного пользователю ОЗУ |
объём доступной пользователю флэш-памяти |
дисплей | год выпуска | |
---|---|---|---|---|
TI-89 | 188K | 384K | 160×100 | 1998 |
TI-89 Titanium | 188K | 2.7M | 160×100 | 2004 |
TI-92 | 68K | нет | 240×128 | 1995 |
TI-92 Plus | 188K | 384K | 240×128 | 1998 |
Voyage 200 | 188K | 2.7M | 240×128 | 2000 |
В настоящее время производятся только TI-89 Titanium и Voyage 200. Из младших моделей особенно популярен TI-83 Plus.
Серия HP-49G (к которой относятся калькуляторы HP-49G, HP-49G+, а также HP-48GII и HP 50g) фирмы Hewlett-Packard использует быстрые процессоры ARM9, имеет развитую систему алгебраической (символьной) математики, обратную польскую нотацию и язык RPL (Reverse Polish Lisp). По своим возможностям эти калькуляторы ещё более продвинуты, чем TI-89/92. Однако, по отзывам пользователей, эти калькуляторы, изготовляемые в Китае, страдают от проблем чисто механического свойства: корпус пластиковый, клавиши резиновые, а главное, быстро (часто за несколько месяцев) выходят из строя. Фирма присылает новый калькулятор, но и там клавиши так же быстро ломаются. Что касается руководства, то оно отрывочно: многих сведений там просто нет. Руководство на 800 страниц выложено на сайт в электронном виде, но оно не полно и не переведено с английского языка.
Предыдущая серия, HP-48G, отличалась гораздо более высоким качеством клавиатуры и сборки, но калькуляторы этой серии больше не производятся. Частично указанные недостатки исправлены в модели HP 50g. Как и для TI-89/92, для HP-49G существует и компилятор Си, и масса игр и других программ. Параметры этих калькуляторов приведены в таблице.
объём доступного пользователю ОЗУ |
объём доступной пользователю флэш-памяти |
дисплей | процессор | год выпуска | |
---|---|---|---|---|---|
HP-48GII | 80.7K | нет | 131×64 | Arm9 48 MHz | 2004 |
HP-49G | 330K | 500K | 131×64 | Saturn 4 MHz | 2000 |
HP-49G+ | 330K | 500K | 131×80 | Arm 75 MHz | 2003 |
Фирма Casio тоже выпускает программируемые калькуляторы, в том числе цветные графические, а также с вводом информации при помощи стилуса (ClassPad 300 Plus), хотя и менее продвинутые, чем HP или TI.
Ещё более слабые калькуляторы выпускает фирма Sharp. Они обладают памятью до 30К и только базовыми возможностями — в частности, нет символьных вычислений. Вместе с тем, Sharp выпускает единственные калькуляторы с сенсорным экраном, как у КПК. Другая интересная модель — Sharp IQ-7000, представляющая собой органайзер со съёмной картой, содержащей интерпретатор с Бейсика.
Программируемые калькуляторы, в том числе графические, выпускает также Citizen. Некоторые модели (Citizen SRP-320G) считают с ошибками — например, arcsin(arccos(arctg(tg(cos(sin(9°)))))) вычисляется неправильно.
Классы компьютеров | |
---|---|
По выполняемым задачам | |
По представлению данных | |
По системе исчисления | |
По рабочей среде | |
По назначению | |
Суперкомпьютеры |
Мини (Супермини) • Персональный • Мейнфрейм |
Малые и мобильные |
Микро • Мобильное интернет-устройство • КПК • Ноутбук • Субноутбук (Ультрабук • Нетбук • Смартбук) • Планшетный (Интернет-планшет) • Электронная книга • Смартфон • Handheld PC • Slate PC • UMPC • Портативная игровая система • Терминал (Мобильный) • Носимый • Электронный переводчик • Калькулятор |
Другие |
Программируемый калькулятор.