# Graphing calculator

A graphing calculator (also graphics calculator or graphic display calculator) is a handheld computer that is capable of plotting graphs, solving simultaneous equations, and performing other tasks with variables. Most popular graphing calculators are programmable calculators, allowing the user to create customized programs, typically for scientific, engineering or education applications. They have large screens that display several lines of text and calculations.

## History

An early graphing calculator was designed in 1921 by electrical engineer Edith Clarke. The calculator was used to solve problems with electrical power line transmission.
Casio produced the first commercially available graphing calculator in 1985. Sharp produced its first graphing calculator in 1986, with Hewlett Packard following in 1988, and Texas Instruments in 1990.

## Features
### Computer algebra systems

Some graphing calculators have a computer algebra system (CAS), which means that they are capable of producing symbolic results. These calculators can manipulate algebraic expressions, performing operations such as factor, expand, and simplify. In addition, they can give answers in exact form without numerical approximations. Calculators that have a computer algebra system are called symbolic or CAS calculators.

### Laboratory usage

Many graphing calculators can be attached to devices like electronic thermometers, pH gauges, weather instruments, decibel and light meters, accelerometers, and other sensors and therefore function as data loggers, as well as WiFi or other communication modules for monitoring, polling and interaction with the teacher. Student laboratory exercises with data from such devices enhances learning of math, especially statistics and mechanics.

### Games and utilities

Since graphing calculators are typically user-programmable, they are also widely used for utilities and calculator gaming, with a sizable body of user-created game software on most popular platforms. The ability to create games and utilities has spurred the creation of calculator application sites (e.g., Cemetech) which, in some cases, may offer programs created using calculators' assembly language. Even though handheld gaming devices fall in a similar price range, graphing calculators offer superior math programming capability for math based games. However ,due to poor display resolution, slow processor speed and lack of a dedicated keyboard, they are mostly preferred only by high school students.
However, for developers and advanced users like researchers, analysts and gamers, third-party software development involving firmware modifications, whether for powerful gaming or exploiting capabilities beyond the published data sheet and programming language, is a contentious issue with manufacturers and education authorities as it might incite unfair calculator use during standardized high school and college tests where these devices are targeted.

## Software Graphing Calculators

There are many graphing calculators that do not require dedicated hardware, but run on a device in a web browser or as an app. Notable graphing calculators of this type include Desmos and GeoGebra.

## Graphing calculators in education

