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:
2*1
2*2
2*3
2*4
2*5
2*6
2*7
2*8
2*9
2*10
¿ 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
Trabajo enviado por:
Carlos Goncalves