Sei sulla pagina 1di 30

Antes de que empiecen a leer mi curso les digo al tiro que no van a encontrar comandos avanzados como los

envios de bytes a una u otra direccion de memoria , por que como dije este curso es solo para los que no tienen idea de como programar y quieren comenzar por lo mas facil : BASIC. Esta es la segunda edicion de este tutorial asi que voy a tratar de hacerla mejor que la anterior , sobre todo con respecto a la presentacion .La letra esta elegida para hacer un poco mas amena la lectura asi que les recomiendo que si guardan esta pagina en sus discos duros la guarden como un archivo html . Doy autorizacion para guardar este tutorial en sus discos duros y en sus paginas siempre que no le hagan ningun tipo de modificacion ,les pido por favor a los que ocupen este tutorial que me manden un E-MAIL (cpa@entelchile.net <mailto:cpa@entelchile.net>) con su opinion . El tutorial lo hice en una sola pagina devido a que he visto otros tutoriales fragmentados en diferentes paginas y me molesto mucho ,por que no hay como tenerlos en el disco duro . Aprender Qbasic les sirve a las personas que tienen calculadoras programables ,a proposito les digo un truco para la CASIO fx-880p???si tecleean POKE 1867,0 .. les sacan el modo password ..... Empezemos : Antes que nada para los que no saben, el Qbasic lo tienen casi todos los computadores ,si tienen windows pongan en inicio-> buscar-> archivos o carpetas-> qbasic.exe y van a saber donde esta . Ahora si ya entraron al qbasic.exe entonces solo escriben el codigo y lo ejecutan con F5 ,eso si ,si quieren hacer un exe entonces necesitan un editor con compilador (el turbo basic 1.0 es bastante rapido ). Un programa se compone de grupos de comandos que les damos al computador,los comandos en qbasic se escriben despues de un numero de linea (si no se entiende bien eso de las lineas,ya van a ver ),empezemos con el comando PRINT ,este comando es el mas usado en Qbasic ,ya que es el que pone cualquier tipo de informacion en la pantalla ,para usarlo lo unico que tenemos que hacer es escribir por ejemplo : 10 PRINT " HOLA " 20 END SINTAXIS : PRINT "texto";variable Lo de ,variable despues lo van a ver mas adelante y la funcion END lo que hace es terminar el programa, ahora les digo el como podemos poner el texto en una determinada parte de la pantalla (por que si ponemos solo PRINT"hola" vamos a ver el texto en la esquina de arriba de la pantalla),eso se hace con el comando LOCATE ,y en el ejemplo pueden ver como funciona : 10 LOCATE 8,12 20 PRINT "SEGUNDO HOLA" 30 END SINTAXIS : LOCATE linea,columna Es obvio que no vamos a estar siempre mostrando textos en la pantalla , hay muchas veces que lo que queremos dar a conocer son datos ,numeros y cadenas de caracteres (palabras y frases), aqu entramos a ver las variables ,las variables se pueden dividir en dos grupos numericas y de caracteres,las variables son declaradas (se les da un valor) a travez de un nombre y un valor , para ver lo que llevamos mas claramente vean el ejemplo : 10 numero=25 20 palabra$="lo que sea" 30 LOCATE 5,5 40 PRINT "la variable numero vale";NUMERO 50 LOCATE 6,5 60 PRINT"y la variable palabra vale";palabra$ 70 END Como pudieron ver las variables de caracteres van precedidas por un signo $ y su contenido debe ir entre comillas .Tambien hay un comando muy importante que nos permite poner comentarios en nuestros programas este comando es REM y su uso es muy facil ,ejemplo : 10 PRINT"HOLA":REM lo que hace esta linea es poner HOLA en la pantalla 20 END Se fijaron que lo que va despues del REM no importa, eso del REM nos premite poner frases que nos ubiquen y recuerden cosas que luego se nos puedan olvidar. Ahora les explico el segundo comando mas importante de Qbasic y este es INPUT, y lo que hace es pedir una informacion al usuario para luego darle un nombre al dato introducido ,ejemplo : 10 INPUT"cual es tu nombre ?",nombre$ 20 LOCATE 5,5 :PRINT"TU NOMBRE ES ";nombre$ 30 END Si te fijaste en este programa puse el LOCATE y el PRINT en una sola linea, lo unico que hay que hacer para poner dos o mas comandos juntos es separarlos por un :. Ahora les explico una funcion que especifica el tipo de pantalla que vamos a ocupar, las que voy a explicar son solo las dos mas importantes que admite Qbasic ,estas son 640*480 (con 16 colores) que se especifica a travez de la funcion SCREEN 12 y la pantalla de 320*240(con 255 colores) que se especifica con SCREEN 13,para ver como funciona aqu va el ejemplo : 10 SCREEN 12 20 PRINT"HOLA" 30 END Ejemplo 2: 10 SCREEN 13

20 PRINT"HOLA" 30 END Si se dan cuenta en SCREEN 13 el texto se ve mas grande , el unico inconveniente de usar el SCREEN 13 es que la mayoria de los compiladores no lo aguanta asi que mejor vamos a trabajar con el SCREEN 12. Para poder dar color a nuestros textos se ocupa el comando COLOR (ohhhhh),para poder ocupar este comando primero tenemos que poner SCREEN 12 , tal y como se ve en el codigo 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 SINTAXIS : COLOR nro_del_color En este codigo puse algo nuevo (FOR ,NEXT),y lo explico al tiro, eso que dice FOR A=1 TO 15 es un comando muy importante ,su SINTAXIS es : FOR variable=valor_inicial TO valor_final Comandos NEXT El comando FOR lo que hace es repetir los comandos que estan entre donde dice FOR y donde dice NEXT tantas veces como numeros que hayan desde el valor inicial hasta el valor final ( Muy enredado? ), para que se entienda mejor ah va un ejemplo con su explicacion : 10 FOR S= 5 TO 12 20 PRINT"aqui S vale ";S 30 NEXT 40 END Ya,aqu se ve que el PRINT ejecuta 7 veces(5-12) la primera vez S vale 5 ,luego 6 y asi sucesivamente hasta que valga 12 y luego sigue con la linea que le sigue al NEXT, en este caso la linea 40. Si es que se fijaron,todos estos programas se acaban a penas se ejecutan,por lo cual si queremos detener el programa en alguna parte hasta que el usuario apriete una tecla solo tenemos que poner el comando INPUT$ ,este comando tiene la siguiente : SINTAXIS : Variable$=INPUT$(cantidas_de_teclas_a_recibir) Y ahora el ejemplo : 10 PRINT" presiona una tecla para continuar" 20 A$=INPUT$(1) 30 PRINT"ya la presionaste" 40 END Creo que quedo claro , cabe destacar que esta funcion sirve tambien para saber que teclas fueron apretadas ,ya que la cantidad de teclas a presionar quedan asignadas a la variable A$(o como sea que le hayan puesto),aqu va el ejemplo de lo que digo : 10 PRINT"ahora presiona dos tecla" 20 A$=INPUT$(2) 30 PRINT"apretaste las teclas";A$ 40 END Si ya aprendiste el FOR NEXT entonces te explico ahora el otro tipo de bucle (bucle es......mejor haste tu la idea),esta otro comando se lama WHILE y WEND y lo que hace es repetir los comandos que estan entre el WHILE y el WEND (igualito que en el FOR y el NEXT ) pero este repite los comandos hasta que se cumpla una condicion que nosotros especificamos : SINTAXIS : WHILE condicion Comandos WEND EJEMPLO : 10 NUME=0:REM VALOR INICIAL DE NUME 20 WHILE NUME=0 30 INPUT"CUAL ES EL VALOR DE NUME(SI PONES OTRO QUE NO SEA 0 SE TERMINA EL BUCLE) 40 WEND 50 CLS 60 PRINT"AHORA QUE NUME VALE UN NUMERO DIFERENTE DE CERO PUDISTE SALIR DEL BUCLE" 70 END Y que viene ahora ? Bueno ahora vienen dos comandos tambien muy importantes,el GOTO y el GOSUB y lo que hacen es saltar la ejecucion de un programa a una linea determinada ,pero la diferencia entre el GOTO y el GOSUB radica en que el GOTO salta a una linea especificada y el programa sigue normalmente desde la linea especificada hacia abajo y el GOSUB (que en verdad es GOSUB y RETURN)salta hasta una linea especificada y cuando encuentra el RETURN sigue la ejecucion en la linea que sigue al ultimos GOSUB que se ejecuto (enredado?No tanto....): SINTAXIS del GOTO : GOTO nro_de_linea 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 SINTAXIS del GOSUB : GOSUB nro_de_lina RETURN 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:PRIN"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 linea siguiente chao. Ahora vamos a ver otra de los comandos importantes de BASIC , este es el IF ,THEN ELSE y lo que hace es que si se da una condicion se hace lo que viene despues del THEN y si no hace lo que viene despues del ELSE : SINTAXIS : IF condicion THEN comandos ELSE comandos El ELSE es optativo asi que solo ponlo si lo necesitas . Ejemplo: 10 INPUT"DIME QUIEN ESCRIBIO ESTE TUTORIAL",QUIEN$ 20 IF QUIEN$="CAON" THEN PRINT"MUY BIEN" ELSE PRINT"NO SABES QUIEN ESCRIBIO ESTE TUTORIAL?..ES UNA LASTIMA " 30 END Eso si ,y lee esto por que es importante: tienes que fijarte en que las variables de caracteres distinguen entre mayusculas y minusculas ,en el ejemplo si respondes caon en vez de CAON te va a ejecutar el ELSE,por que no es lo mismo caon que CAON. Con esto que llevamos saben lo mas basico de BASIC y ya puedes sus programas ,lo unico que no puse en este tutorial son los operadores pero esos no obvios: +,-,*,/,and,or,>,<,>=,<=,\ Ejemplo final : 10 a=10+30 20 b=a+10 30 c=a*b/8 40 IF a>5 and b>5 and c>5 THEN PRINT"TODAS LAS VARIABLES SON MAYORES QUE 5" Llevamos los siguientes comandos : PRINT, END, LOCATE, INPUT, INPUT$, CLS, COLOR, SCREEN, REM, FOR_NEXT, WHILE_WEND, GOTO, GOSUB,IF_THEN_ELSE . Ves que no es para nada dificil BASIC,a lo mejor te preguntas ,tengo que ponerle numero a todas las lineas?y por qu van de 10 en 10? ,No,no es necesario ponerle numero a las lineas pero es util,deben ir numeradas solo las lineas a las que les haces un GOTO o un GOSUB .Y van de 10 en 10 solo por hacerlo mas ordenado y por que si fueran de 1 en 1 no podrias poner una linea que se te olvido ,ya que solo acepta numeros enteros. <PRINCIPAL.HTML"Pagina principal Envianos un E-MAIL <mailto: cpa@entelchile.net> Lo que llevamos en graficos <qbasdef2.html>