* North America – high school mathematics teachers allow and even encourage their students to use graphing calculators in class. In some cases (especially in calculus courses) they are required.
* College Board of the United States – permits the use of most graphing or CAS calculators that do not have a QWERTY-style keyboard for parts of its AP and SAT exams, but the ACT exam and IB schools do not permit the use of calculators with computer algebra systems.
* United Kingdom – a graphing calculator is allowed for A-level maths courses, however they are not required and the exams are designed to be broadly 'calculator neutral'. Similarly, at GCSE, all current courses include one paper where no calculator of any kind can be used, but students are permitted to use graphical calculators for other papers. The use of graphical calculators at GCSE is not widespread with cost being a likely factor. The use of CAS is not allowed for either A-level or GCSE. Similarly, calculators with QWERTY keyboard layout are also not allowed as well. The Scottish SQA allows the use of graphic calculators in maths exams (excluding paper 1, which is exclusively non-calculator), however these should either be checked before exams by invigilators or handed out by the exam centre, as certain functions / information is not allowed to be stored on a calculator in the exam.
* Finland and Slovenia – and certain other countries, it is forbidden to use calculators with symbolic calculation (CAS) or 3D graphics features in the matriculation exam. This changed in the case of Finland, however, as symbolic calculators were allowed from spring 2012 onwards.
* Norway – calculators with wireless communication capabilities, such as IR links, have been banned at some technical universities.
* Australia – policies vary from state to state.
** Victoria – the VCE specifies approved calculators as applicable for its mathematics exams. For Further Mathematics an approved graphics calculator (for example TI-83/84, Casio 9860, HP-39G) or CAS (for example TI-89, the ClassPad series, HP-40G) can be used. Mathematical Methods (CAS) has a technology free examination consisting of short answer and some extended answer questions. It then also has a technology-active examination consisting of extended response and multiple choice questions: a CAS is the assumed technology for Mathematical Methods (CAS). Specialist Mathematics has a technology free examination and a technology-active examination where either an approved graphics calculator or CAS may be used. Calculator memories are not required to be cleared. In subjects like Physics and Chemistry, students are only allowed a standard scientific calculator.
** Western Australia – all tertiary entrance examinations in Mathematics involve a calculator section which assume the student has a graphics calculator; CAS enabled calculators are also permitted. In subjects such as Physics, Chemistry and Accounting only non-programmable calculators are permitted.
** New South Wales – graphics calculators are allowed for the General Mathematics Higher School Certificate exam, but disallowed in the higher level Mathematics courses.
* China - Only the Shanghai College Entrance Examination allows the use of calculators without graphing and memory. Except for Shanghai, the other provinces and cities do not allow the use of calculators, so calculators in general are banned in primary and secondary education in most parts of China.
* India - Calculators are prohibited in primary and secondary education. (ICSE allows the Casio fx-82MS, or equivalent scientific calculator in 12th boards). University degree and diploma courses have their own rules on use of permitted models of calculators in exams. Casio's fx-991MS, fx-991ES, fx-100MS, and fx-350MS scientific calculators are used in many university degree and diploma courses. These calculators are also permitted for university exams as they are non-programmable since programmable calculators are not allowed for university exams. During the online GATE examinations and other competitive examinations, candidates are provided with a virtual scientific calculator as physical calculators of any type are not permitted.
* New Zealand – Calculators identified as having high-level algebraic manipulation capability are prohibited in NCEA examinations unless specifically allowed by a standard or subject prescription. This includes calculators such as the TI-89 series .
* Turkey – any type of calculator whatsoever is prohibited in all primary and high schools.
* Singapore – graphing calculators are used in junior colleges; it is required in the Mathematics paper of the GCE 'A' Levels, and most schools use the TI-84 Plus or TI-84 Plus Silver Edition.
* Netherlands – high school students are obliged to use graphing calculators during tests and exams in their final three years. Most students use the TI-83 Plus or TI-84 Plus, but other graphing calculators are allowed, including the Casio fx-9860G and HP-39G. Graphing calculators are almost always allowed to be used during tests instead of normal calculators, which sometimes results in cheat sheets being made on forehand and exchanged before the test starts using link cables.
* Israel – Graphing calculators are forbidden to use in the Bagrut (equivalent to the British A-Levels) math exam, in addition to programmable calculators. University degree and diploma courses have their own rules on use and permitted models of calculators in exams.

## Programming

