# TI-Basic

TI-Basic es el nombre por el que es conocido el lenguaje de programación integrado en algunas calculadoras gráficas programables de Texas Instruments. Se asemeja al lenguaje BASIC clásico, de ahí su nombre. Al igual que este último, es un lenguaje de programación imperativo.
Existen dos variantes básicas del TI-Basic, una es la incluida en las calculadoras basadas en el procesador Zilog Z80 tales como las TI-82 y TI-85 entre otras, otra es la que se incluye en las calculadoras basadas en el procesador Motorola 68000, como las TI-89, TI-92 y TI Voyage 200. La nueva familia de calculadoras la TI-Nspire y la TI-Nspire_CAS incluyen también programación en lenguaje TI-BASIC compatibles con la TI-89 (Titanium) TI Voyage200

## Descripción del lenguaje
### Tipos de datos

Las variables utilizables son las mismas que las que se pueden utilizar directamente para efectuar cálculos sin programar, por ejemplo, en el caso de la TI-83:
* Las variables A-Z, Φ (variables numéricas).
* Las listas estadísticas L$_0$-$_6$ (listas numéricas).
* Las matrices [A]-[J] (matrices numéricas).
* Las funciones Y$_0$-Y$_9$ (ídem).
* Las variables gráficas Pic0-Pic9 (imágenes gráficas).
* Las cadenas Str0-Str9 (ídem de caracteres)
* Las variables del sistema.
* Otras.
Este es el punto que más cambia entre cada variante de TI-Basic, ya que las variables disponibles dependen de la capacidad concreta de cada calculadora, por ejemplo la TI-82 solo tiene disponibles las matrices [A]-[E], y la TI-89 puede dar cualquier nombre a las variables numéricas, no solo una letra.
Se trata de un lenguaje de programación de tipado fuerte, debido a que no es posible modificar o elegir el tipo de datos de las variables. Las variables no tienen necesidad de declararse antes de utilizarse en una expresión y son globales.

### Sintaxis

La sintaxis es muy simple y adaptada a los principiantes en programación. Debido a que estas calculadoras son de uso muy común en algunas escuelas técnicas universitarias, constituye, tal como ocurre con el propio BASIC, un método sencillo de iniciarse en la programación.
Por el contrario, las posibilidades de uso general están reducidas y básicamente centradas en resolver algoritmos matemáticos, aunque existen bastantes juegos programados en TI-Basic, debido a la pantalla de tamaño razonable que contienen estas calculadoras.
No es posible crear funciones, métodos o procedimientos. La única posibilidad es llamar otros programas almacenados en forma de subrutina, sin soportar argumentos, aunque como las variables son globales existe la convención de pasar un parámetro a través de la variable Ans.
Los errores de sintaxis o excepciones se indican de la misma manera que cuando se provocan de forma directa, es decir, indicando la causa del problema y parando la ejecución, dando la opción de cargar el editor de programas integrado en el punto que causó el error para poder corregirlo.
Ti-Basic soporta los conceptos fundamentales de control de flujo que tienen la mayoría de los lenguajes de programación. Entre ellas se encuentras las siguientes instrucciones:
* La asignación, con la curiosa sintaxis EXPRESIÓN -> VARIABLE. Por ejemplo 5 -> A, almacena el valor 5 en la variable numérica A.
* Las instrucciones condicionales: If, Then, Else.
* Los bucles While, Repeat, For.
* La instrucción End, que indica el final de las instrucciones a ejecutar dentro de un grupo condicional o bucle.
* Las ramificaciones, con la instrucción Goto y las etiquetas designada por Lbl. prgmNOMBRE permite llamar a una subrutina y Menú permite mostrar un menú de opciones y saltar a una etiqueta concreta según la opción seleccionada.
* Otras dependiendo de la variante exacta de TI-Basic.
Las instrucciones de entrada/salida son:
* Input y Prompt, con el fin de entrar un valor por el teclado y almacenarlo en una variable.
* Output, para escribir en un lugar determinado de la pantalla de texto.
* Disp, que escribe detrás de la posición actual del cursor de la pantalla de texto.
* DispGraph, DispTable, muestran la pantalla de gráficos o la pantalla de tabla de valores.
* ClrHome, ClrTable, quienes borran la pantalla de texto o la de tabla de valores.
* Get y Send que importa o exporta una variable a o desde un dispositivo externo (generalmente otra calculadora).
* getKey permite para obtener la tecla pulsada.
* Otras más, dependiendo de la variante de TI-Basic.
Además están los cientos de funciones matemáticas y gráficas integradas en la calculadora están disponibles para la programación. Por ejemplo, sin( devuelve el seno de la expresión o ptOn(, que dibuja un píxel de color negro en un punto determinado de la pantalla gráfica. Una muestra de sintaxis de la primera función sería sin (B) -> A, que almacena el seno de lo que contenga la variable B en la variable A.
Al igual que en el BASIC tradicional, normalmente se escribe una instrucción por línea, aunque se puede escribir más de una instrucción por línea, separándolas con el signo dos puntos.

## Ejemplos de programas

El siguiente programa borrará la pantalla y escribirá el mensaje HOLA MUNDO:
Este programa suma los números enteros entre 1 y 20 y guarda el resultado en la variable A. Después borra la pantalla y muestra el valor de la variable A:
El siguiente programa entra en un bucle infinito que muestra continuamente la tecla pulsada, excepto la tecla On, que sirve para abortar la ejecución de un programa de forma predefinida.
Una característica común de los juegos en TI-BASIC es usar las teclas del cursor para mover un objeto en pantalla. Este programa pinta un punto en la pantalla y lo mueve según la tecla del cursor pulsada. El código anterior a Lbl 1 inicializa la pantalla gráfica direccionable pixel a pixel.
Este código el lento y grande. El siguiente código hace lo mismo de forma más optimizada. Por ejemplo, los paréntesis de cierre de funciones en TI-Basic no son necesarios.