1. QBASIC Programación: QBASIC Guía del alumno Qbasic es una versión moderna del lenguaje BASIC. Se trata de un lenguaje de alto nivel. En un lenguaje de alto nivel las instrucciones tienen un formato muy parecido al lenguaje humano. Esto hace que se puedan leer y escribir muy fácilmente. Sin embargo esas instrucciones no son entendibles directamente por el ordenador. Hace falta un compilador o un intérprete que traduzca esas instrucciones a un lenguaje que sea comprensible por el ordenador, ese lenguaje se llama código máquina. La diferencia entre un compilador y un intérprete es: - Un compilador: Traduce el programa completo, crea uno nuevo entendible por el ordenador, lo que se llama programa ejecutable, a partir de ese instante el ordenador trabaja exclusivamente con el ejecutable. - Un intérprete: Traduce y ejecuta cada línea del programa siguiendo la secuencia del mismo y lo hace cada vez que se tiene que ejecutar dicha línea, esto hace que sea mucho más lento que un compilador. QBASIC utiliza un intérprete. 2. Operaciones básicas 2.1. Abrir el programa 1. Haz doble clic sobre el icono Microsoft QBASIC extended que se encuentra situado en tu escritorio. 2. Pulsa cualquier tecla escape para que desaparezca la ventana de presentación. 3. Ya puedes empezar a trabajar con el programa. El nombre por defecto de tu nuevo programa es UNTITLED 4. Para cambiar alguna de las propiedades de la pantalla (tamaño de fuente, color, tamaño pantalla ) haz clic con el botón derecho del ratón en la barra de título del programa y selecciona la orden propiedades. 2.2. Introducir el código del programa Una vez que hemos abierto el programa, nos encontraremos con una ventana que en esencia funciona como un sencillo procesador de textos. En él iremos escribiendo las ordenes que deseamos que ejecute el programa. Las órdenes están estructuradas en líneas de código. Para finalizar una línea de código basta con pulsar la tecla de retorno de carro. Hay que tener claro que al ejecutar el programa se irán ejecutando de forma secuencial cada una de las líneas de código en el mismo orden en que aparecen escritas. - 1 -
2.3. Ejecutar el programa Guía del alumno Para ejecutar el programa podemos actuar de dos formas: 1. En el menú superior escogemos la opción RUN y dentro de ella seleccionamos la orden START. 2. Tecleamos el método abreviado (SHIFT + F5). Una vez que hay terminado la ejecución del programa el ordenador nos dará el siguiente mensaje Press any key to continue, pulsamos cualquier tecla y volveremos a la pantalla de edición. 2.4. Menu File De forma similar a cualquier programa Windows el menú File (Archivo), permite crear un documento nuevo, abrir uno ya existente o guardar el trabajo realizado. 3. Instrucciones básicas. REM, CLS y PRINT Vamos a crear nuestro primer programa en QBASIC. Para ello vamos a utilizar tres tipos de instrucciones. Estas instrucciones incluyen usan palabras claves, lo que a partir de ahora llamaremos comandos. Independientemente de que los escribamos con mayúsculas o minúsculas, cuando QBASIC detecte que hemos escrito una palabra asociada a un comando, automáticamente lo escribirá con letras mayúsculas. Es por lo tanto una buena idea escribir el programa con minúsculas y dejar que el programa haga el cambio, con ello obtendremos un código fácil de leer en el que se podrán distinguir fácilmente los comandos del resto del código. 3.1. REM Sirve para introducir comentarios en el programa. Al ejecutar el programa, QBASIC no tiene en cuenta las líneas que comienzan con el comando REM. Esto no quiere decir que esta orden no tenga utilidad, una primera forma de detectar la calidad de un programa es comprobar que incluye órdenes REM. Los programadores utilizan estas líneas para incluir comentarios que explican el funcionamiento de cada una de las partes del programa. El código de un programa, aunque éste sea muy sencillo, es algo difícil de entender incluso por la persona que lo ha escrito, los comentarios ayudarán a comprenderlo. REM comentario La orden REM puede sustituirse por comillas simples ( ) 3.2. CLS Borra la información que aparece en la pantalla. Conviene utilizar este comando al comienzo del programa para eliminar la información de programas anteriores. CLS 3.3. PRINT Se utiliza para escribir datos en la pantalla. Hay que tener en cuenta: - 2 -
- Si queremos mostrar un texto debemos escribirlo entre comillas. - Una instrucción PRINT puede incluir varios datos, estos han de separarse mediante el carácter punto y coma (;) lo cual deja un espacio en blanco entre los distintos grupos de datos. - También puede emplearse el carácter coma (,) para separar los grupos de datos, pero en ese caso se introduce una separación equivalente a diez espacios en blanco. - La instrucción PRINT puede sustituirse por el signo de interrogación (?). PRINT datos ; datos.. La instrucción PRINT admite dos funciones que permiten modificar como se van a presentar los datos por pantalla, son las funciones TAB y LOCATE TAB Permite visualizar los datos en una determinada posición de la línea. PRINT TAB(número) datos El número entre paréntesis indica el número de columna en el que han de aparecer los datos. LOCATE Permite visualizar los datos en una determinada posición de la pantalla. Ha de estar en una línea independiente de la orden PRINT LOCATE número1, número2 El primer número indica el número de fila en el que han de aparecer los datos, el segundo indica el número de columna. 4. Constantes y variables 4.1. Constante: Una constante es un dato cuyo valor no cambia durante la ejecución del programa. Puede ser: Numérica: Una cifra, un valor numérico. Alfanumérica: Cadena de caracteres encerrados entre comillas. 4.2. Variable: Una variable es una porción de la memoria del ordenador que reservamos para almacenar un valor. Para identificar esa zona de la memoria el código del programa le asigna un nombre. En cualquier punto del programa nos podemos referir a dicho valor mediante el nombre que le hemos asignado a esa porción de memoria. Al igual que las constantes las variables pueden ser numéricas y alfanuméricas. - 3 -
La forma de asignar un valor a una variable es mediante líneas del tipo nombre variable = expresión, es más fácil de entender con unos ejemplos: A = 5 Asigna a la variable A el valor 5 A$ = Hola Asigna a la variable B la expresión Hola CON = A + 3 C = A * N Asigna a la variable CON el valor que resulte de sumar 3 al valor de la variable A Asigna a la variable C el valor que resulte de multiplicar el valor de la variable A por el valor de la variable N A$ = Hola + amigo Asigna a la variable A$ una cadena resultado de yuxtaponer las cadenas hola y amigo El nombre asignado a la variable ha de cumplir una serie de condiciones: - El primer carácter ha de ser una letra. - El número máximo de caracteres en un nombre es de 40. - El último carácter se suele emplear para identificar el tipo de carácter. Tipo Identificador Integer (entero) % Long (entero largo) & Single (precisión sencilla) Doble (precisión doble) # String (cadena de caracteres) $ - Para declarar una variable de un tipo concreto, basta con poner el identificador al final del nombre. Si no se declara el tipo se asume por defecto el tipo single. - No se puede utilizar como nombres palabras reservadas como PRINT, letras acentuadas, ñ, guión bajo, espacios en blanco - Es aconsejable utilizar nombres que describan el contenido que vamos a almacenar en la variable. 5. Operaciones matemáticas básicas A la hora de trabajar con números hay que respetar una serie de normas: - La separación decimal se realiza mediante el carácter punto (.). - Los números negativos deben ir precedidos por el signo menos (-). - Los números de más de 16 cifras aparecen en notación decimal (6,023D+23). - Cada operación tiene un símbolo asociado y el orden de prioridad de las operaciones es el siguiente (si dos operaciones tienen el mismo grado de prioridad se realizan de izquierda a derecha, el orden de prioridad se puede modificar utilizando paréntesis). - 4 -
Operación Signo utilizado Prioridad Suma + Menor Resta - Multiplicación * División / División entera \ Potencia ^ Mayor OJO: Es posible realizar la operación suma con variables alfanuméricas. El resultado es una cadena de texto unión de las cadenas sumadas. 6. Instrucción INPUT Utilizando esta instrucción, el programa puede solicitar al usuario que introduzca datos a través del teclado. Estos datos quedan almacenados en la variable designada en la orden INPUT. INPUT texto explicativo opcional ; nombre de la variable - Una misma orden INPUT puede solicitar más de un dato. Para ello los nombres de las variables se han de colocar en la orden de forma sucesiva y separados por comas. - Si utilizamos el símbolo punto y coma (;) para separar el texto explicativo y el nombre de la variable, cuando se ejecuta el programa tras el texto explicativo aparece un signo de interrogación. Si no queremos que aparezca ningún signo colocaremos una coma (,) en lugar de un punto y coma (;). 7. Instrucción GOTO Este comando hace que la ejecución de un programa salte a una línea determinada y que continúe desde allí la ejecución del programa. Es preciso indicar al programa la línea a la que debe saltar. Para ello se utiliza una etiqueta formada por un nombre seguido de dos puntos. GOTO etiqueta PRINT, INPUT Etiqueta : - 5 -
8. Instrucción SCREEN y COLOR 8.1. SCREEN QBASIC puede trabajar con diferentes modos de pantalla. El modo de pantalla utilizado determina la resolución de la imagen y el número de colores que podemos utilizar. Mediante la orden SCREEN podemos seleccionar el modo de pantalla: SCREEN número En la ayuda del programa puedes encontrar las características de cada tipo de pantalla. 8.2. COLOR Permite dar color al texto que aparece en la pantalla o el fondo de la misma: COLOR número,número El primer número indica el color de la fuente y el segundo el color del fondo de pantalla. Código color Color presentado Código color Color presentado 0 Negro 8 Gris 1 Azul 9 Azul claro 2 Verde 10 Verde claro 3 Azul verdoso 11 Azul verdoso claro 4 Rojo 12 Rojo claro 5 Magenta 13 Magenta claro 6 Marrón 14 Amarillo 7 Blanco 15 Blanco (alta intensidad) - 6 -
9. Toma de decisiones: Orden IF Muchas veces se nos presentan situaciones en las que tenemos que evaluar una condición o situación. Si la condición es verdadera, ejecutamos una o más instrucciones. Si no es verdadera, ejecutamos otras instrucciones diferentes. IF condición1 THEN Bloque de instrucciones 1 ELSEIF condición2 THEN ELSE END IF Bloque de instrucciones 2 Bloque de instrucciones 3 La traducción de ese bloque de instrucciones sería: SI se cumple la condición1 ENTONCES haz el Bloque de instrucciones 1 SINO se cumple la condición 1 pero SI se cumple la condición2 ENTONCES haz el Bloque de instrucciones 2 SINO se cumple nada de lo anterior haz el FIN de la orden IF Bloque de instrucciones 3 En una orden IF: - Un bloque IF ha de terminar siempre con una línea END IF. - En un bloque IF puede haber varios ELSEIF-THEN. - Las condiciones se evalúan utilizando operadores relacionales. 9.1. Operadores relacionales Supón que en un bloque IF encuentras una línea como la siguiente: IF R=3 THEN Esa expresión no asocia el valor 3 a la variable R. Está realizando lo que llamaremos una operación relacional. El programa al llegar a ese punto compara el valor de la variable R con el tres. Si la relación es cierta (por que R si que vale 3) el programa genera un valor TRUE (cierto) y si no lo es (por que R no vale ) el programa genera un valor FALSE (falso). - 7 -
Los operadores relacionales más utilizados en QBASIC son: Operador Significado = Igual <> Distinto > Mayor que < Menor que >= Mayor o igual que <= Menor o igual que Existen otros tres operadores relacionales más complejos: Operador Sintáxis Significado AND OR NOT Condición1 AND condición2 Condición1 OR condición2 NOT condición TRUE sólo cuando las dos condiciones son TRUE TRUE cuando al menos una de las dos condiciones es TRUE TRUE si la condición no se cumple 10. Toma de decisiones: Orden SELECT CASE Instrucción similar al IF. Se da un valor a una variable y según cual sea el valor dado se ejecuta un bloque de instrucciones u otro: SELECT CASE variable CASE valor1 CASE valor2 CASE valor3... CASE ELSE Bloque de instrucciones 1 Bloque de instrucciones 2 Bloque de instrucciones 3 Bloque de instrucciones END SELECT - 8 -
La traducción de ese bloque de instrucciones sería: Inicio del SELECT CASE, introduce el valor de la variable Guía del alumno SI estamos en el CASO de que la variable tiene el valor1 ejecuta el siguiente bloque de instrucciones Bloque de instrucciones 1 SI estamos en el CASO de que la variable tiene el valor2 ejecuta el siguiente bloque de instrucciones Bloque de instrucciones 2 SI estamos en el CASO de que la variable tiene el valor3 ejecuta el siguiente bloque de instrucciones... SI NO estamos en ningún CASO ejecuta el siguiente bloque de instrucciones Bloque de instrucciones FIN del bloque SELECT 11. Bucles en programación Un bucle es un conjunto de instrucciones que se ejecutan repetidamente un número determinado de ocasiones. Un bucle se ejecuta repetidamente hasta que se cumple una condición que marca su finalización. OJO: Si se programa de forma errónea un bucle es posible entrar en un proceso sin fin, para salir de el hay que pulsar (CONTROL + PAUSA). 11.1. Bucle WHILE-WEND El bucle WHILE-WEND repite las instrucciones que aparecen entre las palabras reservadas WHILE (mientras) y WEND (seguir) hasta que se cumpla la condición de salida. WHILE condición Bloque de instrucciones WEND Normalmente la condición se evalúa por medio de una expresión con operadores relacionales. En ella se compara el valor de una variable con un valor límite. El valor de la variable, a la que llamaremos contador, se recalcula en cada pasada que el programa hace por el bucle. 11.2. Bucle FOR-NEXT En ellos se utiliza una variable que actúa como contador. Esta variable va incrementando su valor cada vez que se ejecuta el bucle. Las instrucciones que se encuentran dentro del bucle se ejecutan hasta que el contador llegue a su valor final. - 9 -
FOR contador = valor inicial TO valor final Bloque de instrucciones NEXT contador Guía del alumno El contador se incrementa por defecto en 1 unidad pero se puede utilizar la palabra reservada STEP para especificar un valor distinto (positivo o negativo). Si el valor que acompaña a STEP es negativo se producirá una cuenta atrás. 12. Funciones QBASIC nos ofrece una serie de funciones numéricas y alfanuméricas previamente programadas que nos permiten realizar con más facilidad determinadas operaciones. Las funciones más utilizadas son: - ABS( ) Devuelve el valor absoluto de un número. - INT( ) Devuelve la parte entera de un número dado. - SQR( ) Devuelve la raíz cuadrada de una expresión numérico. - LEN( ) Devuelve el número de caracteres en una cadena de texto. 13. Generación de números aleatorios QBASIC dispone de una función denominada RND que genera al azar un número decimal comprendido entre 0 y 1. La función necesita ser inicializada y para ello utilizaremos la instrucción RANDOMIZE TIMER. Por otro lado si queremos obtener como resultado números enteros utilizaremos la función INT( ) junto con RND: EJ: INT (RND*5) Genera números enteros comprendidos entre 0 y 5-10 -