Most graphing calculators, as well as some non-graphing scientific calculators and programmer's calculators can be programmed to automate complex and frequently used series of calculations and those inaccessible from the keyboard.
The actual programming can often be done on a computer then later uploaded to the calculators. The most common tools for this include the PC link cable and software for the given calculator, configurable text editors or hex editors, and specialized programming tools such as the below-mentioned implementation of various languages on the computer side.
Earlier calculators stored programs on magnetic cards and the like; increased memory capacity has made storage on the calculator the most common implementation. Some of the newer machines can also use memory cards.
Many graphing and scientific calculators will tokenize the program text, replacing textual programming elements with short numerical tokens. For example, take this line of TI-BASIC code: Disp [A] . In a conventional programming language, this line of code would be nine characters long (eight not including a newline character). For a system as slow as a graphing calculator, this is too inefficient for an interpreted language. To increase program speed and coding efficiency, the above line of code would be only three characters. "Disp_" as a single character, "[A]" as a single character, and a newline character. This normally means that single byte chars will query the standard ASCII chart while two byte chars (the Disp_ for example) will build a graphical string of single byte characters but retain the two byte character in the program memory. Many graphical calculators work much like computers and use versions of 7-bit, 8-bit or 9-bit ASCII-derived character sets or even UTF-8 and Unicode. Many of them have a tool similar to the character map on Windows.
They also have BASIC like functions such as chr$, chr, char, asc, and so on, which sometimes may be more Pascal or C like. One example may be use of ord, as in Pascal, instead of the asc of many Basic variants, to return the code of a character, i.e. the position of the character in the collating sequence of the machine.
A cable and/or IrDA transceiver connecting the calculator to a computer make the process easier and expands other possibilities such as on-board spreadsheet, database, graphics, and word processing programs. The second option is being able to code the programs on board the calculator itself. This option is facilitated by the inclusion of full-screen text editors and other programming tools in the default feature set of the calculator or as optional items. Some calculators have QWERTY keyboards and others can be attached to an external keyboard which can be close to the size of a regular 102-key computer keyboard. Programming is a major use for the software and cables used to connect calculators to computers.
The most common programming languages used for calculators are similar to keystroke-macro languages and variants of BASIC. The latter can have a large feature set—approaching that of BASIC as found in computers—including character and string manipulation, advanced conditional and branching statements, sound, graphics, and more including, of course, the huge spectrum of mathematical, string, bit-manipulation, number base, I/O, and graphics functions built into the machine.
Languages for programming calculators fall into all of the main groups, i.e. machine code, low-level, mid-level, high-level languages for systems and application programming, scripting, macro, and glue languages, procedural, functional, imperative &. object-oriented programming can be achieved in some cases.
Most calculators capable to being connected to a computer can be programmed in assembly language and machine code, although on some calculators this is only possible through using exploits. The most common assembly and machine languages are for TMS9900, SH-3, Zilog Z80, and various Motorola chips (e.g. a modified 68000) which serve as the main processors of the machines although many (not all) are modified to some extent from their use elsewhere. Some manufacturers do not document and even mildly discourage the assembly language programming of their machines because they must be programmed in this way by putting together the program on the PC and then forcing it into the calculator by various improvised methods.
Other on-board programming languages include purpose-made languages, variants of Eiffel, Forth, and Lisp, and Command Script facilities which are similar in function to batch/shell programming and other glue languages on computers but generally not as full featured. Ports of other languages like BBC BASIC and development of on-board interpreters for Fortran, REXX, AWK, Perl, Unix shells (e.g., bash, zsh), other shells (DOS/Windows 9x, OS/2, and Windows NT family shells as well as the related 4DOS, 4NT and 4OS2 as well as DCL), COBOL, C, Python, Tcl, Pascal, Delphi, ALGOL, and other languages are at various levels of development.
Some calculators, especially those with other PDA-like functions have actual operating systems including the TI proprietary OS for its more recent machines, DOS, Windows CE, and rarely Windows NT 4.0 Embedded et seq, and Linux. Experiments with the TI-89, TI-92, TI-92 Plus and Voyage 200 machines show the possibility of installing some variants of other systems such as a chopped-down variant of CP/M-68K, an operating system which has been used for portable devices in the past.
Tools which allow for programming the calculators in C/C++ and possibly Fortran and assembly language are used on the computer side, such as HPGCC, TIGCC and others. Flash memory is another means of conveyance of information to and from the calculator.
The on-board BASIC variants in TI graphing calculators and the languages available on the HP-48 series can be used for rapid prototyping by developers, professors, and students, often when a computer is not close at hand.
Most graphing calculators have on-board spreadsheets which usually integrate with Microsoft Excel on the computer side. At this time, spreadsheets with macro and other automation facilities on the calculator side are not on the market. In some cases, the list, matrix, and data grid facilities can be combined with the native programming language of the calculator to have the effect of a macro and scripting enabled spreadsheet.

## Gallery

* Casio fx-7000GA, c. 1987, an improved version of the fx-7000G
* HP28S, c. 1989, the first graphing calculator made by Hewlett-Packard
* TI-81, c. 1990, the first graphing calculator made by Texas Instruments
* HP48 Series, c. 1992, the first graphing calculator by HP to use Reverse Polish Notation (RPN) and also SD card expansion
* TI-92, c. 1996, the first graphing calculator in a PDA form factor, the first graphing calculator to have Computer Algebra System (CAS) and the first graphing calculator to have 3D graphing capability
* TI-83, c. 1996, one of the most commercially successful graphing calculators and a forebearer to the more successful TI-84 and TI-84 Plus
* Casio Classpad 300, c. 2003, the first graphing calculator with a touchscreen display
* Casio fx-CG 20, c. 2011, the first graphing calculator with a colour display