Manual de Qbasic

 

Mas Q Basic
Este lenguaje de programaci�n aunque antiguo contiene elementos basicos que fueron empleados en lenguajes mas nuevos. Qbasic es un entorno de programacion constituido por un editor que permite convertir la computadora en una maquina de escribir, sofisticada para construir programas fuente, un gestionador de archivos (en el caso del PC,el propio sistema operativo),un compilador de lenguaje y un depurador para correccion de errores.

El editor interactivo es la pieza central de Qbasic.Es un editor que verifica la sintaxis de cada linea tan pronto se teclea.Si la sintaxis es correcta,se traduce la linea inmediatamente al codigo ejecutable;en caso contrario,aparece una descripcion del error.Como cada linea se traduce a codigo ejecutable (.BAS) en el momento de introduccion,se puede inmediatamente corregir y capturar la mayoria de los errores.No se precisa esperar a la compilacion (.EXE) despues de que se haya terminado la edicion,el programa esta preparado para su ejecucion.

Qbasic incorpora un depurador interactivo.Se puede detener un programa en cualquier punto, editar el programa y reanudar la ejecucion en el punto en que se detuvo.En Qbasic se puede crear de modo facil y rapido versiones de programas (.EXE) que se ejecutan directamente desde el DOS.Cabe resaltar que el Qbasic es un lenguaje de alto nivel.

 

2. Reglas para la formaci�n de nombres de programas o variables:

 

-Los Nombres pueden contener numeros y letras pero deben comenzar con letras.

-Es recomendable que los nombres guarden relacion con el contenido.

-El Nombre no debe exceder de seis caracteres.

-No incluir espacios en blanco ni caracteres especiales en el Nombre.

 

Importante

Las Teclas : ESC , ALT+Q y Ctrl+"BREAK" detienen la ejecucion del programa!!!

(F5-Ejecuta el programa)

 

3.Comandos de QBASIC

 

Los Comandos se encuentran en la "Barra de Men�" de la pantalla de QBasic.

Un programa se compone de grupos de comandos (Instrucciones) que les damos al computador, los comandos en QBASIC se escriben despu�s de un n�mero de ubicaci�n.Empecemos con el comando PRINT, �ste comando es �l mas usado en Qbasic, ya que es el que pone cualquier tipo de informaci�n en la pantalla,escribamos el ejemplo:

10 PRINT " EPA "

20 END

La funci�n END lo que hace es terminar el programa,ahora para colocar el texto en una determinada parte de la pantalla (por que si ponemos solo PRINT "epa" vamos a ver el texto en la esquina de arriba de la pantalla), eso se hace con el comando "LOCATE No de fila,No de columna" y en el ejemplo pueden ver como funciona:

10 LOCATE 9,13

20 PRINT "SEGUNDO EPA"

30 END

Es obvio que no vamos a estar siempre mostrando textos en la pantalla, muchas veces lo que queremos es dar a conocer datos, n�meros y cadenas de caracteres (palabras y frases), aqu� entramos a ver las VARIABLES, las variables se pueden dividir en dos grupos: num�ricos y de caracteres, las variables son declaradas (se les da un valor) a trav�s de un nombre y un valor, para ver lo mas claramente vean el ejemplo:

10 CLS

20 numero=220000

30 palabra$="INFORMATICA"

40 LOCATE 7,7

50 PRINT " Costo de Inscripcion "; numero

60 LOCATE 8,7

70 PRINT" Estudiante de: "; palabra$

80 END

 

 

El Comando "CLS" limpia la pantalla de los "EPA" anteriores, las variables de caracteres van precedidas por un signo $ y su contenido debe ir entre comillas. Tambi�n hay un comando muy importante que nos permite poner comentarios en nuestros programas este comando es REM y su uso es muy f�cil, ejemplo:

10 PRINT"EPA":REM lo que hace esta l�nea es poner EPA en la pantalla 20 END

Se fijaron que lo que va despu�s del REM no importa, eso del REM nos permite poner frases que nos ubiquen y recuerden cosas que luego se nos puedan olvidar. Otro comando importante en QBASIC es "INPUT", y lo que hace es pedir una informaci�n al usuario para luego darle un nombre al dato introducido, ejemplo:

