Está en la página 1de 3

Cursos

Rincón del
programador
El lenguaje BASIC
A menudo usamos Just BASIC para ilustrar principios de programación, y hoy verás lo flexible que es

E
n una escena de Star Trek,
En este número… la tripulación del
Enterprise se desplazaba
3 CONTENIDOS hasta finales del siglo XX
BASIC es el lenguaje ideal para
realizar pruebas y prototipos. para buscar un par de ballenas. El
Aprende a manejarlo con Just BASIC. ingeniero Scott se dirigió a un
ordenador para que le informara,
pero éste ni se inmutó. Y, cuando a
Materiales… continuación alguien le alargó un
ratón, trató de utilizarlo como si
3 JUST BASIC fuera un micrófono. Al igual que
Substituye el viejo QBasic por este Scott, nosotros también nos hemos
compilador más actualizado (que se familiarizado con algunas interfaces
incluye en el SuperDVD).
de ordenador, e incorrectamente las
denominamos “intuitivas”.
En 1964, John Kemeny y Tom
Kurtz vieron la necesidad de un
lenguaje informático sencillo de
1 Thomas Kurtz y John Kemeny inventaron BASIC para demostrar cómo una
cara a sus estudiantes, y el resultado
sintaxis simple podía utilizarse para la programación de alto nivel.
fue BASIC, que se dirigía totalmente
a los programadores sin intenciones de Kemeny y Kurtz, y al que los programadores puedan
experiencia. El nombre era un mismo tiempo satisfacer las escribir aplicaciones que
acrónimo de Beginner’s All-Purpose necesidades de programación aprovechen las prestaciones
Symbolic Instruction Code, y su estándar. adicionales de este sistema.
estructura resultó tan elástica que En consecuencia, Just BASIC
se adaptó y actualizó para nuevos Propósito de BASIC constituye una mezcla de rutinas
sistemas e incluso nuevos métodos En su forma original, BASIC nunca especializadas orientadas a eventos
de programación como la orientada fue pensado para ocuparse de (de cara al teclado y el ratón), más
a objetos (aunque siempre debe ventanas, menús y ratones, y las instrucciones clásicas que
recordarse que fue creado como tampoco manejaba la gestión de encontramos en BASIC y otros
herramienta de aprendizaje). pulsaciones de teclas individuales o lenguajes. Asimismo, aunque BASIC
Por tanto, cada nueva versión de “eventos” de dispositivo. funcione de manera muy diferente,
BASIC tiene que ser sencilla y Just BASIC se propone encajar en su superficie se parece bastante
adaptable de acuerdo con las en el contexto de Windows y hacer a Fortran, que fue el primer lenguaje

Hazlo así… Animación por medio de sprites

Nuestros ojos ven una serie de escenas fijas, y a


1 través de la “persistencia de la visión” la mente 2 Just BASIC lleva a cabo la animación usando este
sistema. Cada imagen debe ser registrada como 3 A partir de esta doble imagen, el intérprete de
Just BASIC separará la imagen real de su fondo
percibe movimiento. Así, podremos simular el doble bitmap; es decir, como si se tratase de dos (que no interviene en la animación). Al final
movimiento de objetos mostrando imágenes imágenes distintas, una encima de la otra. La imagen deberíamos contar con varios archivos BMP de imagen
diferentes separadas por pequeños intervalos. El uso superior es una máscara del objeto, que lo representa doble, que corresponderán a cada una de las que
de más imágenes hará que el resultado sea más fluido. como si fuese una silueta. forman la secuencia.

106 | Mayo 2006


Rincón del programador Cursos

En detalle… Elementos que faltan


