Графический калькулятор (также графический калькулятор или графический дисплейный калькулятор ) — это карманный компьютер , способный строить графики , решать уравнения и выполнять другие задачи с переменными . Большинство популярных графических калькуляторов — это программируемые калькуляторы , позволяющие пользователю создавать собственные программы, как правило, для научных, инженерных или образовательных приложений. Они имеют большие экраны, на которых отображаются несколько строк текста и расчетов.
Первый графический калькулятор был разработан в 1921 году инженером-электриком Эдит Кларк . [1] [2] [3] Калькулятор использовался для решения задач, связанных с передачей электроэнергии по линиям электропередач. [4]
Casio выпустила первый коммерчески доступный графический калькулятор в 1985 году. Sharp выпустила свой первый графический калькулятор в 1986 году, за ней в 1988 году последовала Hewlett Packard , а в 1990 году — Texas Instruments. [ необходима цитата ]
Некоторые графические калькуляторы имеют систему компьютерной алгебры (CAS), что означает, что они способны выдавать символьные результаты. Эти калькуляторы могут манипулировать алгебраическими выражениями, выполняя такие операции, как факторизация, расширение и упрощение. Кроме того, они могут выдавать ответы в точной форме без числовых приближений. [5] Калькуляторы, имеющие систему компьютерной алгебры, называются символьными или CAS-калькуляторами.
Многие графические калькуляторы могут быть подключены к таким устройствам, как электронные термометры , pH- метры, метеорологические приборы, децибел- и люксметры , акселерометры и другие датчики, и, следовательно, функционировать как регистраторы данных , а также как WiFi или другие модули связи для мониторинга, опроса и взаимодействия с учителем. Студенческие лабораторные упражнения с данными с таких устройств улучшают изучение математики, особенно статистики и механики. [6]
Поскольку графические калькуляторы обычно программируются пользователем, они также широко используются для утилит и игровых калькуляторов , с большим количеством созданного пользователем игрового программного обеспечения на большинстве популярных платформ. [7] Возможность создавать игры и утилиты стимулировала создание сайтов приложений для калькуляторов (например, Cemetech ), которые в некоторых случаях могут предлагать программы, созданные с использованием языка ассемблера калькуляторов . Несмотря на то, что карманные игровые устройства попадают в аналогичный ценовой диапазон, графические калькуляторы предлагают превосходные возможности математического программирования для игр, основанных на математике. Однако из-за низкого разрешения дисплея, низкой скорости процессора и отсутствия специальной клавиатуры их в основном предпочитают только ученики старших классов. [7]
Однако для разработчиков и продвинутых пользователей, таких как исследователи, аналитики и геймеры, разработка стороннего программного обеспечения, включающая в себя модификации прошивки, будь то для мощных игр или использования возможностей, выходящих за рамки опубликованных технических характеристик и языка программирования, является спорным вопросом для производителей и органов образования, поскольку это может спровоцировать недобросовестное использование калькуляторов во время стандартизированных тестов в старших классах и колледжах, где эти устройства являются мишенью.
Большинство графических калькуляторов, а также некоторые неграфические научные калькуляторы и калькуляторы для программистов можно запрограммировать на автоматизацию сложных и часто используемых последовательностей вычислений, а также тех, которые недоступны с клавиатуры.
Фактическое программирование часто может быть выполнено на компьютере, а затем загружено в калькуляторы. Наиболее распространенные инструменты для этого включают кабель связи с ПК и программное обеспечение для данного калькулятора, настраиваемые текстовые редакторы или шестнадцатеричные редакторы, а также специализированные инструменты программирования, такие как нижеупомянутая реализация различных языков на стороне компьютера.
Раньше калькуляторы хранили программы на магнитных картах и т. п.; увеличение объема памяти сделало хранение на калькуляторе наиболее распространенной реализацией. Некоторые из новых машин также могут использовать карты памяти.
Многие графические и научные калькуляторы токенизируют текст программы, заменяя текстовые элементы программирования короткими числовыми токенами. Например, возьмем эту строку кода TI-BASIC: Disp [A]
. В обычном языке программирования эта строка кода будет длиной в девять символов (восемь, не включая символ новой строки). Для такой медленной системы, как графический калькулятор, это слишком неэффективно для интерпретируемого языка . Чтобы увеличить скорость программы и эффективность кодирования, приведенная выше строка кода будет состоять всего из трех символов. «Disp_» как один символ, «[A]» как один символ и символ новой строки. Обычно это означает, что однобайтовые символы будут запрашивать стандартную таблицу ASCII , в то время как двухбайтовые символы (например, Disp_) будут строить графическую строку из однобайтовых символов, но сохранять двухбайтовый символ в памяти программы. Многие графические калькуляторы работают во многом как компьютеры и используют версии 7-битных, 8-битных или 9-битных производных от ASCII наборов символов или даже UTF-8 и Unicode . Во многих из них есть инструмент, похожий на таблицу символов в Windows.
Они также имеют функции, подобные BASIC, такие как chr$, chr, char, asc и т. д., которые иногда могут быть больше похожи на Pascal или C. Одним из примеров может быть использование ord , как в Pascal , вместо asc многих вариантов Basic, для возврата кода символа, т. е. положения символа в последовательности сортировки машины.
Кабель и/или IrDA- приемопередатчик, соединяющий калькулятор с компьютером, облегчают процесс и расширяют другие возможности, такие как встроенные программы для работы с электронными таблицами, базами данных, графикой и текстовыми редакторами. Второй вариант — возможность кодировать программы на самом калькуляторе. Этот вариант облегчается включением полноэкранных текстовых редакторов и других инструментов программирования в стандартный набор функций калькулятора или в качестве дополнительных элементов. Некоторые калькуляторы имеют QWERTY- клавиатуры, а другие могут быть подключены к внешней клавиатуре, которая может быть близка по размеру к обычной 102-клавишной компьютерной клавиатуре. Программирование — это основное применение программного обеспечения и кабелей, используемых для подключения калькуляторов к компьютерам.
Наиболее распространенные языки программирования, используемые для калькуляторов, похожи на языки макросов нажатия клавиш и варианты BASIC . Последний может иметь большой набор функций — приближающийся к BASIC, который используется в компьютерах — включая манипуляцию символами и строками, расширенные условные операторы и операторы ветвления, звук, графику и многое другое, включая, конечно, огромный спектр математических, строковых, битовых манипуляций, базовых чисел, ввода-вывода и графических функций, встроенных в машину.
Языки программирования калькуляторов делятся на все основные группы, то есть языки машинного кода, низкоуровневые, среднеуровневые, высокоуровневые языки для системного и прикладного программирования, скриптовые, макроязыки и связующие языки, процедурные, функциональные, императивные и. В некоторых случаях может быть реализовано объектно-ориентированное программирование.
Большинство калькуляторов, которые можно подключить к компьютеру, можно запрограммировать на языке ассемблера и машинном коде, хотя на некоторых калькуляторах это возможно только с помощью эксплойтов. Наиболее распространенные языки ассемблера и машинного кода используются для TMS9900 , SH-3 , Zilog Z80 и различных чипов Motorola (например, модифицированный 68000 ), которые служат основными процессорами машин, хотя многие (не все) в некоторой степени модифицированы из-за их использования в других местах. Некоторые производители не документируют и даже мягко препятствуют программированию на языке ассемблера своих машин, потому что их нужно программировать таким образом, собирая программу на ПК, а затем принудительно вставляя ее в калькулятор различными импровизированными методами.
Другие встроенные языки программирования включают в себя специальные языки, варианты Eiffel , Forth и Lisp , а также средства Command Script, которые по функциям похожи на пакетное/оболочечное программирование и другие связующие языки на компьютерах, но в целом не такие полнофункциональные. Порты других языков, таких как BBC BASIC и разработка встроенных интерпретаторов для Fortran , REXX , AWK , Perl , оболочек Unix (например, bash , zsh ), других оболочек ( DOS / Windows 9x , OS/2 и семейства оболочек Windows NT , а также связанных с ними 4DOS , 4NT и 4OS2 , а также DCL ), COBOL , C , Python , Tcl , Pascal , Delphi , ALGOL и других языков находятся на разных уровнях разработки.
Некоторые калькуляторы, особенно те, которые имеют другие функции, подобные функциям КПК, имеют реальные операционные системы, включая фирменную ОС TI для своих более поздних машин, DOS , Windows CE и редко Windows NT 4.0 Embedded et seq, и Linux . Эксперименты с машинами TI-89 , TI-92 , TI-92 Plus и Voyage 200 показывают возможность установки некоторых вариантов других систем, таких как урезанный вариант CP/M-68K , операционной системы, которая использовалась для портативных устройств в прошлом.
На стороне компьютера используются инструменты, позволяющие программировать калькуляторы на языках C/C++ и, возможно, Fortran и ассемблер, такие как HPGCC , TIGCC и др. Флэш-память — еще одно средство передачи информации на калькулятор и с него.
Встроенные варианты BASIC в графических калькуляторах TI и языки, доступные в калькуляторах типа HP-48, могут использоваться разработчиками, преподавателями и студентами для быстрого создания прототипов, часто когда компьютера нет под рукой.
Большинство графических калькуляторов имеют встроенные электронные таблицы, которые обычно интегрируются с Microsoft Excel на стороне компьютера. В настоящее время электронные таблицы с макросами и другими средствами автоматизации на стороне калькулятора не представлены на рынке. В некоторых случаях функции списка, матрицы и сетки данных можно объединить с собственным языком программирования калькулятора, чтобы получить эффект таблицы с поддержкой макросов и сценариев.