10 INPUT"Cual es tu nombre ?",nombre$

20 LOCATE 7,7 :PRINT"TU NOMBRE ES ";nombre$

30 END

Si te fijaste en este programa puse el LOCATE y el PRINT en una sola l�nea, lo �nico que hay que hacer para poner dos o m�s comandos juntos son separarlos por un :. Ahora les explico una funci�n que especifica el tipo de pantalla que vamos a ocupar, las que voy a explicar son solo las dos m�s importantes que admite QBASIC, estas son 640*480 (con 16 colores ) que se especifica a trav�s de la funci�n SCREEN 12 y la pantalla de 320*240 (con 255 colores ) que se especifica con SCREEN 13, para ver c�mo funciona aqu� va el ejemplo :

10 SCREEN 12

20 PRINT"EPA"

30 END

Ejemplo 2:

10 SCREEN 13

20 PRINT"EPA"

30 END

Si se dan cuenta en SCREEN 13 el texto se ve mas grande, el �nico inconveniente de usar el SCREEN 13 es que la mayor�a de los compiladores no lo aguanta as� que mejor vamos a trabajar con el SCREEN 12.

Para poder dar color a nuestros textos se ocupa el comando COLOR (x), para poder ocupar este comando primero tenemos que poner SCREEN 12, tal y como se ve en el c�digo de ejemplo:

10 SCREEN 12

20 FOR A=1 TO 15

30 COLOR A

40 PRINT"EL NUMERO DE ESTE COLOR ES",A

50 NEXT

60 END

En este c�digo usamos algo nuevo (FOR, NEXT), y significa que se realizara "algo" desde que A=1 hasta A=15.

Ese "algo" que realiza son las instrucciones que est�n entre donde dice FOR y donde dice NEXT tantas veces desde 1 hasta 15, para que se entienda mejor ah� va un ejemplo con su explicaci�n:

10 CLS

20 FOR S=1 TO 10

30 PRINT" 2 * ";S

40 NEXT

50 END

Aqu� se ve que el PRINT ejecuta 10 veces(1-10) la primera vez S vale 1, luego 2 y as� sucesivamente hasta que valga 10 y luego sigue con la l�nea que le sigue al NEXT, en este caso la l�nea 50 (END).

En tu pantalla aparecera esto:

 

� Que? Y los resultados!!!!!

No te desesperes,copiate del siguiente y ejecutalo.

Pero mas importante.......... RAZONALO!!!!!!

10 CLS

20 FOR S=1 TO 10

30 PRINT" 2 * "; S; "="; 2*S

40 NEXT

50 END

Si es que se fijaron, todos estos programas se acaban apenas se ejecutan, por lo cual si queremos detener el programa en alguna parte hasta que el usuario apriete una tecla, solo tiene que poner el comando INPUT$, este comando tiene la siguiente forma:

Variable$=INPUT$(cantidas_de_teclas_a_recibir)

Y ahora el ejemplo:

10 CLS

20 PRINT" presiona una tecla para continuar"

30 A$=INPUT$(1)

40 PRINT"ya la presionaste"

50 END

Debemos destacar que esta funci�n sirve tambi�n para saber que teclas fueron apretadas, ya que la cantidad de teclas a presionar quedan asignadas a la variable A$ ,otro ejemplo:

10 CLS

20 PRINT"ahora presiona dos teclas"

30 A$=INPUT$(2)

40 PRINT"apretaste las teclas";A$

50 END

Si ya aprendiste el FOR NEXT entonces te explico ahora el otro tipo de bucle (bucle es... una serpiente que se muerde la cola !!! AHAHAH...es algo que tiene comienzo,pero no tiene fin ), este otro comando se llama WHILE y WEND y lo que hace es repetir los comandos que est�n entre el WHILE y el WEND (igualito que en el FOR y el NEXT) pero este repite los comandos hasta que se cumpla una condici�n que nosotros especificamos.

Ejemplo:

10 RIFA=0:REM VALOR INICIAL DE RIFA

20 WHILE RIFA=0