2da Parte del tutorial de Qbasic ( by CAON ) (cpa@entelchile.net)(www.angelfire.com/ca/caon/index.html <http://www.angelfire.com/ca/caon/index.html>)

Un poco de Graficos :

Advertencia : No esperes de qbasic mucha rapidez en lo que respecta a los graficos . 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 y las mas importantes para hacer programas de cualquier tipo, si no las aprendiste bien, repasalas y si todavia no te las aprendes todavia repasa mas.... Pero estas leyendo esto por que quieres saber mas que eso (supongo) y lo que vas aprender en esta 2da parte es la parte de graficos.... Para usar los graficos lo primero que hay que poner en el programa es la 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 queremos poner un texto en la pantalla de un determinado color eso se haria asi: (Nota: Ahora voy a ocupar la numeracion de las lineas solo cuando sea necesario no mas.) SCREEN 12:CLS:CLEAR INPUT"numero del color (1 al 15) ?",NROCO

INPUT"escribe un texto ?",TEXTO$ COLOR NROCO PRINT : PRINT TEXTO$ END Practica un poco con ese programa para saber que numero del color corresponde a cada color, pero porsiacaso no te quedo claro si pones en el numero 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 mas importante en graficos, este es LINE y lo que hace es dibujar una linea en la pantalla, la sinstaxis es : SINTAXIS : LINE (x1,y1)-(x2,y2),nrodecolor Ejemplo : SCREEN 12:CLS:CLEAR LINE (10,20)-(50,200),14 END El programa dibuja una linea de color amarillo 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 al tiro por que, LINE aparte de poder hacer una linea tambien puede hacer un cuadrado solo agregandole ,B y con esto el comando para hacer un cuadrado queda : SINTAXIS : LINE (x1,y1)-(x2,y2),nrodecolor,B Ejemplo: SCREEN 12:CLS LINE ( 10,20)-(24,300),2,B END Y si quisieramos que ese cuadrado estuviera relleno en vez de B iria un BF (test it). Este hace un cuadrado de color azul con las esquinas opuestas(x1,y1....) y de color azul (nrodecolor=2). Para hacer circulos ocupamos el comando CIRCLE, lo que sigue de esta parte del curso es +- rutinaria asi que para hacerlo mas facil voy a poner lo que hace,la sintaxis y el ejemplo para cada comando para hacer graficos. CIRCLE : Hace un circulo en la pantalla de un determinado porte (medido en pixeles) y ........ . SINTAXIS : CIRCLE (x,y),porte,color Ejemplo : SCREEN 12 CIRCLE(100,120),14,10 END Ese codigo hace un circulo de un radio de 14 pixeles y de color verde(10) Comando PAINT : PAINT : El comando paint es el tipico balde de los programas de graficos 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 tambien si encuentra un borde que no es del color que deberia ser. SINTAXIS : PAINT (x,y),color,colordelbordelimite Ejemplo : SCREEN 12 CIRCLE (100,100),14 : rem hace el circulo de color amarillo PAINT (100,100),15,14:rem el 14 es el borde y el 15 el color que le ponemos Rem este ejemplo hace y pinta un circulo. END Nota : Como ya sabemos el REM es para poner comentarios que nos ayuden a ubicarnos en nuestros programas. Tambien esta el comando que dibuja un punto en la pantalla, este es el PSET: SINTAXIS : PSET (x,y),color Ejemplo : SCREEN 12 PSET (200,300),15 Rem este programa pone un punto de color blanco en la pantalla. END Tambien esta el multi-comando DRAW, por que digo multicomando?, lo que pasa es que DRAW tiene muchas funciones dentro de el, lo que hace es dibujar algo conforme a los parametros que le vamos dando primero ejecuta el ejemplo y luego te vas a hacer una idea: SINTAXIS : DRAW "parametros" SCREEN 12 DRAW " C14 BM 100,100 D10 L16 U30 R20 " END Lo que esta especificado en DRAW es que : C14(con el color 14(amarillo)),BM 100,100 (vaya a la posicion 100,100 de la pantalla), D10 (dibuja una linea de 10 pixeles hacia abajo), L16 (dibuje 16 pixeles a la izquierda) , U30 (30 pixeles hacia arriba), R20 (y finalmente 20 pixeles a la derecha). Ves que no era tan dificil, ahora va una lista de los parametros 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 linea 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 graficos para Qbasic, pero para hacer cosas mas complicadas puedes hacer tus propias rutinas que las hagan, al final de esto hay algunos ejemplos. Ahora viene lo interesante, como hacer que nuestros dibujos Qbasic se muevan : Cuando uno hace una figura en Qbasic y quiere ponerla moverla por la pantalla lo primero es hacerle un espacio en la memoria (DIM), luego almacenar el dibujo en la memoria(GET), despues ocuparla (PUT), esa es la base ahora esto con un ejemplo totalmente explicado: SCREEN 12: REM pantalla 640*480*16 colores CIRCLE (200,200),8,14 :REM hacer un circulo de 8 pixeles y color amarillo PAINT (200,200),10,14 :REM pintar el circulo de color verde y con el borde amarillo DIM PELOTA (500) : REM darle un espacio en memoria a nuestro dibujo llamado PELOTA GET (185,185)-(215,215),PELOTA :REM guarda desde x1,y1 a x2,y2 como PELOTA CLS: REM borra la pantalla FOR X=20 TO 300:REM X VA DESDE 20 HASTA 300 PUT (X,200),PELOTA,PSET :REM pone PELOTA en la posicion x,200 de la pantalla. NEXT:REM retorno del FOR END:REM finaliza el programa Practiquen con esto hasta el proximo mes que viene la parte mas avanzada de este curso y en el que se explican las cosas que quedaron pendientes. Si alguno de los codigos de ejemplo no funciona o tienen dudas mandenos los E-MAIL a CPA@ENTELCHILE.NET <mailto:CPA@ENTELCHILE.NET> . 3ra Parte del tutorial de QBASIC (25 y 26 abril-1998 by CAON). Como lo prometido es deuda y devido a que algunos me pidieron cosas mas complicadas aqu va explicada la generacion de numeros aleatorios y lo basico de las bases de datos. Para leer esta parte yo parto suponiendo que ya sabes todo lo anterior, asi que ahora no voy a explicar paso por paso, pero igual voy a tratar de hacerlo claro. Hay una funcion muy importante que se me estaba olvidando y esta es RND abreviacion de random (creo que significa azar), este comando genera un numero al azar que va desde 0 hasta 1 eso no significa que sea 0 o 1 sino que puede ser por ej:0.726 0.8327. SINTAXIS: a = RND Eso si que esta funcion tiene que complementarse con otra que se llama RANDOMIZE y por que esto?, lo que pasa es que si en un programa ponemos solo RND al cada vez que lo ejecutemos va a dar los mismos numeros, entonces lo que hace el RANDOMIZE es darle un numero verdaderamente al azar que el mas practico es la cantidad de segundos que han pasado en el dia (TIMER) para que desde ese numero empieze a generar el azar el RND. EJEMPLO: PRINT"AQU VAN 10 NUMEROS AL AZAR" RANDOMIZE(TIMER) FOR CANTNU=1 TO 10 NUMEROAZAR=RND PRINT NUMEROAZAR NEXT END Ahora cmo hago que genere numeros entre 20 y 60 por ejemplo?... Bueno la solucion es bastante facil pero es cosa de matematicas nomas.... PRINT"LOS 14 NUMEROS ENTRE 20 Y 60 SON" RANDOMIZE(TIMER) FOR CANTNU=1 TO 14 :REM el 14 son la cantidad de numeros a generar. NUMAZAR=(RND*40)+20 PRINT NUMAZAR NEXT END Si te fijas la forma para que genere numero desde un numero cualquiera hasta otro numero cualquiera es esta "formula": Numeroazar= RND*(numeromaximo-numerominimo)+numerominimo

Ves que no es tan complicado pero si quieres ir mas alla de eso y si quieres generar numeros enteros(sin numeros despues de la coma)?, para eso tambien hay que ocupar un poco la cabeza y un operador este es \ que no es lo mismo que / la diferencia que el \ hace una division entera (por ejemplo si dividido 10\3 me va a dar como resultado 3 y NO 3.33333333) entonces lo que hay que hacer es dividir con el \ por 1 entonces nos va a quedar el mismo numero pero ENTERO. Ejemplo: PRINT"AHORA NUMEROS DEL 25 AL 200 PERO ENTEROS" RANDOMIZE(TIMER) INPUT"CUANTOS NUMEROS QUIERES";CANTNU FOR A=1 TO CANTNU NUAZAR=((RND*175)+25)\1 PRINT NUAZAR NEXT PRINT"LISTO" END Y todo esto para generar un numero al azar? (jajaja)..... siiiiiii... por lo menos ahora no te puedes quejar de que no sabes como se hace ademas si le sacas los codigos de ejemplo no es tanto y si te lo aprendes nunca mas se te olvida.... eso es lo bueno de la computacion.. cuando a uno le gusta no resulta tan dificil. Otro tema mas que importante y que no he tocado es el de las bases de datos, (nota para ?= se podria decir que una base de datos es un archivo en que puedes guardar cualquier informacion), eso si que voy a tratar de poner lo mas basico para no complicarle la existencia a nadie : Eso si que tienen que saber que una base de datos casi siempre (sino es que siempre) se hace con matrices(nota: una matriz es una variable que puede guardar muchos datos y que se distingue por el numero que esta dentro del parentesis), mejor voy a poner el ejemplo de la matriz al tiro: SCREEN 12:CLS DIM NUMERO(15):REM la variable numero tiene 15 variables. NUMERO(0)=20 NUMERO(1)=40 NUMERO(2)=100 NUMERO(3)=324 FOR A=0 TO 15 PRINT:PRINT "LA VARIABLE NUMERO("A") VALE "NUMERO(A) NEXT END En este codigo le puse valor hasta la NUMERO(3) lo demas es rutinario... y podia haber llegado hasta el 15, las variables en una matriz tiene como valor por defecto(es el valor con que viene algo) CERO por eso que al ejecutar el programa desde la numero(4) en adelante dice que vale cero, por que a esas no le asigne un valor. Lo de las matrices tambien se puede hacer con variables de caracteres, eso si que recuerda que las variables de caracteres se le asignan valores entre comillas y que el nombre de la variable tiene que ir con un signo $ al final (ej:nombre$). Si ya quedo claro lo de las matrices entonces empecemos con el como se hacen y se trabajan: Lo primero es darle un nombre al archivo, por ejemplo vamos a hacer uno que tenga unos 4 nombres cualquiera almacenados.. por supuesto que despues le vamos a ir agregando cosas, pero antes que nada una pequea introduccion, primero se abre el fichero (archivo donde vamos a guardar los datos) y se indica como se va a usar (agregar cosas o ver informacion o crear uno nuevo), luego se lee uno por uno los datos y se van almacenando en una matriz despues se cierra el archivo. 1- Supongamos que vamos a guardar los 4 nombres en un archivo llamado "NOMBRES.NOM"(que original ), date cuenta que la extension tu la inventas, como lo unico que voy a hacer es guardar los 7 nombres escribo: OPEN "NOMBRES.NOM" FOR OUTPUT AS #1 Rem (eso de AS #1 para no complicarnos siempre va a ser igual). DIM NOM$(4) :rem el 4 son la cantidad de elementos de la matriz. NOM$(1)="CARLOS":rem aqu se dan los valores para cada elemento. NOM$(2)="PEPE" NOM$(3)="VERO" INPUT"DIME UN NOMBRE CUALQUIERA?";NOM$(4) FOR A=1 TO 4 WRITE #1,NOM$(A):rem aqu se van escribiendo en el archivo cada elemento. NEXT CLOSE :rem se cierra el archivo PRINT"TODOS LOS NOMBRES FUERON GUARDADOS EN EL ARCHIVO NOMBRES.NOM" BEEP :rem hace el tipico sonido de beeep END Ahora si abres el archivo nombres.nom(que va a estar en el mismo directorio que tu QBASIC.EXE) con cualquier editor de textos vas a ver los nombres y que estan entre comillas (las comillas es por que son variables de caracteres, si fueran numeros en ves de nombres verias que no hay comillas).

Ves que era facil?.... Ahora el ejemplo que viene en esencia es lo mismo pero ahora te va a ir preguntando y los datos los va a ir agregando al archivo, por que el otro ejemplo al poner INPUT si el archivo esta lo borra y crea uno nuevo y si no esta lo crea, en cambio este ejemplo va agregando datos. EJEMPLO: SCREEN 12:CLS CONTA=0 :rem valor inicial del contador. OPEN "NOMBRES2.NOM" FOR APPEND AS #1 DIM NOM$(10) :rem el 10 son la cantidad de elementos de la matriz. 10 INPUT"DIME UN NOMBRE CUALQUIERA PARA AGREGARLO A TU LISTA?";NOM$(CONTA) INPUT"QUIERES AGREGAR OTRO NOMBRE(s/n)?",RES$ IF RES$="s" OR RES$="S" THEN CONTA=CONTA+1:GOTO 10 FOR A=0 TO CONTA WRITE #1,NOM$(A):rem aqu se van escribiendo en el archivo cada elemento. NEXT CLOSE :rem se cierra el archivo PRINT"TODOS LOS NOMBRES FUERON AGREGADOS AL ARCHIVO NOMBRES2.NOM" BEEP END Nota: cada ves que ejecutes este ejemplo y pongas un nombre se va a agregar al archivo nombres2.nom, ademas si miras el WRITE tambien lleva el #1, si pones otro va a provocarse un error. Aunque creo que quedo claro la sintaxis es : OPEN "nombre del archivo" AS modo #1 El modo puede ser OUTPUT, APPEND, INPUT y RANDOM. Y para escribir los datos se ocupa el WRITE : SINTAXIS: WRITE #1, dato, dato2, dato..... Los datos pueden ser de caracteres o de numeros y puedes insertar 2 al mismo tiempo pero al abrirlo y leer los datos se tienen que ir almacenando de la misma forma. Para leer los datos es casi lo mismo que escribirlos pero en vez de APPEND es INPUT y en vez de WRITE es INPUT (ohhhh). Ahora viene un ejemplo que lee el fichero NOMBRES2.NOM y te muestra los nombres que has guardado. SCREEN 12:CLS OPEN "NOMBRES2.NOM" FOR INPUT AS #1 DIM NOMBRE$(100) CONTA=0 WHILE NOT EOF(1) CONTA=CONTA+1 INPUT #1,NOMBRE$(CONTA) WEND CLOSE FOR A=1 TO CONTA PRINT"EL NOMBRE NUMERO"A" ALMACENADO ES "NOMBRE$(A) NEXT BEEP END Eso de WHILE NOT EOF(1) en lenguaje comun dice MIENTRAS NO ESTE EN EL FINAL DEL ARCHIVO se hace lo que esta entre el WHILE y el WEND.... y por que eso?... lo que pasa es que si se intenta leer un dato que no existe se produce un error por que no puede seguir leyendo un archivo que no tiene mas datos. A mi me ha pasado que con el WHILE NOT EOF(1) si uno abre un archivo con un editor de texto y lo modifica, puede pasar que le de un ERROR asi que ah veces que hay que inventar otro tipo de indicadores inventados por uno como por ejemplo al introducir datos, el ultimo dato introducido sea un "XXX" (si se estan almacenando caracteres) o un 999 (si se estan almacenando numeros), entonces al abrir este archivo si uno hace una rutina que compare los datos que se van entrando y si el dato es igual a "XXX" o 999 entonces ya se sabe que se llego al final del archivo, entonces asi si se puede editar con cualquier editor (?) el archivo en cuestion OK?, ah va un ejemplo de la rutina que hace esto muy corto: A=0 OPEN"nombre_archivo" FOR INPUT AS #1 WHILE A=0 INPUT#1, A$ :REM A$ ES UNA VARIABLE CUALQUIERA IF A$="XXX" THEN A=1:REM COMPARA Y SI ES XXX TERMINA. WEND CLOSE Bueno.... eso es todo por el momento pero recuerden que si tienen dudas o comentarios me escriben a mi E-MAIL... Por ultimo, mes queda decirles a los que anden buscando algo mas grafico, un lenguaje que sirva para hacer juegos entonces si tienen tiempo y BASIC les parece muy facil, APRENDAN C/C++, y si este es demasiado entonces a nacido un nuevo lenguaje, bastante facil y

practico DIV asi que ya saben solo busquen en la WWW o vayan directamente a www.divgames.com <http://www.divgames.com/> y bajen la demo para hacerse una idea. www.angelfire.com/ca/caon/index.html <http://www.angelfire.com/ca/caon/index.html> (cpa@entelchile.net) <mailto:cpa@entelchile.net> Caon --------------------QBASIC Tutorial 1 A veces si tu cargas Qbasic desde DOS te encontrars con que los restos de los comandos quedan en el fondo. Por ejemplo C:>QBasic quedara 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 operacin. Por ejemplo escribe lo siguiente y luego presiona F5. CLS PRINT "Hola Mundo"

Una vez que hayas corrido el programa vers que la informacin 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 seccin 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 "Adis"

Escribir las tres lneas completas, una tras otra en la pantalla. Hasta ahora no deberas haber tenido ningn 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 debera 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 informacin de esa sentencia particular. Esto te ayudar mucho si ests bloqueado dentro de un comando particular. Hasta aqu has conocido dos nuevos comandos: PRINT y CLS. Ahora te ensearemos dos nuevos comandos llamados "FOR" Y "NEXT". Ambos comandos son muy tiles. Para eliminar el programa anterior presiona simultneamente ALT + F. Sigue las instrucciones hasta que comience con una pgina limpia. Ahora escribe el siguiente programa tal como se te muestra abajo: CLS FOR i=1 to 10

PRINT "Hola Mundo" NEXT i

Presiona F5 para correr el programa y observa lo que sucede. Te encontrars 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 podran 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 contine, siempre que la variable "i" no sea 10 el regresar y

sumar 1 al numero que tena. 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 atrs 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 todava har lo mismo pero no ejecutar nada entre "FOR" y "NEXT". La razn es porque no hay nada en primer lugar. Imagina que tienes un reloj con slo 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, slo 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". Podramos cambiar el programa y sumar 2 a la variable "i". Vers 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 ensearte 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 algn valor contenido en la sentencia "FOR": La sentencia "NEXT" es fcil y est claramente explicada anteriormente. Intenta cambiar la sentencia "NEXT i" a "NEXT" y observa lo que sucede. Bsicamente slo debes quitar la "i" del final de la frase. Si lo haces eliminando la variable y de la sentencia "NEXT", el programa an 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. Adems intenta cambiar el valor de "i" y el de "to" por otro. Te digo que tendrs un buen juego. Por tanto en la parte uno de este tutorial habrs aprendido cinco nuevos comandos. Son estos: PRINT, CLS, FOR, NEXT, STEP. Ms tarde te mostrar que ms puedes hacer con estos comandos, pero intenta echar un vistazo al men de ayuda. Necesitars comprender las variables y cadenas y cmo utilizarlas. En el siguiente captulo <qbasic2.html> te lo ensear. 1995-97, etsimo WWW team </derechos.html> QBasic Tutorial 2 Las variables son muy importantes en todos los programas de una forma u otra. Con las variables podrs guardar informacin numrica relevante con la que podrs operar ms tarde. Por ejemplo prodras tener cinco nmeros diferentes que quieres sumar juntos. Puedes hacerlo muy fcilmente en basic. Has visto en el Tutorial 1 como una variable es utilizada en las sentencias "FOR" y "NEXT". Nosotros dimos a la variable "i" el valor 1 para empezar, luego le aadamos 1 cada vez que comenzaba el bucle utilizando las sentencias "FOR" y "NEXT". Para hacer las cosas sencillas aqu tenemos una descripcin formal.

Una variable es simplemente un nombre que das a un rea de la memoria en la cual el valor dato es guardado. Cuando necesites sacar esta parte del dato, o modificar este valor, puedes referirte a la localizacin en memoria por el nombre de la variable. Por ejemplo en un programa telefnico la variable edad tal vez contenga la edad de la persona en la actualidad. Como el programa corre, el valor guardado en nombre podra cambiar muchas veces en un par de aos. Nombrar Variables Eres libre, en un programa, de dar a la variable un significado, un nombre descriptivo. Cuando escribas un programa piensa que los nombres de las variables deberan ser significativas. En un programa intenta hacer el nombre de la variable aplicable a cualquier variable que ests guardando. Por ejemplo el nombre de variable telfono es obvio que contendr algn tipo de nmero de telfono. Entonces si es un nmero de telfono que quieres guardar es mejor no llamarlo algo como huevos. Creme, te har la vida ms fcil cuando ms tarde vayas a escribir programas largos. Las variables aparecen en cualquier forma y tamao. sta es una lista comn de variables: 1. El primer carcter deber ser siempre una letra (i.e A,G,D,F,z,e,t, y) 2. Despus la verdadera primera letra en el nombre de la variable podr ser letras, nmeros o subrayados ( _ ). 3. El carcter final puede ser %,&,!,#;$ o nada. Los usuarios de Vbasic deberan utilizar un carcter propio como letra final y no dejarlo sin nada. 4. Recuerda que el nombre de la variable no puede ser una palabra reservada. Por ejemplo en QBasic hay una sentencia llamada "PRINT", no debes usar esta ni cualquier otra sentencia como nombre de variable. En QBasic no importa si los nombres de tus variables estn en maysculas o minsculas. Por ejemplo si tu escribes una variable llamada coste y ms tarde en tu programa la llamas con el nombre coste, te encontrars con que el nombre de la variable la relacionar con cualquier otra en el programa. Si tienes un programa por ah, por favor lmpialo usando NEW del la fila del men de la parte superior de la pantalla. Aqu tienes un programa que podras escribir tal y como se te muestra debajo: CLS coste=123456 PRINT coste COSTE=789101 PRINT coste

como puedes observar hay numerosas cosas sucediendo cuando escribes el programa en QBasic. En primer lugar se consciente de cmo las sentencias cambian de maysculas a minsculas. Puedes verlo slo si lo escribes dentro del programa tal y como est arriba. Lo siguiente que tienes que notar es cmo varan los nombres de maysculas a minsculas. Como se mencion antes todo cambiar segn lo escribas en el programa, pero la sentencia ser siempre la misma. Si has escrito en el programa desde antes, presiona F5 ahora. El programa correr. La pantalla se limpiara y el programa ser mostrado. Lo que est haciendo este programa es guardar dos valores diferentes dentro del nombre de la variable "COSTE" "coste" (dependiendo de cmo lo hayas escrito). En principio se mostrar el primer valor y a partir de ese momento ir cambiando durante el programa mostrando el nuevo valor. As los programas podrn cambiar la variable informacin inmediatamente y cuantas veces se quiera. Imagina una variable como una caja. Primero pones un nmero en la caja, por ejemplo el 1. Luego lo reemplazas por el cinco. Esta operacin es la misma que sacar el 1 de la caja y poner el 5 dentro. Debes recordar que QBasic slo permite nombres de variables no superiores a 40 caracteres. Ahora hemos hablado de variables numricas. Hablaremos ahora sobre cadenas. Cadenas Hablaremos de las cadenas en el QBasic Tutorial 2, pero por ahora slo haremos una breve descripcin. Una cadena es una forma en basic de guardar informacin en la variable. Por ejemplo podras guardar el nombre del usuario o la direccin en una cadena. Aqu tienes un pequeo cdigo para mostrarte cmo funciona: nombre2$="Freddy Bloggs Sister" PRINT nombre1$ PRINT nombre2$

ste es un programa muy simple que guarda informacin en una variable de cadena. Si escribes este programa y presionas F5 para correrlo, te mostrar cual es el nombre de la variable lnea por lnea. El nombre de la variable cadena no tiene que tener valores numricos dentro. En el ejemplo de arriba he usado dos nombres de variables ambos con los nmeros "1" "2" al final. Slo he hecho esto para separar las diferentes partes del texto. Podra tener sto: CLS nombreuno$="Freddy Bloggs" nombredos$="Freddy Bloggs sister" PRINT nombreuno$

PRINT nombredos$

El signo del dlar ($) debe ir al final de la variable nombre. Esto da a entender que es una variable de cadena (de cadena slo). VBasic puede manejar cadenas y variables en diferentes formas, stas se llaman Variantes. Pero por ahora es mejor conocer el mtodo fcil que QBasic puede entender. QBasic puede manejar hasta 32.767 caracteres en cualquier cadena. La nica vez que podras excederte es si ests escribiendo en un editor de texto. Hay mtodos en los que puedes adoptar otro camino para este problema. Si me acuerdo te lo explicar ms tarde. En el siguiente Tutorial aprenders como tomar datos metidos desde teclado y usarlos de diferentes formas. Entonces continuamos y vamos al Tutorial nmero 3. <qbasic3.html> 1995-97, etsimo WWW team </derechos.html> QBasic Tutorial 4. Cuando escribas un programa en QBasic la situacin en pantalla es una de las caractersticas ms importantes de tu programa. T debes limpiar la pantalla del programa a leer y no tener restos intiles de otros programas por la pantalla. En el programa anterior hemos utilizado como base una pantalla negra con el texto escrito en blanco. En el siguiente programa vamos a cambiar todo esto para que tu programa resalte. Escribe lo siguiente exactamente y presiona "F5" para correrlo: SCREEN 12 COLOR 10 PRINT "Estamos usando una letra de color verde sobre fondo negro" PRINT " La resolucin de la pantalla es 640*480 con 256 Colores!" FOR i = 1 TO 60000 NEXT i SCREEN 9 COLOR 10, 8 PRINT "Estamos usando una letra de color verde sobre fondo azul" PRINT " La resolucin de la pantalla es 640*350 con 64 colores!"

En el anterior ejemplo de cdigo hemos introducido dos nuevos comandos. stos comandos son "SCREEN" y "COLOR". Vamos a echar un vistazo a la sentencia "SCREEN". QBasic puede trabajar con diferentes modos de pantalla. Cuando digo modos de pantalla estoy hablando de diferentes tamaos y colores. Aqu tienes una pequea lista de diferentes modos en QBasic. SCREEN 0: Slo modo de texto SCREEN 1: 320 * 200 grficos SCREEN 2: 640 * 200 grficos SCREEN 4: 640 * 480 grficos SCREEN 7: 320 * 200 grficos SCREEN 8: 640 * 200 grficos SCREEN 9: 640 * 350 grficos SCREEN 10: 640 * 350 grficos, slo monitor monocromo

SCREEN 11: 640 * 480 grficos SREEN 12: 640 * 480 grficos SCREEN 13: 320 * 200 grficos

stos modos de pantalla son tiles para todos los usuarios de QBasic. Los modos de pantalla son muy importantes en los programas. Por ejemplo, si tu quieres dibujar lineas, cubos y crculos en la pantalla con alguna clase de mtodo grfico debes usar un modo de pantalla que te admita el dibujo de grficos. Muchos de los modos de pantalla anteriores trabajan con todos los PCs recientes. Hace unos aos no era posible trabajar con algunos de ellos porque seguramente necesitaras un adaptador grfico. Es por ello que muchos PCs recientes son diseados para trabajar con los viejos modos de pantalla tales como CGA,EGA,VGA y ahora SVGA. Muy bien, as que puedes beneficiarte de diferentes modos de pantalla. Bien, algunos de los anteriores modos de pantalla te permiten usar ms colores que los otros. En el primer programa de este tutorial tuvimos un programa que poda usar dos modos de pantalla. Uno tena un mximo de 256 colores y el otro slo te permita utilizar 64 colores. Cuando escribas un programa piensa en los colores que realmente vas a necesitar y la resolucin que deba tener la pantalla. 640*480 es una resolucin muy buena que se encuentra en el modo de pantalla 11. Intenta cambiar los modos de pantalla del primer programa de este tutorial y mira lo que obtienes. Recuerda que algunos de stos modos de pantalla podran no funcionar, as que no te preocupes si esto ocurre. Para ms informacin de los modos de pantalla escribe "SCREEN" y presiona F1. Usando pantallas en color. Por tanto el primer programa usado utilizaba dos modos de pantalla distintos y algunas gamas de color distintas. Vamos a echar un vistazo al comando "COLOR". En principio la sentencia color permite al usuario seleccionar unos colores especficos para el fondo y letras del programa. Esto tambin permite seleccionar el color del borde. El borde es el rea que encuadra la pantalla. La sentencia "COLOR" puede ocupar cualquier posicin en el programa entre los comandos mencionados hasta ahora. Al final de este captulo hay una breve descripcin de los comandos aprendidos hasta ahora. Para poner este comando en prctica vamos a escribir este interesante programa. No voy a decirte que hace todava, as que por ahora, slo escrbelo y crrelo presionando "F5". SCREEN 12 CLS FOR i = 1 TO 15 COLOR i PRINT "Comprobando Comprobando 1.2.3" NEXT i As que vamos, es un programa simple. Puedes adivinar lo que hace con lo que hemos aprendido hasta ahora?. Bien, vamos a ver comando a comando y ver cmo funciona. SCREEN 12 Ahora vamos a seleccionar el Modo de Pantalla 12. ste nos permite usar 16 colores escogidos de una paleta de 256 colores. Tienes ms informacin en el Men de Ayuda de QBasic. CLS Sabemos que este comando nos limpiar la pantalla de restos de letras que han quedado en la pantalla de antes. FOR i = 1 TO 15 Estamos dando al comando "COLOR" un valor "i" inicial de uno que se ir incrementando en 1 despus. COLOR Estamos dando a la sentencia "COLOR" un valor inicial de 1 que viene dado por la "i" del comando "FOR". PRINT "Comprobando Comprobando 1.2.3" Ahora estamos escribiendo palabras que aparecern sobre la pantalla. NEXT i Cuando se corre el programa repetir el bucle de "FOR" y "NEXT" hasta que la variable "i" alcanza 15, valor definido en la anterior sentencia "FOR". As cuando el programa corra mostrar 15 partes de texto cada una con un color distinto. Date cuenta que slo aparecern 15 partes de texto cuando, realmente deberamos estar mostrando todas las posibles que son 16. Para que esto suceda deberamos cambiar el comando FOR a esto: FOR i = 0 TO 15 Date cuenta de cmo hemos cambiado el valor inicial de "i" a cero. Es porque el valor del color 0 es negro. Si lo cambiamos a 1 TO 16 nos dar un error porque la sentencia "COLOR" en el Modo de Pantalla 12 slo puede manejar 16 colores a la vez. Vamos a hacer un pequeo juego con el bucle de "NEXT" y "FOR". As es como funciona el comando "COLOR".

COLOR (foreground) (,(background) (,border)) --- Screen mode 0 COLOR (background) (,paleta) COLOR (foreground) (,background) --- Screen mode 1 --- Screen modes 7-10

Como puedes ver en el primer programa de ste tutorial nosotros podemos definir el color de fondo pero tambin el de superficie (letras,nmeros...). La sentencia "COLOR" funciona de forma bastante diferente con otros Modos de Pantalla. Para ver cuando funciona y cuando no, echa un vistazo debajo de la fila de ayuda "COLOR". Ser una referencia ideal a usar cuando selecciones colores para varias partes de tus programas. La sentencia "COLOR" es explicada es explicada con ms detalle en un par de tutoriales desde ahora. Ah! El comando color no es usado por todos los lenguajes de programacin de Basic. Cuando necesites comprobar esto echa un vistazo a la gua del usuario. Tarea 1.2 Escribe un programa dando muchos colores en el que preguntes al usuario por su nombre y edad. Cuando aparezca en la pantalla asegrate de que lo escrito est en un color diferente. Pista: usa el modo 12 de pantalla. La respuesta est al final de este tutorial. Revisin de los programas aprendidos PRINT FOR NEXT CLS SCREEN COLOR INPUT STEP IF ELSE THEN ENDIF Muchos de estos comandos se mencionarn con ms detalle en el tutorial mas adelante, pero no lo ests haciendo mal. Lo ms importante es que experimentes con lo que has aprendido y lo comprenders sin esfuerzo. Tarea 1.2 Solucin SCREEN 12 CLS COLOR 3 INPUT "Nombre:", nombre$ COLOR 5 INPUT "Edad", edad COLOR 9 PRINT "Hola" ; nombre$ COLOR 10 PRINT "Tu edad es" ; edad

El cdigo est bueno, simple y da buen resultado. Tu programa debera ser similar a esto, pero los colores sern probablemente diferentes a los mos. Intenta escribir mi programa y observa si obtienes el mismo resultado que yo. Si es parecido al mo muy bien, pero sino no te preocupes!. As que ahora has aprendido un poco sobre los modos de pantalla y colores en QBasic, recuerda que stos pueden ser colocados en cualquier lugar en el programa en QBasic. Recuerda que no es necesario que uses el comando "CLS" todo el tiempo, la pantalla deber limpiarse automticamente cada vez que se seleccione un nuevo modo de pantalla. Contina y muy bien. En el siguiente captulo vamos a prender sobre el orden en pantalla y te adentraremos un poco en el uso de comandos como "LOCATE" y "DATE$". Tambin aprenders como hacer que el ordenador te responda usando una seal de advertencia como "BEEP". La sentencia "IF" y "ELSE" ser mencionada y usada con ms detalle ms adelante. <qbasic5.html>Nos vemos pronto!. 1995-97, etsimo WWW team </derechos.html>

QBasic Tutorial 5 Cuando escribes un texto en QBasic debes situar el texto en un buen lugar en la pantalla. En los ejemplos previos vistos hasta ahora el testo estaba escrito en la esquina superior izquierda de la pantalla. Podemos usar un comando especfico para situar el texto en cualquier lugar especfico de la pantalla; este comando se llama "LOCATE". Debajo hay una sntesis simple: LOCATE fila, columna,cursor row El nmero de una fila en la pantalla; fila es una expresin numrica y debe ser un valor entero. Si el nmero de fila no se especifica, luego no podremos cambiar la fila. column El nmero de columna en la pantalla; columna es una expresin numrica y debe ser especificado para poder cambiar su localizacin. cursor Un valor indica si el cursor es visible o no. El valor 0 (cero) indica que el cursor est apagado, el valor 1 indica que el cursor est encendido. Sigamos, djame slo explicar brevemente djame slo explicar lo que es un entero. Un entero es un nmero entre -32.768 y 32767. Esto significa que el valor de 21566 es un entero, y un valor de 2342992 es un entero largo. Por favor busca en la seccin de tipo de archivo ms detalles de esto. Pero desde ahora las variables enteras van a ser usadas como el ejemplo de debajo en este tutorial. Money%=599

O.k este es un pequeo cdigo que te mostrar cmo funciona el comando "LOCATE". SCREEN 12 CLS LOCATE 5, 10 PRINT "Hola mundo estamos en 5, 10" LOCATE 10, 1 PRINT "Hola mundo estamos en 10, 15"

Si escribes este programa y presionas "F5" encontrars que las palabras "Hola Mundo nosotros estamos en y,x" estn localizados en distintos lugares en la pantalla. La y,x en la frase anterior es cualquier cosa que est metida en el programa originalmente. Intenta cambiar la sentencia "LOCATE" en el programa anterior a algo diferente. Presiona "F5" para correrlo. ste es un captulo que te ensear como funcionan las coordenadas de fila y columna. --------columna---------La primera sentencia "LOCATE" en el programa que acabamos de traducir hace mover la siguiente sentencia "PRINT" 5 filas ms abajo y desplazada 10 caracteres. Lo que debes recordar es que cualquier sentencia de "PRINT" seguido de "LOCATE" slo har la operacin seguido de sentencia. La sentencia locate no tiene que tener un valor representando la fila y al columna todo el tiempo. Por ejemplo nosotros podemos tener: LOCATE 5

Esto simplemente mueve la sentencia "PRINT" situndose 5 columnas debajo en la pantalla. Tambin podemos tener esto: LOCATE ,5

Esto simplemente mover las sentencias "PRINT" 5 columnas desplazando la pantalla. As que no tendrs que especificar los argumentos todo el tiempo de nuevo. Los argumentos son informacin que es necesaria para que la sentencia trabaje. Por ejemplo: LOCATE argumento1,argumento2 En este caso el argumento1 corresponde a fila y el argumento2 a la columna. Juega con el comando "LOCATE" y mira lo que obtienes. Sonando un BEEP!!! Dentro de QBasic puedes obligar a tu ordenador con un simple sonido sabiendo que es una advertencia o mostrando informacin. Este comando se llama "BEEP". Es muy fcil de usar. Intntalo metiendo lo siguiente en la lnea 1 de tu programa y presionando "F5" para correrlo. BEEP Simple!. Generar un sonido en un tono alto. Puedes situar el comando "BEEP" en cualquier lugar dentro del programa. En el siguiente programa el comando "BEEP" es usado junto a otras partes que has aprendido hasta ahora. Escribe lo siguiente y presiona "F5" para correrlo. Recuerda borrar el programa que has escrito anteriormente.

SCREEN 12

CLS Comprobacin$ = "Fred" LOCATE 5, 5 INPUT "Por favor introduce la contrasea.", contrasea$ IF contrasea$ = comprobacin$ THEN CLS LOCATE 5, 5 PRINT " Acceso Concedido" ELSE CLS LOCATE 5, 5 PRINT " Acceso Denegado!!!"

BEEP ENDIF

El programa anterior puede parecer complicado al principio, pero realmente es muy fcil. En primer lugar el programa cambia la pantalla al modo 12. Despus barrer la pantalla para limpiar los restos de otro programa anterior. La siguiente sentencia har que la variable "comprobacin$" tenga la palabra "fred" guardada dentro. Nosotros prepararemos la pantalla para preguntar por la contrasea. Una vez que la contrasea ha sido escrita se guardar la informacin dentro de la variable llamada "contrasea$". La siguiente sentencia "IF" comprueba que la variable "contrasea$" es la misma que la contenida dentro de la variable "comprobacin$", en cuyo caso escribir "Acceso concedido". Si la contrasea no es correcta saltar a la sentencia "ELSE" y escribir " Contrasea Incorrecta!!!". Adems sonar un alto pitido procedente del altavoz. Vamos a hacer un programa simple de introducir y comprobar. Tambin puedes comprobar nmeros correctos. Este es un programa que te permite hacerlo: SCREEN 12 CLS comprobacinnmero% = 50 LOCATE 5, 5 IF nmero% >= comprobacinnmero% THEN CLS LOCATE 5, 5 PRINT " 50 o mayor ELSE

CLS LOCATE 5, 5 PRINT "49 o menor" ENDIF

De nuevo otro simple programa que comprueba si un nmero entero es mayor o menor que otro guardado en la variable "comprobacinnmero%". En principio la variable "comprobacinnmero%" est fijada en 50, la cual es comprobada por las sentencias "IF" y "ELSE", como la contrasea del programa anterior. La sentencia "IF" est comprobando para ver si el valor que has escrito es mayor que o igual que el valor guardado en la variable llamada "comprobacinnmero". Por ejemplo si t escribes 49 podrs obtener un resultado de "49 menor" escrito en la pantalla. Sin embargo si t escribes 50 o ms en tu programa obtendrs un resultado de "50 o mayor!!!" escrito en la pantalla. Fecha y hora QBasic permite al usuario enterarse del sistema del sistema de fecha y hora que tiene. Para hacer esto puedes usar dos simples comandos como "DATE$" y "TIME$". Tu tambin puedes poner la fecha y hora dentro de un programa de QBasic, pero esto ser explicado mucho ms tarde. Escribe el siguiente programa y presiona "F5" para correrlo. Recuerda limpiar la pantalla del programa anterior que tienes en la memoria. CLS PRINT "La fecha de hoy es:", DATE$ PRINT "La hora es:", TIME$

Presiona "F5" para correrlo y podrs ver la fecha y hora en tu pantalla. No hay mucho ms que pueda decirte acerca de las sentencias "DATE$" y "TIME$" hasta ms tarde. Podras intentarlo escribiendo un programa que muestre la fecha y hora en la parte superior de la pantalla y pregunte al usuario por una contrasea. Vas a aprender ahora 4 comandos ms de QBasic. Recuerda que puedes obtener un men de ayuda presionando "F1" sobre algn comando de la pantalla. En el siguiente captulo <qbasic6.html> te mostrar algunos bucles tcnicos bsicos que continan la operacin hasta que algo suceda como que el usuario presione una tecla o algo provoque que el bucle se detenga. Gracias por leerlo!. 1995-97, etsimo WWW team </derechos.html> QBasic tutorial 6 Dentro de QBasic puedes crear un programa que haga algo en uno u otro perodo de tiempo o hasta que el usuario haga al ordenador hacer algo ms. En esta parte del tutorial voy a mostrarte un par de tcnicas que te permitan hacer esto. Ya hemos visto un bucle de este tipo como "FOR" y "NEXT". Este bucle permite operar por un camino completamente distinto a los vistos en ejemplos anteriores. Ahora voy a adentrarte en los comandos de bucle "DO" y "LOOP". Este es un programa bsico en el cual el bucle se repite una y otra vez hasta que el usuario lo para presionando las teclas CTRL & SUPR. Escrbelo y crrelo presionando "F5". CLS DO PRINT "HOLA MUNDO" LOOP

Para este ejemplo puedes ver las palabras "HOLA MUNDO" escritas siempre debajo en la pantalla. Tal vez no est muy claro en este momento pero el programa realmente est haciendo algo. Muchas veces podrs notarlo si el cursor est en la parte baja de la pantalla. Como puedes ver los comandos "LOOP" y "DO" son bastante eficaces incluso en este momento. Vamos a separar los comandos para ver lo que hacen realmente. DO Este comando prepara el comienzo del bucle que ejecut anteriormente entre los comandos "DO" y "LOOP": LOOP El comando "LOOP" slo es ejecutado si est presente "DO", como en los ejemplos anteriores. Todo el tiempo el comando "DO" de tu programa est esperando encontrar un comando "LOOP". Hay ms sobre "LOOP" y "DO" que se estn repitiendo siempre. Vamos a insertarlo en los comandos consiguiendo extraer alguna clase de resultado de nuestro ordenador. Ahora te voy a ensear un comando ms llamado "WHILE". Este comando es bastante efectivo pero a veces es complicado de entender. Aqu tienes un ejemplo simple que necesitas copiar y correr. CLS

DO WHILE I < 10 I= I + 1 PRINT I LOOP

El programa puede parecer complicado pero realmente no lo es. Cuando corras el programa simplemente escribe de 1 a 10 uno debajo de otro en la pantalla. El programa est realmente comprobando para ver si la variable I=10 y si esto hace que el programa finalice el bucle. En principio comenzamos el bucle y decimos que mientras que I no sea 10 escriba el valor en la pantalla. En este caso el programa volver al principio y comprobar la variable para ver si ha alcanzado el valor 10. Es simple, pero asegrate que lo alcanza. Intenta cambiar la primera lnea a un valor de 20 y mira lo que sucede. En la lnea debera leerse ahora: DO WHILE I < 20 Puede parecerte extrao, pero si ahora corres el programa te escribir de 1 a 20 uno debajo de otro en la pantalla. Para dar el siguiente paso, puedes hacerlo eligiendo dnde poner el comando "WHILE". Antes de darte otro ejemplo de programacin djame explicarte brevemente un poco ms del comando "WHILE". WHILE Esto es slo un poco de lo que te contar sobre el comando "WHILE" porque est mejor explicado junto a otro comando llamado "WEND". El comando "WHILE" permite que compruebes una condicin de algo al dar el resultado. Como explicamos en un ejemplo anterior est clasificado como un comando comprobador. El comando "WHILE" puede ser situado en otro lugar en el ejemplo de programacin que te di antes y obtendrs el mismo resultado. Este es un cdigo que hace lo mismo que antes. CLS DO I=I+1 PRINT I LOOP WHILE I < 10 As que como puedes ver el programa de arriba te dar el mismo resultado si presionas "F5" y lo corres. As que los bucles "DO" y "LOOP" te darn la misma clase de flexibilidad cuando decidas dnde situar el cdigo en tu programa. Esto permite mayor control sobre resultados y diseos en el programa, recurdalo. Los bucles son explicados y usados con ms detalle en los tutoriales despus. Comprensin de la introduccin al usuario La introduccin al usuario es una parte vital en cualquier programa. Por ejemplo ya habl de como manejar variables y cadenas. Tambin habl de cmo usar el comando "PRINT" en pequeo detalle. Vamos a poner todos nuestros conocimientos previos en prctica en un programa completo. No te preocupes si el programa parece un poco complicado y laborioso, es fcil, slo sigue poco a poco y todo saldr claro. CLS Contrasea$="MANZANA" DO INPUT "Cual es tu contrasea:", Pase$ IF Pase$ = Contrasea$ THEN Enter=1 LOOP WHILE Enter <> 1 CLS PRINT " Has accedido!&quo;

Despus de haber escrito el programa y presionar "F5" la pantalla se limpiar y te pedir la contrasea. Si metes cualquier cosa que no sea "MANZANA" te la pedir una y otra vez hasta que la introduzcas correctamente. Recuerda que el programa est comprobando a ver si lo escribes en mayscula o minscula. Este programa slo lo aceptar si t escribes la palabra manzana como "MANZANA" no como "manzana". En turoriales posteriores explicaremos como cambiar palabras que ests en minsculas a maysculas y viceversa sin presionar las teclas de BLOQ MAYS o SHIFT. Un vistazo rpido a WHILE Debajo tienes el cdigo principal para un simple programa ms en el que te mostrar el comando "WHILE". Escribe lo siguiente en QBasic y presiona "F5" para correrlo. DO I = I + 1 PRINT I LOOP WHILE I <> 1000

El programa anterior hace ms sencilla la comprensin de los comandos"DO, LOOP, WHILE". Si escribes el programa y lo corres, contar de 1 a 1000. Esto es fcil de comprender si echas un vistazo a como est hecho. Primero te mostrar como el ordenador comienza el bucle usando el comando "DO". Luego estamos preguntando al ordenador para empezar por una variable llamada "I". La siguiente sentencia escribir el valor de i en la pantalla, en cuyo caso el valor inicial debe ser 0. El ordenador ha empezado la variable con un valor 0. La siguiente parte del programa comprobar para ver si el valor "I" de la variable es 1000, si no es as saltar al comienzo del bucle, que en este caso es la sentencia "DO". Luego el ordenador te dir que sumes la variable 1 al valor anterior de la variable "I", en este caso debe hacer "I"= 1 luego 2 luego 3 etc. Con el programa anterior puedes cambiar la "I = I + 1" a "I = I + 2". Esto provocar que el ordenador sume 2 a la variable "I" hasta que el ordenador alcance la sentencia final que es "LOOP WHILE" para comprobar si "I" ha alcanzado el valor 1000. CLS Nombreantiguo$ = "FRED" DO INPUT " cual es tu nombre:", nombre$ IF nombre$ = Nombreantiguo$ THEN acceso = 1 LOOP WHILE acceso <> 1

Arriba hemos usado de nuevo una clase de programa parecido, como el programa de contrasea, el cual permita al usuario comprobar la informacin de entrada de una variable respecto a otra. El anterior programa te pide un nombre. Si la informacin que has escrito es la misma que la contenida en la variable "Nombreantiguo$" el programa continuar, si no es la misma saldr. Ten una pequea practica usando variables con clases de bucles "DO LOOP" y mira lo que puedes obtener. En este captulo has aprendido los bucles de control bsicos introduciendo informacin desde el teclado. En el siguiente captulo te mostrar un men de programa simple el cual usa nuevos comandos como "SELECT", "CASE" e "IS". Voy a advertirte que ahora, en el siguiente captulo tal vez te perders un poco, pero no pasa nada esto es slo una parte del proceso de aprendizaje. Si te pierdes no lo dejes, slo lee el captulo de nuevo hasta que veas todas las cosas claras. Muy pronto escribir un programa en el que usaremos casi todos los comandos vistos hasta ahora. Este programa ser ideal como referencia y para darte slo un sentido general de cmo poner los comandos juntos y hacer buenos programas. Sigue hasta el siguiente captulo. <qbasic7.html> QBasic Turorial 7 En este captulo vamos a escribir un men simple de programa que puede ser usado en muchos de tus propios programas slo cortndolo e insertndolo en l. Puedes necesitar cambiar un par de cosas, tales como el texto en el que est escrito en pantalla. Antes de seguir aqu tienes el cdigo que debes escribir. CLS SCREEN 12 COLOR 12 LOCATE 3, 35 PRINT "Men Principal del Usuario" LOCATE 4, 35 PRINT "------------------------------------" COLOR 10 LOCATE 10, 35

PRINT "1. Suma" LOCATE 12, 35 PRINT "2. Resta" LOCATE 14, 35 PRINT "3. Divisin" LOCATE 16, 35 PRINT "4. Multiplicacin" COLOR 6 LOCATE 25, 32 INPUT "Introduce un Nmero (1-4):", nmero SELECT CASE nmero CASE 1 PRINT "Has seleccionado el nmero 1" CASE 2 PRINT "Has seleccionado el nmero 2" CASE 3 PRINT "Has seleccionado el nmero 3" CASE 4 PRINT "Has seleccionado el nmero 4" CASE ELSE PRINT "El nmero que has seleccionado no era de 1 a 4" END SELECT

Oh s! Las cosas estn empezando a ponerse emocionantes. Tmate un minuto y repsate el cdigo. Como puedes ver contiene bastantes cosas de las que has aprendido hasta ahora. La nica parte que no has aprendido es sta: SELECT CASE nmero CASE 1 PRINT "Has seleccionado el numero 1" CASE 2 PRINT "Has seleccionado el nmero 2" CASE 3 PRINT "Has seleccionado el nmero 3" CASE 4 PRINT "Has seleccionado el nmero 4" CASE ELSE (CUALQUIER CASO) PRINT "El nmero que has seleccionado no era de 1 a 4) END SELECT

Confa en mi, esta parte es muy fcil. Primero vamos a echar un breve vistazo al significado de la sentencia "SELECT CASE". La sentencia "SELECT CASE" te permite ejecutar una de las muchas sentencias de un bloque. Por ejemplo una sentencia de un bloque es esto: CASE 2 PRINT "Has seleccionado el nmero 2"

En el programa principal anterior tenemos 5 sentencias en un bloque que son "CASE 1", "CASE 2", "CASE 3", "CASE 4" y "CASE ELSE". Dentro de la parte "SELECT CASE" del programa anterior, la primera lnea dice:

SELECT CASE nmero Este comando pregunta para ejecutar una sentencia de un bloque en la que est contenida la variable llamada "nmero". Si echas un vistazo a esta parte del programa vers que tenemos un comando "INPUT" que est preguntando al usuario un nmero. El comando "SELECT CASE nmero" usar cualquier sentencia del bloque que se pregunte. As que si yo escribo "2", dentro del programa, la sentencia "SELECT CASE" usar el "CASE 2", y luego ejecutar cualquier cosa que est contenida en el programa despus de esta y antes de que la frase "CASE 3" aparezca. El comando "CASE ELSE" es usado slo en caso de que el usuario no haya puesto un nmero de 0 a 4. Si el comando "SELECT CASE nmero" no encuentre un caso al que referir lo que ha escrito el usuario lo referir al "CASE ELSE" para dar un mensaje de error o cualquier cosa que el usuario pregunte. Avanzando con "SELECT CASE" Vamos a evolucionar algo que es un poco ms avanzado que el primer programa de "SELECT CASE". Dentro del siguiente programa vamos a utilizar un comando llamado "TO". Podrs ver lo que hace despus, pero antes vamos a escribir el programa que mostramos debajo y correrlo presionando "F5". CLS SCREEN 12 COLOR 12 LOCATE 3, 35 PRINT "Men del Usuario Principal" LOCATE 4, 35 PRINT "-----------------------------------" COLOR 10 LOCATE 10, 35 PRINT "1-2. Suma" LOCATE 12, 35 PRINT "3-4. Resta" LOCATE 14, 35 PRINT "5-6. Divisin" LOCATE 16, 35 COLOR 6 LOCATE 25, 32 INPUT "Nmero Entero (1-8):", nmero SELECT CASE nmero CASE 1 TO 2 PRINT "Has CASE 3 TO 4 seleccionado el nmero 1 2"

PRINT "Has seleccionado el nmero 3 4" CASE 5 TO 6 CASE 7 TO 8 PRINT "Has seleccionado el nmero 7 8" CASE ELSE PRINT "El nmero elegido no es de 1 a 8" END SELECT

Al primer vistazo puede no parecerte diferente del primer programa, pero debes darte cuenta de que insertamos la sentencia "TO" dentro de "SELECT CASE", "END SELECT" forma parte del programa. La sentencia "TO" te permite introducir un rango de algo dentro de la sentencia "SELECT CASE" e incluso dentro de los bucles "NEXT" y "FOR". Recuerda que has usado "TO" dentro de las sentencias "NEXT" y "FOR" en captulos anteriores. El programa actual te permitirs responder no slo a uno, si no a dos nmeros seleccionados dentro del rango. As que para ejecutar la cuarta sentencia "CASE" necesitaras escribir 7 u 8 en el programa cuando se est corriendo. El comando de abajo es de sentido comn y puede ser comprendido si piensas en qu est haciendo el programa. En el siguiente captulo <qbasic8.html> te adentrar en un camino en el que manejars nmeros dentro del programa. Te he explicado brevemente el uso en turoriales anteriores. Vamos a echar un vistazo ms a esto un poco ms en profundidad. Gracias por leer esto hasta ahora. 1995-97, etsimo WWW team </derechos.html> QBasic Turorial 8 Usar nmeros en QBasic es probablemente una de las cosas ms importantes que vas a necesitar conocer cuando escribas un programa en QBasic. Por ejemplo si ests escribiendo un juego probablemente necesitars guardar la puntuacin de los jugadores y algunos bonos que obtenga. Un ejemplo simple de sumar un bono al marcador es probablemente este: bono = 100 puntuacin = 500 puntuacin = puntuacin - bono PRINT score

El programa anterior muestra como QBasic guarda el valor 100 en la variable "bono" y 500 en la variable "puntuacin". La siguiente lnea suma ambas "puntuacin" y "bono" juntas y le asigna un nuevo valor a la variable "puntuacin". Este ejemplo acaba de mostrarnos un camino para sumar valores variables e igualarlas a un nuevo resultado. Podras hacer cosas un poco ms complicadas que sta. Que haras si tuvieses 4 variables y quisieses sumarlas juntas?. Podras hacer algo como lo siguiente: bono = 100 puntuacin = 500 levelbonus = 200 luckscore = 100 puntuacin = puntuacin - bono - levelbonus - luckscore PRINT puntuacin

Recuerda que puedes sumar variables numricas de cualquier manera, pero slo estando seguro de que no son cadenas que ests sumando juntas todava. Los siguientes ejemplos muestran otros caminos para manejar nmeros en algn programa: age = 21

new = 3 age = age - new PRINT age

El programa anterior est usando el operador "-" para hacer el trabajo requerido. En nuestro lenguaje esto es llamado resta o substraccin. El siguiente programa te permite ver cmo trabaja con nmeros puede afectar al resultado final de un programa. CLS "manzanas = 2" "ciruelas = 5" "naranjas = 3" LOCATE 2, 1 PRINT " En el almacn tenemos:" ; manzanas; "Manzanas, " ;ciruelas; "Ciruelas, " ; naranjas; "Naranjas" LOCATE 6, 8 PRINT "Ahora hemos vendido dos ciruelas y una naranja" ciruelas = ciruelas - 2 naranjas = naranjas - 1 LOCATE 10, 1 PRINT "En almacn tenemos:" ; manzanas; "Naranjas" " Manzanas," ; ciruelas; "Ciruelas," ; naranjas;

Ya he explicado en tutoriales anteriores como se usan muchos de estos operadores. =---------->es igual a<>---------->no es igual a>---------->es mayor que<---------->es menor que>=---------->es mayor o igual que<=---------->es menor o igual queDurante algn programa largo probablemente utilices alguno o ms de los anteriores. Con los anteriores operadores puedes hacer operaciones sobre diferentes nmeros. Por ejemplo t puedes comprobar si algo es mayor o igual que. No se si lo sabrs pero en el Reino Unido hay un programa de televisin llamado "Juega bien tus cartas". En el juego del programa has de decir si la siguiente carta es mayor que la precedente. Por ejemplo supongamos que la primera carta es un 6. El concursante ha de decir si la carta es mayor o menor que la siguiente. Si el dice mayor y sale de un 7 hasta un as habr ganado en esta ocasin. Si sale 5 o menor y el jugador que aparece en pantalla ha dicho mayor resulta que pierden. Los juegos como este seran muy fciles de escribir, y se utilizan bastantes de lo operadores anteriores para simularlos. El de abajo es un simple juego de adivinanzas. CLS RANDOMIZE TIMER nmero = INT(RND * 10) DO INPUT "Adivina el nmero:", adivina

IF adivina > nmero THEN PRINT "Es Alto" IF adivina < nmero THEN PRINT "Es Bajo" LOOP UNTIL adivina = nmero PRINT "Has ganado!"

Oh si, ahora te lo voy a poner ms difcil. Te voy a adentrar en dos nuevos comandos. El primero es "RANDOMIZE TIMER" y el otro es "INT(RND)". No te preocupes si parece un poco complicado porque realmente es muy simple. Djame explicarte los dos comandos. "RANDOMIZE TIMER" es una forma de generar realmente nmeros al azar. "RANDOMIZE" es un nmero que pone sin frmula, sin un comando, lo pone simplemente y permite mezclar los nmeros, cuando introduces el comando "TIMER" los mezcla mucho ms. Probablemente no usars "RANDOMIZE" a menos que ests escribiendo un juego de nmeros o algo de esa naturaleza. Sin embargo "INT(RND)" es probablemente algo que usars mucho. La parte "INT" explica que est buscando la parte entera. Ya te he explicado antes los enteros en este tutorial. Para explicarlo un poco ms, un entero es un nmero entero y no con decimales como 4,3454. Las variables enteras son buenas a veces porque te aseguran obtener un nmero entero. Si omitieses la parte "INT"(parte del programa anterior, encontrars que el comando "RND * 10" generar algn valor decimal entre 1 y 10, como 5,3. Ah es a dnde me lleva el siguiente punto. La parte "(RND * 10)" me generar un nmero aleatorio entre 0 y 10. Si pongo (RND * 10)" obtendrs un nmero aleatorio entre 0 y 20 generado por ti. Recuerda que el nmero al azar generado ser situado en la variable nmero en el programa anterior. La comprobacin rutinaria de un nmero es esta parte. IF adivina > nmero THEN PRINT "Es Alto" IF adivina < nmero THEN PRINT "Es Bajo"

La primera lnea nos comprueba si el nmero adivinado por el usuario es mayor que el nmero generado al azar. Si es demasiado alto luego el programa escribir "Es Alto". La siguiente lnea de arriba es lo contrario. Est comprobando para ver si el nmero adivinado por el usuario es menor que el nmero seleccionado al azar. En el siguiente par <qbasic9.html> de tutoriales vers muchos operadores en uso, especialmente algunos que no hemos explicado todava. En el siguiente tutorial te ensear algunos comandos grficos. Tambin puedes adornar tus propios programas para atraer al usuario. Gracias por leerme hasta ahora. 1995-97, etsimo WWW team </derechos.html> QBasic tutorial 9 Bienvenido al siguiente tutorial de QBasic. Dentro de este tutorial te ensear algunas tcnicas bsicas de programar grficos. La presentacin del programa es grfica para atraer al usuario. La mayora de los programas de ahora contienen algn grfico desde simplemente subrayar el texto hasta todas las ventanas llenas de colores y efectos. Puedes crear cualquier cosa que te guste en QBasic con un simple juego de pasos grficos. En cualquier ordenador que programes grficos en todos los idiomas debes pensar un poco. Primero has de conocer dnde vas a poner los grficos en la pantalla. Eso es tal vez lo que has pensado hasta ahora pero no lo has conseguido. Si te fijas de cerca en la pantalla del ordenador o de la televisin vers pequeos pixels cuadraditos formando la imagen en la pantalla. Cada uno de esto pixel representa una simple localizacin en el monitor. Para colocar un punto muy en la esquina superior izquierda de tu pantalla necesitas una coordenada. Una coordenada es un nmero especfico de localizacin. No me dejes confundirte, pero por ejemplo si quieres tener un punto en el medio de la pantalla necesitaras tener un valor donde situar el punto. Mira al diagrama de abajo:

El diagrama de arriba se impone al representar el la pantalla del monitor o de la televisin. Si nos desplazamos sobre la pantalla hacia arriba lo haremos sobre el eje y. Si nos desplazamos a lo largo de la parte baja de la pantalla lo haremos sobre el eje x. Ahora si miras de cerca vers un punto en las cercanas del lado izquierdo de la pantalla buscada. Si queremos situar un punto ah necesitaramos saber el valor de la coordenada en la pantalla. Podramos hacer esto con bastante facilidad en QBasic. Dentro de QBasic la esquina superior izquierda de la pantalla es la coordenada 0,0. Este valor de la coordenada representa los ejes x,y como explique arriba. Ahora vamos a crear el punto en la pantalla buscada , necesitaremos unas coordenadas aproximadas de 100,100. Estas coordenadas desplazarn el punto 100 pixels en la pantalla hacia la izquierda y 100 de arriba hacia abajo. Si queremos desplazar el punto mas hacia abajo necesitaremos una coordenada aproximada de 100,300. Djame ensearte un simple programa que haga lo que acabo de explicar arriba. Escrbelo y presiona "F5" para correrlo. SCREEN 12 PSET (100,100),2

El programa anterior es muy simple. Primero estamos cambiando la pantalla del texto por omisin a la pantalla grfica. La siguiente lnea es nuestro comando grfico que se llama "PSET", que creo que significa cdigo de puntos. El la lnea de cdigo anterior preguntamos para tener un pequeo punto (lunar) dibujado en la pantalla en las coordenadas 100,100. 100 pixels hacia la izquierda y 100 hacia arriba. El nmero siguiente es el color del punto situado en la pantalla. En el anterior programa hemos utilizado un simple color de verde. Si tu no introduces el nmero de color coger por defecto el blanco.

El comando "PSET" puede ser usado en otros muchos modos de pantalla como otros comandos grficos. Necesitars intentar probar deferentes modos de pantalla, pero recuerda que la resolucin podr cambiar. Resolucin es lo que se conoce como diferentes tamaos como el modo estndar de ventana que podra ser de 800*600 pixels. La resolucin de la pantalla que usamos en el anterior ejemplo es 640 pixels a lo largo y 480 hacia abajo. As que puedes situar un punto (lunar) en cualquier valor dentro de stos. Ahora "PSET" es un comando muy simple. Djame que te adentre ahora en algo un poco diferente. Las lneas son muy populares y usadas con bastante frecuencia en los programas. Por ejemplo una lnea puede construir formas como un rectngulo o un cuadrado. El comando "LINE" trabaja un poco diferente al comando "STEP" en la forma de dibujar las formas en la pantalla. Debajo hay un simple ejemplo de cmo lo debes escribir SCREEN 12 LINE (100,100)-(200,100)

El programa anterior dibujar una lnea de una posicin a otra. Primero estamos pidiendo que sea puesto de nuevo en un modo grfico. Luego nosotros dibujaremos la lnea de una posicin en la pantalla a otra. Por ejemplo estamos dibujando una lnea desde 100 a lo largo y 100 abajo a 200 a lo largo y 100 hacia abajo. Es bastante sencillo si piensas de sta manera. Escribe lo siguiente en el programa. SCREEN 12 LINE (100,100)-(200,100) LINE (200,100)-(200,200)

El programa de arriba es virtualmente el mismo que el anterior pero el siguiente comando "LINE" est dibujando una lnea recta hacia abajo en la pantalla desde el primer comando "LINE". Tarea 3 Mira a ver si puedes dibujar un simple programa que dibuje un simple cubo en la pantalla usando las partes del que acabas de aprender antes. Consejo: recuerda que slo necesitas informacin que est incluida en este tutorial para escribir el programa. El programa ha sido escrito al final del programa para ver si lo haces bien. Incluso ms grficos Para extender tus conocimientos de QBasic a las caractersticas grficas voy a adentrarte en un comando que amplia tus conocimientos aprendidos antes. El siguiente comando grfico es llamado "CIRCLE". "CIRCLE" funciona parecido al comando "STEP" excepto que requiere un importante valor al final del comando. Por favor, escrbelo e intntalo en el siguiente programa. SCREEN 12 CIRCLE (100,100) ,50

Este programa dibujar un crculo en tu pantalla. Primero nosotros simplemente nos cambiaremos al modo de pantalla grfico y luego pondremos una localizacin de coordenadas en tu pantalla. La siguiente parte del comando pone el radio del crculo. Antes usamos un pequeo radio de slo 50 pero se puede poner mucho mayor. El comando "CIRCLE" pone el crculo de forma diferente en tu pantalla. Si no quieres confundirte no leas el siguiente prrafo. Cuando dibujes un crculo en la pantalla del ordenador no lo estar dibujando realmente en 100,100. Como vers si cambias la lnea de arriba a: SCREEN 12 CIRCLE (0,100), 50

Cuando corras este programa vers que slo la mitad del crculo ha sido dibujado. El valor de la coordenada del crculo es el centro del crculo. Esto parece complicado pero cierto. Observars que si usas mucho el comando "CIRCLE" aprenders como funciona. Extendiendo Lneas a Cubos Las lneas estn muy bien en un programa; pero qu haces si ests dibujando cubos?. Bien, en principio el comando "LINE" puede hacer todo el trabajo por ti. Escribe el siguiente programa y luego prubalo. SCREEN 12 LINE (100,100)-(200,200), 4, B

Oh!, s. Hemos creado una simple caja. Antes de avanzar me gustara decir que el programa anterior no es una solucin a la tarea que te di hace un rato. La solucin a la tarea se da provechosamente un poco ms tarde. El programa anterior dibujar un simple cubo con slo una lnea de cdigo. El cubo es creado en un color rojo y hace todo lo posible a partir de un simple cambio de cdigo. El comando "LINE" tiene ahora una letra "B" al final que significa "BOX". Para avanzar un paso ms que ste intenta cambiar "B" a "BF". Corre el programa, y s, t has creado ahora un simple cubo coloreado. As que como puedes ver, muchos efectos diferentes pueden ser creados con apenas unos pocos comandos grficos. Tendrs que experimentar con los comandos grficos para hacer las cosas perfectamente bien. Encontrars que el sistema de coordenadas de QBasic te quitar adems un poco de tiempo para comprenderlo. Despus de un rato de tiempo podrs realmente dar color a tus programas.

Solucin a la Tarea 3 Para dibujar un simple cubo usando el cuarto comando "LINE" es como sigue. Intntalo! SCREEN 12 LINE (100, 100)-(200, 100) LINE (200, 100)-(200, 200) LINE (200, 200)-(100, 200) LINE (100, 200)-(100, 100)

El comando te ha mostrado un simple juego de comandos grficos provechosos en QBasic. Recuerda que slo estamos tratando superficialmente lo que QBasic puede hacer. En posteriores tutoriales te ensear ms comandos grficos y les aadiremos lo que has aprendido hasta ahora. En el siguiente tutorial <qbasic10.html> te adentrar en caminos a travs del uso de procedimientos con los que puedas mejorar tu cdigo de programacin. Con esto podrs hacer que tus programas parezcan mejore y ms fciles de entender. Sigue experimentando. 1995-97, etsimo WWW team </derechos.html> QBasic tutorial 10 Bienvenido al tutorial 10. Antes de explicarte qu es un procedimiento djame adentrarte algo llamado Subrutina. Las subrutinas son secciones de cdigo que se dejan para acceso fcil y bsicamente para colocar bien el cdigo en QBasic para que sea fcil de leer y escribir. Primero djame explicar los dos comandos que harn todo el trabajo en QBasic. Gosub Un comando "GOSUB" es una sentencia de control que se extiende a otra parte del programa. En otras palabras, une parte de tu programa bsico a otra parte del programa cumpliendo alguna clase de accin. Con el comando "GOSUB" necesitars una etiqueta especfica. Una etiqueta es una parte que se encadenar con "GOSUB", ahora te mostrar un ejemplo de programacin dentro de un momento. Return El comando "RETURN" permite saltar atrs o a una etiqueta. Por ejemplo puedes tener "GOSUB" en una parte de tu programa para poder volver atrs o para continuar ms tarde. El mtodo es diferente y todos los tipos de programas pueden ser construidos. Aqu hay un simple comando de programacin usando estos dos comandos. CLS PRINT "Un simple programa GOSUB" PRINT "-------------------------------------" PRINT "En principio vamos a saltar a otro programa y escribir algo" GOSUB hola PRINT "Finalmente, hemos regresado con seguridad" END hola: PRINT "Hola, estamos saltando" PRINT "Vamos a regresar y finalizar el programa" RETURN

Como puedes ver todo parece bastante sencillo. En principio estamos haciendo las mismas cosas que has aprendido en tutoriales anteriores. La parte importante es la sentencia "GOSUB hola". Dentro de esta lnea estamos contando a dnde va el programa y encontrando la etiqueta llamada "hola". As el programa busca el resto del programa hasta que la etiqueta es parecida, que es la etiqueta que contiene a "hola". Contino dentro de la etiqueta "hola", est el cdigo que la ejecuta. El cdigo simplemente escribe un simple texto en la pantalla. Una vez que ha hecho esto, salta hacia atrs a donde viene, que es la sentencia "GOSUB". El

ordenador recuerda toda esta informacin una vez que la sentencia "GOSUB" ha sido alcanzada. Para poner esta teora en un ejemplo escribiremos otro programa corto que saltar a dos lugares diferentes en el programa. Escribe lo siguiente y presiona "F5" para correrlo. CLS PRINT "Otro simple programa GOSUB" PRINT "---------------------------------------" PRINT "En principio vamos a saltar a la Primera Etiqueta" GOSUB etiqueta1 PRINT "Hemos finalizado, volvemos con seguridad a la etiqueta1" PRINT PRINT "Despus vamos a saltar a la Segunda Etiqueta" GOSUB etiqueta2 PRINT "Hemos finalizado, volvemos con seguridad a la etiqueta2" END etiqueta1 PRINT "Hola he saltado a la Etiqueta1" PRINT "Vamos a regresar y saltar de nuevo. RETURN etiqueta2 PRINT "Hola vamos a saltar a la Etiqueta2" PRINT "vamos a regresar y finalizar el programa. RETURN

Como puedes ver es bastante usual hacer subrutinas en algunos programas de QBasic. Djame simplemente aconsejarte sobre un par de cosas: 1. Asegrate de no usar palabras reservadas como "PRINT", "STOP", "LOCATE", etc para tus etiquetas. 2. Asegrate de llamar a tus etiquetas por algunos nombres significativos que tengan que ver con lo que la subrutina est haciendo. Por ejemplo podras llamar "puntos: a la subrutina puntuacin de un juego. 3. Las etiquetas de subrutina siempre tienen dos puntos al final. Si te olvidas de ella te dar un error. Programando un ejemplo de la seleccin 1 Aqu hay un par de ejemplos de programas que debes querer intentar. Yo he usado muchos comandos de totorales anteriores para mostrar cmo se encadenan los programas juntos. Contrasea de programa CL PRINT "Contrasea del programa 2"

PRINT "-----------------------------------" PRINT INPUT "Por favor, introduce la contrasea:", contrasea$ IF contrasea$= "manzana" THEN GOSUB introduce ELSE GOSUB error END introduce: CLS PRINT " Bienvenido, lo has introducido correctamente" RETURN error: CLS PRINT "Lo siento, has metido la contrasea errnea"

El anterior es un simple programa que pregunta por una contrasea. Necesitas meter "manzana" para tener xito, si no el programa dir que has metido la contrasea errnea. Men del programa CLS PRINT "Men del programa" PRINT "--------------------------" PRINT PRINT "1. Abrir Archivo" PRINT "2. Salvar Archivo" PRINT "3. Guardar Programa" PRINT regresar: LOCATE 8, 10 INPUT "Seleccin:", nmero IF nmero = 1 THEN GOSUB opcin1

IF nmero = 2 THEN GOSUB opcin2 IF nmero = 3 THEN GOSUB opcin3 ELSE GOSUB regresar opcin1: LOCATE 10, 10 PRINT "Opcin 1 Seleccionada" RETURN opcin2: LOCATE 10, 10 PRINT "Opcin 2 Seleccionada" RETURN opcin3: LOCATE 10, 10 PRINT "Has finalizado el programa" END El anterior programa te permite seleccionar 1,2 3. Dependiendo de la tecla que sea presionada lo encadenar a una etiqueta relevante pero se dejar para recordarte algo. Muchos usuarios usan este comando para acordarse de lo que la lnea hace realmente. Debajo tienes un pequeo ejemplo. CLS REM "Debajo hay un simple Programa Escribiendo" PRINT "HOLA" Este programa es realmente bsico pero todava nos ensea este punto. Si lo que quieres realmente es llamar la atencin puedes usar una como rem. Aqu est como. CLS PRINT "HOLA" Este comando escribir la palabras "HOLA"

Cualquier cosa que aparezca despus del smbolo no ser usado durante el programa. Debes intentar situar el smbolo en su propia lnea. Debajo tenemos otro simple programa de ejemplo. CLS Estamos imprimiendo "HOLA" PRINT "HOLA" Luego podemos terminar el programa con el comando "END" END Como puedes ver "REM" y el smbolo es un comando usado que debes conocer. Es un excelente camino para comentar tu cdigo de programacin y que otros usuarios lo entiendan. Ahora deberas encontrar en alguno de mis programas ejemplos del uso de el comando "REM" y el smbolo . Intenta usarlo donde sea posible, no sabes que fcil es olvidar lo que hace cada parte del programa Introduccin a los Subprocedimientos Debo advertirte que algunas cosas pueden parecerte un poco complicadas cuando empieces a leer la siguiente parte del tutorial. Si te pierdes, por favor, intenta leerlo de nuevo hasta que sea de sentido comn. Sin embargo intentar hacer las cosas lo ms fcil de entender que sea posible. El Subprocedimiento funciona de modo un poco diferente que las subrutinas, como expusimos arriba. Con un Subprocedimiento t puedes trabajar en una parte particular del programa sin que el resto intervenga. Por ejemplo podras escribir el men de un programa y poner los detalles del men de cada programa separados fuera de tu programa, pero poder acceder a l muy fcil. Djame darte una perspectiva ms de esto. Por ejemplo si has escrito un juego de ordenador que permite matar aliengenas. Cad vez que un alien ha sido disparado incrementas tu puntuacin en 50. Podras crear un subprocedimiento para hacer esto sin tener que escribir el cdigo una y otra vez. Antes de ensearte cmo escribir un Subprocedimiento completo, djame ensearte cmo crear uno dentro del Editor de QBasic. Cmo crear un Subprocedimiento Asegrate de que has empezado con una pantalla limpia, si no la tienes, por favor selecciona "NEW" desplegndolo del archivo "FILE" del men. En cuanto est hecho estamos preparados para crear un Nuevo Subprocedimiento. Escribe "SUB hola". Una vez que lo has hecho y pulsado return, debes ahora meter el Subprocedimiento en el modo edicin. sta es la parte desarrollada abajo. Usuario del Microsoft QuickBasic La anterior teora funciona bien con QuickBasic, pero tambin podras hacer esto. Dentro del editor de QBasic mueve tu ratn sobre el men desplegable de "EDIT" y pulsa sobre "NEW SUB". Si no tienes ratn, pulsa simultneamente ALT+E. Esto desplegar el men "EDIT" hacia la barra de ttulo. Ahora mueve con la flecha la marca brillante hacia la opcin "NEW SUB". Ahora pulsa return. Una vez que has hecho lo que expliqu arriba debera aparecer una ventana preguntando por el nombre del nuevo New Sub. Llammosle "hola". Escribe la palabra "hola" en la caja "nombre:". Si haces ahora un click ( pulso con el ratn) o pulsas return sobre la caja "OK", tu rea de pantalla cambiar y te presentar algo que parece un poco diferente. La presentacin debera ser como esto.

Tu men de opciones puede ser diferente al mo. Esto es porque estoy usando la versin comercial de QBasic llamada QuickBasic. No te preocupes por esto por que todo lo que te explico funcionar igual. Como puedes ver en la pantalla mostrada arriba t rea de trabajo debera tener slo lneas escritas. Hay "SUB hola" seguidos en la siguiente lnea de "END SUB". Entre estas dos lneas debes meter todo el cdigo que quieras hacer. Escribe lo siguiente en la ventana del Editor. SUB hola PRINT "Hola, has accedido a un subprocesador." END SUB Una vez hecho esto, ahora ests preparado para continuar escribiendo el programa en la forma que lo has hecho en tutoriales anteriores. Bsicamente puedes olvidar cmo lo has escrito hasta ahora. Para regresar a la pantalla que tiene el programa necesitas seleccionar "VIEW" en el men desplegable. Puedes hacer esto como antes con "EDIT", pero en vez de hacer click sobre "EDIT" hazlo sobre "VIEW" con tu ratn. De nuevo puedes presionar ALT + "V" para hacerlo. Una vez el men desplegable aparece deberas tener algo como esto.

Mueve la barra de seleccin de men al detalle "SUBs" , una vez que brille haz un click sobre el botn del ratn presiona la tecla "Return". Recuerda que mi men puede parecer diferente porque estoy usando una versin comercial de QBasic. Una vez que hayas echo esto debe ser introducido en otra pantalla en una ventana diferente. Debers tener algo como lo siguiente.

*Nota: Item significa detalle, cancel cancelar y help ayuda. Ahora vers la palabra "Sin Ttulo" reluciendo en la ventana. La palabra "Sin Ttulo" es el nombre de tu programa principal. Esto es llamado Mdulo. Tu programa principal (mdulo" se llamar o encadenar al Subprocedimiento para cumplir su tarea. Tu programa principal (mdulo) es llamado "Sin Ttulo" seguido del nuevo Subprocedimiento llamado "hola". Para que nosotros podamos llamar este nuevo procedimiento "hola" necesitamos volver a situarnos en el programa principal (modulo). Podemos hacer esto con dos clicks seguidos sobre la pantalla llamada "Sin Ttulo" o presionando la tecla return ahora. Nosotros tambin podemos presionar el botn "Edit activo" con el ratn. Si haces lo anterior correctamente entrars ahora en el programa principal (mdulo). Este es donde estbamos al principio antes de meterte en todos estos procedimientos. T probablemente ests dando gracias al cielo por ello. O.k., ahora estars preparado para escribir un programa nombrando o encadenando el subprocedimiento que has creado. Esta es una parte probablemente fcil, sin embargo para castigarte te adentrar en un nuevo comando de QBasic. Declare Cada vez que creas un nuevo Subprocedimiento debes declarar su uso en el programa principal (mdulo). La razn es muy simple, todo el tiempo que el programa se corre en QBasic necesitas contar al programa cada Subprocedimiento que est all para ser usado. As en la construccin del actual programa vamos a crear un Subprocedimiento simple. Pero para poder usarlo tenemos que informar a QBasic que est all disponible para usar. En principio vamos a mirar los mtodos bsicos de la sentencia "DECLARE". Para decirnos que tenemos un Subprocedimiento llamado "hola" debemos teclear primero esta lnea en la ventana del programa principal (mdulo), que deberas tener en frente de ti ahora y no debera contener ningn cdigo de programacin en ella. Por favor, introduce el siguiente cdigo. DECLARE SUB hola () CLS hola La sentencia "DECLARE" funciona as. En principio estamos diciendo que el Subprocedimiento se llama "hola", como ya sabes. En segundo lugar tenemos algunos parntesis de abrir y cerrar. Estos parntesis representan algn argumento que vamos a aadir despus. No te preocupes por esto por ahora, slo asegrate de introducirlos en el programa siempre a menos que te digan lo contrario. La siguiente lnea os limpia la pantalla. La siguiente lnea es una parte interesante. All es dnde ocurre todo lo interesante. Ahora estamos llamando a un Subprocedimiento llamado "hola" que habamos escrito previamente. Todo lo que necesitas hacer es escribir el nombre del Subprocedimiento y correrlo todo dentro del subprocedimiento, dentro del programa. Es muy fcil de entender una vez que sepas cmo. Presiona "F5" para correr el programa y ver qu sucede.

As tenemos una introduccin muy bsica en Subrutinas y Subprocedimientos. Recuerda que este tutorial cubre de forma muy bsica los subprocedimientos, sobre los que aprenders ms en tutoriales fufuros. En el siguiente tutorial escribir un programa que usa no slo un Subprocedimiento, sino un par, slo mostrarte cmo funciona. Por ahora sigue programando y te ver pronto.

Potrebbero piacerti anche