Como en Just BASIC faltan de datos erróneos. Pero nuestra conviertan un entero en
algunos de los componentes de nueva función MOD puede hexadecimal?
BASIC, ello nos obliga a buscar ocuparse de ello de forma detallada. Con el tiempo creamos Piecrust.
nuevas soluciones. Por ejemplo, Ten en cuenta que MOD produce BAS para QBASIC, una plantilla que
ya no existen ni MOD ni la el resto de una división de enteros, podía utilizarse con cualquier
división de enteros [\], funciones de modo que estas dos funciones programa al incorporar varias
que poseen un gran valor a la ausentes se hallan muy relacionadas. subrutinas necesarias. Por ejemplo,
hora de trabajar con la fecha y la De hecho, IntDivide(A, B) y MOD(A, como no existía ninguna forma de
hora y realizar muchos otros B) utilizan ambos los mismos editar las subrutinas de una
1 Algunos cálculos disponibles
cálculos. Ello nos obligó a elementos, pero MOD es el resto que biblioteca, Piecrust puede servir
en QBasic no figuran en Just
desarrollar funciones que se ignora en IntDivide. como plantilla y biblioteca.
BASIC, pero sin embargo es
desempeñaran la misma tarea. También resulta molesto que Pero, si bien una plantilla puede
posible reinventarlos.
Incluso en QBASIC resultaba Just BASIC no ofrezca notación resultar útil, con Just BASIC estamos
fácil olvidarse de cómo eran hexadecimal. En QBASIC era posible más cerca de contar con una de notas como interfaz con una
tratadas las fracciones y establecer constantes biblioteca, ya que su editor/ biblioteca fuente propia, y con el
negativos: (A MOD B) donde B no hexadecimales, pero como ahora intérprete es capaz de intercambiar tiempo también podría crearse
es un entero resulta poco hay que suministrarlas contenido con el portapapeles (a un editor más sofisticado que
corriente, y si aparece personalmente... ¿por qué no crear diferencia del QBASIC vinculado a haga todo lo necesario salvo
seguramente será a consecuencia funciones o subrutinas que DOS). Incluso es posible usar el Bloc interpretar y ejecutar. ■

de alto nivel ampliamente usado. La Tipos de ventanas agrupados en forma de archivos. El perfilado para usarse en un
instrucción característica es A = B, La principal diferencia entre Just programa procesaba un registro moderno entorno con ventanas. A
que quiere decir “computar el BASIC y QBASIC radica en el uso de (extrayendo o cambiando raíz de ello maneja diferentes tipos
resultado de B –que puede ser una las ventanas como interfaces. En las información) y después pasaba al de ventanas como por ejemplo
complicada fórmula matemática– y modalidades tradicionales de BASIC siguiente, y la salida era un pequeño Main, que funciona igual que el
asignárselo a A”. Pero los hay un dispositivo de salida para registro de resumen o varios que dispositivo general de salida del
componentes orientados a eventos presentar (PRINT) información, el reflejaban diferentes registros de antiguo BASIC. Por tanto, su misión
constituyen una novedad y cual es tratado más o menos como entrada. A su vez, el time sharing es la de actuar como un receptáculo
encarnan la diferencia entre el si fuese una pizarra en blanco (el significaba que un ordenador no de listas derivadas de los datos de
BASIC tradicional y esta nueva programador escribe registros podía limitarse a ejecutar tareas a entrada, y a raíz de ello se asemeja a
encarnación. consecutivos y éstos aparecen en destajo, sino que era una una hoja de papel en blanco que se
Por lo demás, la afirmación de forma de lista). Algunos comandos herramienta interactiva que se va utilizando según hace falta. Si la
Just BASIC de que “ya conocemos” adicionales –LOCATE y demás– ocupaba de los registros uno por salida de un programa es texto,
la mayor parte del lenguaje es falsa, otorgan la capacidad de recorrer el uno y se comunicaba directamente normalmente se escribe en la
dado que es necesario realizar área de visualización y cambiar lo con el usuario. BASIC se construyó ventana principal, que cuenta con
ajustes en muchos aspectos que aparece de varias maneras, y para satisfacer este segundo papel muchas ventajas como por ejemplo
diferentes. Aunque tampoco cabe también existe la opción de dividir interactivo, y aunque puede un menú desplegable desde el que
duda de que los conocimientos este espacio en dos partes. generar programas de imprimir sus contenidos o bien
previos de, por ejemplo, QBASIC Cuando BASIC fue creado, los procesamiento por lotes, ese no es almacenarlos en el disco. Sin
agilizarán en gran parte su programas no se comunicaban con fuerte. embargo, esta ventana no es
aprendizaje. el usuario sobre la pantalla, ya que Just BASIC avanza todavía más apropiada para la visualización de
se limitaban a mantener registros en esta dirección, pues ha sido gráficos o las interacciones 3