30 INPUT" CUAL ES EL VALOR?";RIFA

40 WEND

50 CLS

60 PRINT"AHORA QUE ES DIFERENTE A CERO,PUDISTE SALIR DEL BUCLE"

70 END

Ahora vienen, el GOTO y el GOSUB y lo que hacen es saltar la ejecuci�n de un programa a una l�nea determinada, pero la diferencia entre el GOTO y el GOSUB radica en que el GOTO salta a una l�nea especificada por el numero y el programa sigue normalmente desde la l�nea especificada hacia abajo y el GOSUB (que en verdad es GOSUB y RETURN) salta hasta una l�nea especificada y cuando encuentra el RETURN sigue la ejecuci�n en la l�nea que sigue al �ltimo GOSUB que se ejecuto.Ejemplo:

10 PRINT "LA LINEA 30 NO SE VA A EJECUTAR "

20 GOTO 40:REM AQU� SE SALTA A LA LINEA 40

30 PRINT"ESTA LINEA NO SE EJECUTA"

40 PRINT:PRINT"EL PROGRAMA EJECUTO LA 10-20 Y LA 40"

50 END

Otro Ejemplo:

10 PRINT"EJEMPLO DE GOSUB"

20 GOSUB 100

30 PRINT"YA VOLVIO A LA LINEA 30"

40 END

100 PRINT:PRINT"ESTA ES LA SUBRUTINA"

110 PRINT:PRINT"CON EL RETURN A LA LINEA QUE VA DESPUES DEL GOSUB"

120 RETURN

El PRINT: PRINT se hace para hacer un retorno de carro, por ejemplo si ponemos un print "hola" y luego viene un print "chao" al ejecutarlo se va a ver "holachao" en cambio con print "hola" y luego print:print "chao" se va a ver hola y en la l�nea siguiente chao.

Ahora vamos a ver otro de los comandos importantes de BASIC, este es el IF, THEN ELSE y lo que hace es que si se da una condici�n se hace lo que viene despu�s del THEN y si no hace lo que viene despu�s del ELSE:

El "ELSE" es optativo as� que solo ponlo si lo necesitas.

Ejemplo:

10 INPUT"DIME QUIEN ESCRIBIO ESTE TUTORIAL",QUIEN$

20 IF QUIEN$="SCORPIKO" THEN PRINT"MUY BIEN"

30 ELSE PRINT"NO SABES QUIEN ESCRIBIO ESTO?... ES UNA LASTIMA"

40 END

Tienes que fijarte en que las variables de caracteres distinguen entre may�sculas y min�sculas, en el ejemplo si respondes scorpiko en vez de SCORPIKO te va a ejecutar el ELSE,porque no es lo mismo scorpiko que SCORPIKO.

Con esto que llevamos saben lo m�s b�sico de BASIC y ya pueden hacer sus programas.Ves que no es para nada dif�cil BASIC, a lo mejor te preguntas, �tengo que ponerle numero a todas las l�neas? y �por qu� van de 10 en 10?, No, no es necesario ponerle numero a las l�neas pero es util y van de 10 en 10 solo por hacerlo mas ordenado y por que si fueran de 1 en 1 no podr�as poner una l�nea que se te olvido, ya que solo acepta n�meros enteros.

 

4.Gr�ficos en QBASIC

 

Advertencia: No esperes de Qbasic mucha rapidez en los gr�ficos.

PRINT, END, LOCATE, INPUT, INPUT$, CLS, COLOR, SCREEN, REM, FOR_NEXT,WHILE_WEND, GOTO, GOSUB, IF_THEN_ELSE.

Esas son las funciones que ya llevan aprendidas (supongo).

Lo que va aprender en esta parte es la parte de gr�ficos...

Lo primero que hay que poner en el programa es la funci�n SCREEN, y la que voy a utilizar en los ejemplos es la SCREEN 12 (640*480 con 16 colores).

Lo otro importante son los colores, por ejemplo si quiere poner un texto en la pantalla de un determinado color eso se har�a as�:

10 SCREEN 12:CLS:CLEAR

20 INPUT"numero del color (1 al 15) ? ",NUMCOL

