# QBASIC

QBasic es un entorno de desarrollo integrado y un Intérprete para una variante del lenguaje de programación BASIC basada en el compilador QuickBASIC. El código introducido en el IDE es compilado a una forma intermedia, y esta es inmediatamente interpretada en demanda dentro del IDE. Puede correr bajo casi todas las versiones del DOS y de Windows, o con DOSBox/DOSEMU, en Linux y FreeBSD. En su tiempo, QBasic proveyó de un IDE avanzado, incluyendo un depurador con características tales como evaluación de expresiones y modificación del código velozmente. El entorno de desarrollo de QBASIC incluye varias características aún raras en entornos de desarrollo actuales.
Al igual que QuickBASIC, pero a diferencia de versiones anteriores del Microsoft BASIC, el QBasic es un lenguaje de programación estructurada, soportando construcciones tales como subrutinas y bucles while. los números de líneas, un concepto a menudo asociado al BASIC, son soportados para la compatibilidad, pero no se considera una buena forma, siendo reemplazados por etiquetas descriptivas. QBasic tiene limitado soporte para los tipos de datos definidos por el usuario (estructuras), y varios tipos primitivos usados para contener strings de texto o datos numéricos.
QBASIC fue también utilizado para enseñar programación a personas que no tenían mucho conocimiento de lo que es la programación.

## Historia

QBasic fue creado en 1991 con el objeto de reemplazar al BASICA y GW-BASIC como un lenguaje de programación para el usuario final. Fue basado en el anterior compilador QuickBASIC 4.5 pero sin los elementos del compilador y del enlazador del QuickBASIC. La versión 1.0 fue despachada junto con el MS-DOS 5.0 y posteriores, así como con Windows 95, Windows NT 3.x, y Windows NT 4.0. IBM recompiló el QBasic y lo incluyó en PC-DOS 5.x, así como desde el OS/2 2.0 en adelante. El eComStation, descendiente del código del OS/2, incluye el QBasic 1.0. El QBasic 1.1 es incluido con el MS-DOS 6.x, y, sin el EDIT, en Windows 95, Windows 98 y Windows Me.
Microsoft lo incluyó como opcional en los discos de instalación de Windows 95 y Windows 98, incluido en el paquete olddos.exe, pero dejó de distribuir QBASIC en siguientes versiones de Windows. Comenzando con Windows 2000, Microsoft ya no incluye QBasic. (Sin embargo, algunas versiones localizadas del Windows 2000 y Windows XP todavía lo tienen, y puede ser entregado como freeware). Actualmente es distribuido únicamente a través del sitio web de Microsoft para usuarios con licencia de uso de MS-DOS.
QBasic (así como el MS-DOS Editor incorporado) es compatible hacia atrás con los lanzamientos del DOS antes de 5.0 (hasta por lo menos el DOS 3.20). Sin embargo, si es usado en cualquier computador de 8088/8086, o en algunos computadores 80286, el programa QBasic puede correr muy lentamente, o quizás en absoluto, debido a su tamaño en la memoria. Hasta el MS-DOS 7, el MS-DOS Editor requería al QBasic. El programa "edit.com" simplemente comienza QBasic en modo de edición solamente, y este modo puede también ser entrado corriendo QBASIC.EXE con el swiche /EDIT (es decir, la línea de comando "QBASIC /EDIT").
Con posterioridad han aparecido productos que continuaban el estándar QBASIC/QuikBASIC, entre ellos el PowerBASIC, el FreeBASIC y el QB64/QB32.

## Ejemplos

Los ejemplos que se pueden presentar de programas escritos en este lenguaje son muchos, veamos algunos que nos permiten ver el formato de este lenguaje de programación.

### Ejemplos que vienen con el QBasic

QBasic vino completo con cuatro programas de ejemplo escritos de antemano. Estos eran "Nibbles" (una variante del juego Snake), "gorilas", un juego de artillería, "MONEY MANAGER", manejador de finanzas personales y un "RemLine", un programa removedor de número de líneas para código de GW-BASIC.

### Hola mundo

El siguiente es un muy sencillo programa de "hola mundo" escrito en QBASIC:

### Ecuación de segundo grado

Programa para resolver una ecuación de segundo grado:
    $Ax^{2}+Bx+C=0\,$
Este programa contempla el siguiente árbol de decisión:
    $ax^{2}+bx+c=0\left\{{\begin{array}{ll}a=0&\left\{{\begin{array}{ll}b=0&\left\{{\begin{array}{ll}c=0&\longrightarrow Sin\;ecuaci{\acute {o}}n\\\\c\neq 0&\longrightarrow Imposible\end{array}}\right.\\\\b\neq 0&\longrightarrow \;Ecuaci{\acute {o}}n\;de\;1^{e}\;grado\end{array}}\right.\\\\a\neq 0&\left\{{\begin{array}{ll}b^{2}-4ac<0&\longrightarrow Ra{\acute {\imath }}z\;compleja\\\\b^{2}-4ac=0&\longrightarrow Soluci{\acute {o}}n\;real\;{\acute {u}}nica\\\\b^{2}-4ac>0&\longrightarrow Dos\;soluciones\;reales\end{array}}\right.\end{array}}\right.$
Resolviendo en cada caso los valores de x que cumplen la ecuación, se emplea la instrucción IF para seleccionar el caso concreto y realiza las operaciones oportunas, presentando según el caso la solución de x que cumple la ecuación, contemplándose casos extremos como: a=0, b=0, c=0.