Como preparación para los sprites debe crearse Tras un comando BACKGROUND es posible Una misma especificación de sprite puede
4 un BMP que visualice el fondo deseado, el cual 5 enviar un ADDSPRITE para crear una instancia en 6 usarse con tamaños, velocidades y orientaciones
podrá pasarse a la memoria del programa y la de la memoria, y después CYCLESPRITE comenzará la diferentes. Just BASIC es capaz de devolver al programa
gestión de sprites por medio del comando LOADBMP. animación. La ubicación y la escala de un sprite noticias sobre colisiones e informar del emplazamiento
También es posible crear el fondo en el programa y también puede cambiarse, y a la vez es posible de cada sprite. Y la velocidad de la animación podrá
hacer que GETBMP lo pase a la gestión de sprites. ejecutar varios sprites a un mismo tiempo. regularse con el temporizador incorporado.

106 | Mayo 2006


Cursos Rincón del programador

distribuidos previamente).
En pocas palabras
Nuevos métodos
Algunas personas creen que la
Así pues, los elementos definitivos
edición en Just BASIC resulta un
de Just BASIC son la ventana poco problemática y tampoco
principal (que puede suprimirse), las avanza demasiado con respecto a
ventanas individuales de diversos QBasic.
tipos y los controles que hay en su Una de las ventajas de
interior. Las instrucciones Windows consiste en la posibilidad
de cambiar de programa
relacionadas con ventanas y
inmediatamente, y por ello
controles las pasa una variante del podemos construir un editor
comando PRINT, y cada instrucción mejor... desde el propio Just BASIC.
aparece como texto de salida para Por supuesto, no será posible
el dispositivo virtual. La captación ampliar las prestaciones de
de los eventos –movimiento o clic DEBUG, pero sí construir un
“precompilador” que inserte y
del ratón, pulsaciones de teclas– se
después retire algunas opciones
activa y desactiva mediante estos útiles. ■
1 El programa de ejemplo BITMAP ilustra cómo puede cargarse un BMP para comandos PRINT, lo cual equivale a
visualizarlo sobre un botón (y también cambiarlo en tiempo real con un clic). enviar un “mensaje” a un objeto en
la programación orientada a crear una función o una subrutina).
3 complejas. Todos los programas de son sobre todo apropiados para objetos. Dentro de un programa es ¿Te apetece intentarlo?
Just BASIC poseen una única datos de texto y pueden tener posible averiguar cuándo se ha Entre los nuevos conceptos que
ventana principal, pero su aparición varios controles. Al ejecutar un producido un evento porque el descubrirás están las coordenadas
puede suprimirse con una simple programa es posible usar [TAB] para control de la ejecución es pasado a de movimiento del ratón, las
orden como NOMAINWIN. moverse entre los elementos de una marca de dirección particular. coordenadas correspondientes a los
Just BASIC incluye cuatro tipos control, que es como funcionan los Para familiarizarte con los píxeles de la pantalla y la ubicación
de ventana más, que son ventana, cuadros de diálogo de Windows, nuevos métodos de Just BASIC, y el tamaño de las ventanas. Con
gráficos, cuadro de diálogo y texto. pero la principal diferencia entre nosotros te recomendaríamos ellas –y las que ya conocías
Todos ellos están relacionados con window y dialog consiste en que el diseñar un bloc de notas físico con anteriormente de QBasic– podrás
la forma de funcionar de Windows, programador puede establecer una gráficas y ejemplos de cada tipo de dibujar líneas por medio del ratón, y
y se parecen muy poco a lo que salida (exit) predeterminada para un control. Las fichas de 3 x 5 que en la práctica será posible dibujar
podíamos ver en anteriores dialog (que también se cerrará al venden en papelerías resultan objetos en tiempo real de forma
versiones de BASIC. Cada estructura pulsar [Intro]). El control de tipo perfectas para anotar pequeños parecida a como lo hace Microsoft
de ventana es un dispositivo que menu no está disponible en el fragmentos de código que pueden Paint. Los comandos de dibujo
nosotros abrimos (OPEN) y al cual interior de un cuadro de diálogo, y utilizarse a menudo (como por permiten manejar figuras, colores y
asignamos un handle (un nombre o la ventana text posee una ejemplo para comprobar si un tamaños, y todos ellos aparecen
número precedido por el carácter funcionalidad limitada. Just BASIC número es entero y positivo y está suministrados estáticamente desde
#); y la mayoría de ellos también pone a nuestra disposición un dentro de una franja determinada). el propio programa o bien en
tienen “controles”, que son editor de texto que puede utilizarse También puedes plantearte los tiempo real bajo la forma de
subdispositivos activados por desde el menú Edit de cualquier comandos que se hallan ausentes parámetros.
SETFOCUS. Un control puede ser un ventana de texto. Y, como su de Just BASIC, como por ejemplo En Just BASIC, el texto es tratado
menú, un botón, un cuadro nombre indica, la variedad graphics MID$. En realidad MID$ está de forma muy similar a la
combinado o un servicio similar, y es adecuada sobre todo para el incluido en él, pero sin embargo no declaración PRINT que
los eventos de teclado o ratón serán contenido gráfico, incluyendo puede colocarse a la izquierda del encontrábamos en el BASIC
interceptados por el código de sprites. La animación no es cosa fácil signo igual. En QBasic, [MID$(X$,3,1) tradicional, y si incluimos un punto
programa en el lugar especificado en el BASIC tradicional, pero en Just = “*”] reemplazaría el tercer carácter y coma opcional podremos
por la definición del control. Los BASIC pueden lograrse algunos de X$ por un asterisco, pero este suprimir el retorno de carro/nueva
tipos de ventana window y dialog resultados impresionantes (sobre uso es ajeno a Just BASIC (para línea automático. Asimismo,
se parecen bastante entre sí, pues todo usando mapas de bits lograr dicho cometido habría que tendremos la posibilidad de
emplear USING como función, en
lugar de hacerlo como componente
En detalle… Una animación práctica del comando PRINT, lo cual quiere
decir que la forma editada de un
Los sprites no son muy habituales, posiciones, con lo cual número también se encontrará
quizás porque anteriormente dispondremos de una serie básica disponible para el programa como
nunca resultaron fáciles. de imágenes cuyo tamaño y cadena de caracteres.
Sin embargo, existen muy orientación sea posible cambiar En la próxima entrega de
diversos usos para ellos, como por para incorporarlas en cualquier nuestro Rincón del programador
ejemplo un puntero que señale a programa. nos dedicaremos a construir
una parte importante de la Para establecer su efectividad algunos programas prácticos como
pantalla. Así, una mano que señale hará falta experimentar un poco, por ejemplo una calculadora, y en
amablemente en la dirección pero una vez controladas 1 Encontrar imágenes de una ellos incluiremos características que
apropiada puede constituir una supondrán un ornamento muy útil mano que señale resulta fácil. no hubiese estado nada mal
forma muy efectiva de atraer la para numerosas aplicaciones Nosotros dimos con ésta en encontrar en Windows. Hasta
atención. Para ello podemos usar destinadas a los más diversos Internet tras buscar pointing hand entonces, no te olvides de practicar
un BMP preparado especialmente cometidos. En Internet podrás en Google, y sin duda se revelará por tu cuenta, y también puedes
que después “clonar” en distintas encontrar muchas de ellas. ■ ideal de cara a un puntero. aprovechar para sumergirte aún
más en Just BASIC. ■

106 | Mayo 2006

También podría gustarte