30 INPUT"escribe un texto ? ",TEXTO$

40 COLOR NUMCOL

50 CLS

60 LOCATE 15,30

70 PRINT TEXTO$

80 END

Practica un poco con ese programa para saber que numero del color corresponde a cada color, pero por si acaso no te quedo claro si pones en el n�mero de color 15, entonces el texto se ve en blanco y si lo pones por ejemplo en 10, vas a ver el texto en verde claro.

Ahora va el comando m�s importante en gr�ficos, este es LINE y lo que hace es dibujar una l�nea en la pantalla, la sintaxis es:

SINTAXIS -> LINE (x1,y1)-(x2,y2),nrodecolor

Ejemplo:

SCREEN 12:CLS:CLEAR

LINE (45,75)-(135,215),9

END

El programa dibuja una l�nea de color azul en la pantalla, si te preguntas que es eso de CLEAR, CLEAR hace que todas las variables queden a cero, esto es opcional y solo por seguridad.

Este comando es muy flexible y te explico que, LINE aparte de poder hacer una l�nea tambi�n puede hacer un cuadrado solo agreg�ndole ,B y con �sto el comando para hacer un cuadrado queda:

SINTAXIS -> LINE (x1,y1)-(x2,y2),nrodecolor,B

Ejemplo:

SCREEN 12:CLS

LINE ( 45,75)-(135,215),9,B

END

Y si quisi�ramos que ese cuadrado estuviera relleno en vez de B ir�a un BF.

Este hace un cuadrado de color azul .(Hazlo).

Para hacer c�rculos ocupamos el comando CIRCLE,para hacerlo m�s f�cil voy a poner lo que hace, la sintaxis y el ejemplo para cada comando para hacer gr�ficos.

CIRCLE : Hace un circulo en la pantalla de un determinado radio (medido

en pixeles) y ...

SINTAXIS -> CIRCLE (x,y),radio,color

Ejemplo:

SCREEN 12

CIRCLE(150,140),25,14

END

Ese c�digo hace un circulo de un radio de 25 pixeles y de color amarillo.

PAINT : El comando paint es el t�pico balde de los programas de gr�ficos para Windows, y pinta de un color hasta encontrarse con un borde de un color especifico esto significa que si no se aplica sobre algo cerrado pinta toda la pantalla, esto pasa tambi�n si encuentra un borde que no es del color que deber�a ser.

SINTAXIS -> PAINT (x,y),color,colordelbordelimite

Ejemplo:

SCREEN 12

CIRCLE (150,140),25,14 : REM hace el circulo de borde amarillo (14).

PAINT (150,140),15,14: REM el 14 es el borde y el 15 el color de relleno

REM este ejemplo hace un circulo amarillo y lo rellena de blanco.

END

Nota: Como ya sabemos el REM es para poner comentarios que nos ayuden a ubicarnos en nuestros programas.

Tambi�n esta el comando que dibuja un punto en la pantalla, este es PSET:

SINTAXIS -> PSET (x,y),color

Ejemplo:

SCREEN 12

PSET (270,160),10

REM este programa pone un punto de color verde en la pantalla.

END

Tambi�n esta el multi-comando DRAW, que tiene muchas funciones dentro de �l, como dibujar algo conforme a los par�metros que le vamos dando.Primero ejecuta el ejemplo y luego te vas a hacer una idea:

SINTAXIS -> DRAW "par�metros"

SCREEN 12

DRAW " C10 BM 150,140 D20 L30 U40 R60 "

END

Lo que est� especificado en DRAW es que:

C10 (con el color 10(verde)), BM 150,140 (vaya a la posici�n 150,140de la pantalla), D20 (dibuja una l�nea de 20 pixeles hacia abajo), L30 (dibuje 30 pixeles a la izquierda), U40 (40 pixeles hacia arriba), R60 (y finalmente 60 pixeles a la derecha). Ves que no era tan dif�cil, ahora van a ver una lista de los par�metros que puedes poner:

Cx (color X, especifica que se va a empezar a dibujar con el color x )

Dx (Down x, dibuja x pixeles hacia abajo)

Ux (Up x, dibuja x pixeles hacia arriba)

Lx (Left x, dibuja x pixeles a la izquierda)

Rx (Right x, dibuja x pixeles a la derecha)

Ex (dibuja x pixeles en diagonal hacia arriba derecha)

Fx (dibuja x pixeles en diagonal hacia abajo derecha)

Gx (......... abajo izquierda)

Hx (...... arriba izquierda)

Mx,y (Move x,y , se mueve al punto x,y dibujando pixeles(hace una l�nea desde donde este al punto x,y)

BM x,y (se mueve al punto x,y sin visualizar)

Ax (gira una figura hecha con draw, si x=1 entonces la gira 90�, x=2 entonces 180�, x=3 entonces 270� ) Esas eran todos los

comandos gr�ficos para Qbasic, pero....y para hacer que nuestros dibujos Qbasic se muevan ???? Cuando uno hace una figura en Qbasic y quiere moverla por la pantalla lo primero es hacerle un espacio en la memoria (DIM), luego almacenar el dibujo en la memoria (GET), despu�s ocuparla (PUT), esa es la base ahora veamos esto con un ejemplo totalmente explicado:

SCREEN 12: REM pantalla 640*480*16 colores

CIRCLE (200,200),10,14 :REM hacer un circulo de 10 pixeles y color amarillo

PAINT (200,200),10,14 :REM pintar el circulo de color verde y con el borde amarillo

DIM BALON (600) : REM darle un espacio en memoria al dibujo llamado BALON

GET (185,185)-(245,245),BALON :REM guarda desde x1,y1 a x2,y2 como BALON

CLS: REM borra la pantalla

FOR X=20 TO 420:REM X VA DESDE 20 HASTA 420

PUT (X,200),BALON,PSET :REM pone BALON en la posici�n x,200 de la pantalla.

NEXT:REM retorno del FOR

END

UNOS CASOS PRACTICOS

 

A veces si tu cargas Qbasic desde DOS te encontrar�s con que los restos de los comandos quedan en el fondo. Por ejemplo C:>QBasic quedar�a al fondo si lo cargas desde DOS. No necesitas preocuparte por ello, se resuelve con el comando CLS, el cual permite limpiar la pantalla antes de hacer la siguiente operaci�n. Por ejemplo escribe lo siguiente y luego presiona F5.

CLS

PRINT "Hola Mundo"

 

Una vez que hayas corrido el programa ver�s que la informaci�n que queda es limpiada de nuevo y que queda la pantalla negra con "Hola Mundo" escrito en la esquina. Los comandos "PRINT y CLS " son �tiles en mi secci�n de Referencia. Puedes usar el comando PRINT tantas veces como quieras en tu programa. Por ejemplo escribe lo siguiente:

CLS

PRINT "Hola Mundo"

PRINT "Hola de nuevo"

PRINT "Adi�s"

 

Escribir� las tres l�neas completas, una tras otra en la pantalla. Hasta ahora no deber�as haber tenido ning�n error y si lo has tenido tal vez ser� uno de los siguientes:

PRINT " "Hola Mundo" "

No puedes poner mas de dos comillas en ninguna sentencia de PRINT

CLS

Este comando deber�a leerse CLS no CL S.

CLS

PRINT "Hola Mundo

 

Nunca debes olvidarte de abrir o cerrar comillas al principio o fin de la sentencia de PRINT.

Este es un consejo �til. Mueve el cursor al final de la sentencia de "PRINT". No ocurrir� nada en ella. Presiona F1. Un men� de ayuda se activar� conteniendo informaci�n de esa sentencia particular. Esto te ayudar� mucho si est�s bloqueado dentro de un comando particular.

Hasta aqu� has conocido dos nuevos comandos: PRINT y CLS. Ahora te ense�aremos dos nuevos comandos llamados "FOR" Y "NEXT". Ambos comandos son muy �tiles. Para eliminar el programa anterior presiona simult�neamente ALT + F. Sigue las instrucciones hasta que comience con una p�gina limpia.

Ahora escribe el siguiente programa tal como se te muestra abajo:

CLS

FOR i=1to 10

PRINT "Hola Mundo"

NEXT i

 

Presiona F5 para correr el programa y observa lo que sucede. Te encontrar�s con que la frase "Hola Mundo" aparece en una lista 10 veces seguidas en la pantalla. Ahora vamos a mirar como funciona cada parte de este programa.

CLS

Limpia la pantalla de los restos de programas anteriores los cuales podr�an estar ah�.

FOR i=1 to 10

Esta es una parte interesante; "i" es una variable , las variables son comentadas en el tutorial 2, la variable contiene un valor. Para empezar la variable tomar� el valor 1. Cada vez que la sentencia "NEXT i" es alcanzada el programa comprobar� que la variable "i" es 10. Si no es 10 el programa continuar� y regresar� donde estaba el comando FOR. Esto es como un requisito para que el programa contin�e, siempre que la variable "i" no sea 10 el regresar� y sumar� 1 al numero que ten�a. Si t� modificas la orden FOR para que llegue hasta 20 "NEXT" comprobar� que "i" ha alcanzado el valor de 20. Por ejemplo:

1,2,3,4,5,6,7,8,9,10 SE DETIENE!!!!

FOR i=1 to 20

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 SE DETIENE!!!!

 

Cada vez que el programa vuelve atr�s ejecuta todas las sentencias contenidas entre "FOR" y "NEXT". Si escribieses un programa como �ste:

CLS

FOR i=1 to 10

NEXT i

 

Este programa todav�a har� lo mismo pero no ejecutar� nada entre "FOR" y "NEXT". La raz�n es porque no hay nada en primer lugar. Imagina que tienes un reloj con s�lo 10 segundos. El reloj ir� 1,2,3,4,5,6,7,8,9,10 y luego empezar� de nuevo. Lo mismo sucede con el ejemplo anterior, s�lo que no estamos empezando de nuevo.

En el anterior ejemplo el programa est� sumando 1 a la variable "i" cada vez que llega a la sentencia "NEXT". Podr�amos cambiar el programa y sumar 2 a la variable "i". Ver�s lo que podr� hacer el siguiente programa antes de correrlo presionando F5.

CLS

FOR i=1 to 10 STEP 2

PRINT "Hola Mundo"

NEXT i

 

Acabamos de ense�arte otro comando llamado "STEP". Este comando especifica en cuanto puedes incrementar el intervalo de forma continua hasta llegar a la sentencia "NEXT". El bucle de "FOR" y "NEXT" es como un contador. Es como si t� y yo tenemos contamos cuantos dedos tenemos. En el anterior ejemplo incrementaremos en 2 el intervalo en todas las sucesiones hasta la sentencia "NEXT". �ste es un ejemplo:

2,4,6,8,10 SE DETIENE!!!!

 

Comprendemos lo que hace la sentencia "PRINT". Escribir� "Hola Mundo" 10 veces una columna a menos que cambies alg�n valor contenido en la sentencia "FOR":

La sentencia "NEXT" es f�cil y est� claramente explicada anteriormente. Intenta cambiar la sentencia "NEXT i" a "NEXT" y observa lo que sucede. B�sicamente s�lo debes quitar la "i" del final de la frase. Si lo haces eliminando la variable y de la sentencia "NEXT", el programa a�n trabajar�. Pero lo que yo te sugiero es que hagas lo que te expliqu� arriba porque en un programa largo es bueno ver que har� "NEXT". Mas tarde explicar� la sentencia "NEXT" con mayor profundidad.

As� el programa escribir� "Hola Mundo" cinco veces en la pantalla porque hemos incrementado el intervalo al doble. Puede parecer complicado al principio pero como en cualquier lenguaje todas las cosas ocupan su lugar. Lo mejor es intentar cambiar el valor del "STEP" para ver que tipo de resultados se obtienen. Adem�s intenta cambiar el valor de "i" y el de "to" por otro. Te digo que tendr�s un buen juego.

Por tanto en la parte uno de este tutorial habr�s aprendido cinco nuevos comandos. Son estos:

PRINT, CLS, FOR, NEXT, STEP.

 

Mas Q Basic
Hosted by www.Geocities.ws

1