Sei sulla pagina 1di 27

ACTIVIDAD TECNOLÓGICA ESCOLAR

ALGORÍTMIA Y PROGRAMACIÓN (QBASIC)

INTENCIONALIDAD:

Que el alumno identifique un problema y construya las posibles soluciones escritas paso a paso, utilizando en un principio un pseudocódigo, luego algoritmos y al final del proceso los convierta al lenguaje de programación QBASIC.

Orientaciones para la educación en tecnología: identifico cuál es el problema o la necesidad que originó el desarrollo de una tecnología y como fue posible llegar a esa solución.

Activación Cognitiva: Se hará la introducción al tema proponiendo al estudiante que reflexione acerca de cualquier programa de computador:

procesador de texto, hoja de cálculo, juego, etc.), cuestionándose ¿cómo se hizo?

CAPITULO 1: INTRODUCCIÓN A BASIC

Definición: Cada programa que se ejecuta en el computador, fue escrito en

el

desarrollo

Lenguaje de

una herramienta

programas para

computador, llamada Programación.

especial

para

de

Un

programa

es

un conjunto de

instrucciones

que

ejecuta

el

computador, para realizar una tarea

especifica.

 

Las instrucciones son llamadas palabras reservadas, que tienen una función única y específica como:

Borrar la pantalla

Escribir datos en la pantalla

Tomar la entrada del usuario

Ejecutar ciclos

Cambiar colores

Reproducir sonidos

Abrir archivos, etc.

Existen diferentes Lenguajes de Programación, algunos muy difíciles de usar y entender, otros están limitados para propósitos especiales como:

cálculos científicos, herramientas graficas o manejo de bases de datos.

Algunos lenguajes de programación son:

Lenguaje

C/C++

Pascal

Logo

Logo

FORTRAN

BASIC

Propósito

General

Educativo

Dibujo para

Niños

Científico

General

Dificultad

Difícil

Medio

Muy Fácil

Muy Fácil

Difícil

Fácil

El Lenguaje De Programación Basic

BASIC es un Lenguaje de alto nivel desarrollado en 1964 en los Estados Unidos por John Kemeney y Thomas Kurtz de la Universidad Dartmouth.

Es uno de los lenguajes de programación más populares por la facilidad que ofrece para aprenderlo y su sencillez en el manejo de las instrucciones.

BASIC es un acrónimo de:

B eginner's A ll - Purpose S ymbolic
B eginner's A ll - Purpose S ymbolic

Beginner's All - Purpose Symbolic

B eginner's A ll - Purpose S ymbolic I nstruction C ode

Instruction Code

B eginner's A ll - Purpose S ymbolic I nstruction C ode
( Código de Instrucciones Simbólicas

(Código de Instrucciones Simbólicas

Multipropósito para Principiantes)

( Código de Instrucciones Simbólicas Multipropósito para Principiantes )

Diferentes Versiones de BASIC

Entre las versiones más populares de BASIC podemos encontrar GW-BASIC, Turbo BASIC, Quick BASIC, QBasic, Visual BASIC, Liberty BASIC, Power BASIC, etc.; y en la mayoría de ellas las instrucciones son las mismas.

Visual Basic es probablemente la más difundida y potente de todas. Posee muchas ventajas sobre las otras, lo que permite escribir grandes y eficientes programas en un corto tiempo y con un mínimo o nada de código, usando las herramientas para ello.

Programación en QBasic

QBasic fue desarrollado en 1987 y es

una versión ligera

contiene cerca de 250 palabras reservadas (Instrucciones).

de Quick BASIC,

Donde se encuentra QBasic?

QBasic se encuentra desde Ms-DOS 5.0

y esta disponible en el CD-ROM de Windows 95/98.

Como ejecutar QBasic?

El ejecutable de QBasic es

si QBasic esta en el directorio raíz, desde el prompt de DOS, se escribe:

Qbasic.exe

C:\>Qbasic

Si se tiene Windows instalado y tiene QBasic en el disco duro, sería fácil colocar un acceso directo en el escritorio o en el menú de inicio para ejecutarlo.

El Entorno Integrado de Desarrollo (IDE) de QBasic

El Entorno Integrado de Desarrollo (IDE) de QBasic El IDE de QBasic es simple y fácil

El IDE de QBasic es simple y fácil de entender, esta dividido en dos ventanas:

la primera ventana de fondo azul con titulo “Sin_Nombre”, que se usa para escribir las instrucciones, y la otra ventana inmediata de bienvenida.

Para ejecutar cualquier programa debemos hacer lo siguiente:

Click en Ejecutar Iniciar o presionar

Click en Ejecutar Iniciar o presionar

F5

Click en Ejecutar Iniciar o presionar F5

Para salir de QBasic:

Click en Archivo Salir

Dos palabras reservadas de BASIC

No es necesario al comenzar, conocer todas las instrucciones de BASIC, Se pueden escribir muchos programas con

cerca de 10 instrucciones y para iniciar se verán solo dos de ellas:

CLS

Esta instrucción se usa para borrar la pantalla.

PRINT

La instrucción PRINT se usa para mostrar datos en la pantalla.

El primer programa en BASIC

Para comenzar se escribirá un programa sencillo, que escribe un texto en la pantalla.

Transcriba lo siguiente en la ventana “Sin_Nombre”:

PRINT "¡Hola!"

PRINT "Este es mi primer programa en

PRINT "Este es mi primer programa en

BASIC."

PRINT "Este es mi primer programa en BASIC."

Y para ejecutar el programa:

Click

en

Ejecutar

Iniciar

o

Presionar F5

 

En la pantalla se mostrara lo siguiente:

¡Hola! Este es mi primer programa en BASIC.

Presione cualquier tecla y continué

Una vez se completa la ejecución del programa, BASIC muestra "Presione cualquier tecla y continué" en la pantalla, entonces presionamos cualquier tecla para retornar al ambiente de programación anterior.

Si se ejecuta el programa muchas veces, se podrá ver que el mismo texto se muestra en la pantalla de la siguiente manera:

¡Hola! Este es mi primer programa en BASIC. ¡Hola! Este es mi primer programa en BASIC. ¡Hola! Este es mi primer programa en BASIC. ¡Hola! Este es mi primer programa en BASIC.

Presione cualquier tecla y continué

Para que la pantalla se limpie o borre, cada vez que ejecuta el programa, se coloca la instrucción CLS al comienzo del programa así:

CLS
CLS

PRINT "¡Hola!"

PRINT "Este es mi primer programa en

PRINT "Este es mi primer programa en

BASIC."

PRINT "Este es mi primer programa en BASIC."

Note la presencia de las comillas (" ") en la instrucción PRINT, siempre se colocan cuando se quiere mostrar frases o caracteres.

Símbolos Matemáticos

Algunos operadores matemáticos y su equivalente en BASIC:

Equivalente

BASIC

Operación

Símbolo

Suma

+

+

Resta

-

-

Multiplicación

x

*

División

÷

/

a^2

Exponencial a 2

CAPITULO 2: USO DE LA MEMORIA DEL COMPUTADOR

Almacenamiento

memoria

Tipos de Datos:

Constantes

Variables

de

datos

en

la

Se necesitara almacenar los datos en la memoria del computador cuando se este escribiendo un programa.

Los datos se clasifican en 2 tipos:

Números

Cadenas de caracteres

Ejemplos de números:

10

+5

0.32

-1.234

Ejemplos de Cadenas de caracteres:

"!Hola! ¿Como estas?"

"Jhon Sanz"

"Calle 14 Real"

"$123"

Los caracteres consisten en:

Letras

Números

Símbolos

Caracteres especiales

Para almacenar datos en la memoria se necesita colocarlos primero en variables de memoria o constantes de memoria.

La memoria del computador

La memoria de los seres humanos esta compuesta millones de células, que almacenan diferente información que se adquiere a diario, en la vida. Análogamente la memoria del computador se podría representar por células de almacenamiento y a cada una de ellas se le puede asignar un nombre o dirección así:

Valor

10

+5

0.32

-1.234

Nombre

       

de la

a

b

c

d

célula

 

¡Hola!

     

Valor

Como

estas

Carlos

Arias

Calle

Jiménez

$123

Nombre

       

de la

a$

b$

c$

d$

célula

¿Como usar la memoria en BASIC?

¡Recuerda! Los datos son almacenados en variables o constantes de memoria, en QBasic las variables deben respetar las siguientes reglas:

1. La longitud del nombre no debe ser mayor que 40 caracteres

2. Deben empezar con mínimo una letra

3. No deben tener espacios

Una variable de memoria almacenara

4.

No

pueden

soportar

ciertos

valores que varían o cambian y una constante de memoria almacenara

caracteres, como (

 

valores que permanecen constantes y no

5.

Si

no

se

coloca

sufijo,

BASIC

cambian.

considera

la

variable

como

tipo

single-precisión

La tabla siguiente muestra los diferentes tipos de variables:

Tipo de Datos

Sufijo

Single-precision (Real)

!

Integer (Entero)

%

Double-precision (Real Largo)

#

Long-integer (Entero Largo)

&

String (Cadena)

$

Los primeros cuatro tipos se usan para almacenar números.

Los tipos Single-precision y double- precision almacenan números flotantes.

los tipos integer & long-integer almacena enteros (Números sin punto décimal).

El tipo String son variables que almacenan caracteres, letras, texto y frases.

Ejemplos:

Código

Comentario

a% = 10

Asigna el valor 10 a la variable a%.

mensaje$ = "Hola Amigos"

Almacena el texto "Hola Amigos" en la variable de memoria mensaje$.

 

Asigna 10 a la variable numero1.

numero1 = 10 numero2 = 15 suma = numero1 +

Asigna 15 a la variable numero2.

numero2

Asigna 25 a la variable suma.

 

b% = 4.5

En este caso BASIC trunca la parte decimal del número y almacena solo 4 en la memoria. Nota: Esto es un error y BASIC no genera un mensaje de error.

 

Una variable tipo single-precision se

c!

= 10.123

usa para almacenar punto flotante.

 

Igual al de arriba. Cuando una

c

= 10.123

variable no tiene sufijo, es considerada como single-precision.

Declaración de variables

BASIC ha recibido muchas críticas porque tiene la habilidad de crear y declarar variables en cualquier momento y lugar.

DIM

especificar un tipo de dato para una variable y las variables declaradas no deben terminar con sufijo. La sintaxis es

usa para

La instrucción

se

la siguiente:

DIM

nombre

de

variable

AS

tipo

de

variable

 

Ejemplo:

DIM nombre AS STRING

DIM edad AS INTEGER

nombre = "Juancho Cruz"

edad = 25

Este código es equivalente a:

nombre$ = "Juancho Cruz"

edad% = 25

¿Entonces cuál es el mejor método de trabajo con variables?

Se prefiere usar la primera porque es bueno declarar cada variable que se use al dar claridad al programa.

Errores causados por escribir incorrectamente las variables

Uno de los errores más comunes en la programación en BASIC es escribir mal nombres de variables. Se suele encontrar así:

largo = 10

ancho = 5

area = larga * ancho

PRINT area

La variable "largo" esta mal escrita en la línea 3. BASIC diferencia entre "largo" y "larga", buscara por el valor de la variable "larga" en la memoria, entonces como no la puede encontrar, le asignara el valor 0; entonces, cuando se imprima, debido al contenido de la variable "area", se vera 0 en vez de 50.

Desafortunadamente, aparte de revisar la escritura de cada variable, no se puede hacer más para prevenir ese tipo de errores.

CAPITULO 3: ESCRIBIR DATOS EN LA PANTALLA

La Instrucción PRINT

Con esta instrucción se pueden escribir datos en pantalla tales como números, caracteres, frases, textos y el contenido de variables y constantes de memoria

Nota: Caracteres y frases se escriben dentro de comillas (" "), lo que se escribe entre comillas se mostrara durante la ejecución del programa. Los siguientes ejemplos muestran las diferentes maneras de usar la instrucción PRINT:

 

Salida

 

Código

en

Comentario

pantalla

   

Se escribe el

PRINT "5"

5

carácter 5 en la pantalla.

   

Se escribe

PRINT 5

5

número 5 en la pantalla.

 

5

Note el espacio antes del número 5 en la primera línea. BASIC siempre coloca espacios para los signos +/- cuando se escribe un numero.

PRINT 5

PRINT "5"

5

PRINT "5 + 7"

5 + 7

Escribe textualmente lo que se encuentre entre comillas.

   

Escribe la suma

PRINT 5 + 7

12

de 5 y 7 en la pantalla.

PRINT 6 * 7

42

El asterisco (*) se usa para la multiplicación.

PRINT 12 / 4

3

El signo (/) se usa para la división.

PRINT 8 - 3

5

 
   

a, b, c y d son variables de memoria. El valor 3 se asigna a la variable de memoria a. El valor 4 se asigna a la variable de memoria b.

En la 3 ra línea, el

a = 3

computador

b = 4

asigna la suma

c = a + b

3

4

de las variables

= a * b PRINT a PRINT b PRINT c PRINT d

d

de memoria a y b

a

7

12

la variable de memoria c.

En la 4ta línea el computador asigna el producto de las variables de memoria a y b a

 

la

variable de

memoria d. En la 5ta línea, el computador busca el valor de

la

variable de

memoria a y la

escribe en la pantalla.

   

¿Esperaba a que se escribiera 3 en la pantalla? No olvide que cualquier cosa que se escriba

a

PRINT "a"

= 3

a

entre comillas, se

escribirá en pantalla. El código correcto es:

a = 3 PRINT a

CAPITULO 4: SOLUCIÓN DE PROBLEMAS MATEMÁTICOS

Solucionar problemas matemáticos simples es una de las tareas más fáciles que se puede hacer en BASIC.

Antes de seguir es necesario entender algunos conceptos básicos:

¿Qué es un programa?

Un programa es un

conjunto de

instrucciones

que

ejecuta

el

computador, para realizar una tarea

especifica.

 

En la mayoría de programas, es necesario escribir cada cosa que debo hacer y necesito pensar como lo haría:

¿Cuales datos necesito ingresar al computador?

¿Que operaciones, el computador realizara con los datos ingresados?

¿Que resultados escribirá en pantalla el computador?

Existen tres partes en cada programa que se lleva a cabo:

ENTRADA

PROCESO

SALIDA

Entrada: Lo que se necesita.

Proceso: Qué se necesita hacer, calculado con los datos de la entrada.

Salida: Es el resultado obtenido cuando el proceso ha terminado.

Antes

programa,

de

comenzar

es

a

escribir

el

escribir

importante

algoritmos o pseudocódigos escritos como un bosquejo de lo que se quiere hacer.

Algoritmos

Un algoritmo instrucciones

es

un

conjunto

de

precisas

para

solucionar un problema.

 

Los algoritmos pueden representarse en leguaje escrito (pseudocódigo) o en flujo gramas (Diagramas de Flujo)

Aquí

algoritmo para calcular la suma de dos números.

ejemplo de un simple

hay

un

Obtenga el primer número

Obtenga el segundo número

Calcule la suma

Muestre la suma

A continuación se ilustra este concepto usando algunos ejemplos matemáticos:

Ejemplo 4.1: Escribir un programa que muestre la suma de los números 8 y 12

Algoritmo

Código del

Programa

Obtenga el primer número Obtenga el segundo número Calcule la suma

Escriba el

resultado

numero1 = 8

numero2 = 12

suma = Numero1 +

Numero2

PRINT suma

Escritura en Pantalla

20

Se puede ver que este programa no es muy explicito, el siguiente programa hace que la presentación sea más entendible:

Ejemplo 4.2: Escribir un programa que muestre la suma de los números 8 y 12 (mejorado)

Código del Programa

CLS numero1 = 8 numero2 = 12 suma = Numero1 + Numero2 PRINT "Este programa encuentra la suma de 2 números" PRINT "El primer numero es:" PRINT numero1 PRINT "El segundo numero es:" PRINT numero2 PRINT "La suma es:" PRINT suma

Escritura en Pantalla

Este programa encuentra la suma de 2 números El primer numero es:

8

El segundo numero es:

12

La suma es:

20

El uso de Punto y Coma al final del argumento de la instrucción PRINT, le dice a BASIC que coloque el cursor en la misma línea para escribir la próxima vez así:

Ejemplo 4.3: Escribir un programa que muestre la suma de los números 8 y 12 (optimizado)

Código del Programa

CLS numero1 = 8 numero2 = 12 suma = Numero1 + Numero2 PRINT "Este programa encuentra la suma de 2 números" PRINT "El primer numero es:" ; PRINT numero1 PRINT "El segundo numero es:" ; PRINT numero2 PRINT "La suma es:" ; PRINT suma

Escritura en Pantalla

Este programa encuentra la suma de 2 números El primer numero es: 8 El segundo numero es: 12 La suma es: 20

La práctica hace la perfección.

Ejemplo 4.4: Escribir un programa que muestre el producto de los números 8 y

12

Algoritmo

Código del

Programa

Obtenga el primer número Obtenga el segundo número Calcule el producto

numero1 = 8

numero2 = 12

producto = Numero1 +

 

Numero2

Escriba el

PRINT producto

resultado

Se debe tener cuidado de nombrar variables o constantes con el mismo nombre de instrucciones de BASIC. En el ejemplo siguiente, se usara la palabra "base" para almacenar la base del triangulo. La palabra "BASE" no se puede usar porque es una palabra reservada o instrucción en BASIC.

Ejemplo 4.5: Escribir un programa que calcule el área de un triangulo de base = 10 y altura = 5

Algoritmo

Código del Programa

Obtener la base

'la palabra BASE es ‘reservada in BASIC 'Entonces se usara ‘tbase para almacenar ‘la base tbase = 10 altura = 5

area = 1/2 * tbase * altura PRINT area

Obtener la altura Calcular el área

Escribir el área

Como es el caso en las matemáticas, las operaciones en BASIC se ejecutan en la siguiente secuencia PDMAS

1. Paréntesis.

2. División.

3. Multiplicación.

4. Adición.

5. Substracción.

En el ejemplo siguiente, BASIC calculara

la

suma de la altura y el ancho entre

paréntesis y luego multiplicara esto por

2.

Ejemplo 4.6: Escribir un programa que calcule el perímetro de un rectángulo de alto = 20 y ancho = 8.

Algoritmo

Algoritmo

Obtenga la altura Obtenga el ancho Calcule el perímetro

Escriba el perímetro

Código del

Programa

alto = 20 ancho = 8 perimetro = 2 * (alto + ancho) PRINT perimetro

alto = 20 ancho = 8 perimetro = 2 * (alto + ancho) PRINT perimetro

Existen muchas maneras para realizar las tareas en BASIC. Use una que considere mejor para usted.

Ejemplo 4.7 (método 1): Escriba un programa que calcule el área de un circulo de radio = 7.

Algoritmo

Algoritmo

Obtenga el radio Obtener π Calcular área

Escribir el área

Código del

Programa

radio = 7 PI = 3.1416 area = PI * radio * radio PRINT area

radio = 7 PI = 3.1416 area = PI * radio * radio PRINT area

Ejemplo 4.8 (método 2): Escriba un programa que calcule el área de un circulo de radio = 7.

Algoritmo

Algoritmo

Obtenga el radio Obtener PI Calcular área Escribir el área

Código del

Programa

radio = 7 PI = 3.1416 area = PI * (radio ^ 2) PRINT area

CAPÍTULO 5: MEJORANDO EL CÓDIGO DEL PROGRAMA

Es

programa para:

Documentar el programa

Usar variables significantes

Informar el propósito del programa

importante

mejorar

el

código

del

Documentar el programa

Como se pudo dar cuenta, los programas pueden llegar a ser muy grandes y difíciles de entender, para solucionar esto la instrucción REM permite colocar comentarios en el programa.

En el momento de ejecución cualquier línea que comience con la instrucción REM será ignorada.

Se puede reemplazar la instrucción REM, por el símbolo de comilla simple (‘) al inicio del comentario, así pues, las dos líneas de código siguientes son similares:

REM Programa escrito por CPE.

' Programa escrito por CPE.

La comilla simple se puede ubicar al final de una instrucción así:

PRINT "Bienvenidos todos" ' mensaje de

PRINT "Bienvenidos todos" ' mensaje de

bienvenida

PRINT "Bienvenidos todos" ' mensaje de bienvenida

Uso de variables significantes

El uso de una sola letra para el nombre de las variables, puede ser muy fácil de escribir si se escribe lento. Sin embargo puede causar que el programa sea difícil de entender a lo largo del mismo. El uso

de variables significantes hace que el programa sea fácil para entender y comprender.

Aquí una ilustración:

x = 2000 y = 10
x
= 2000
y
= 10

z = x * (100 + y) / 100

¿Puede imaginarse que propósito tiene el código del programa anterior?

Ahora veremos como es de fácil, cuando

variables

significantes:

se

usa

nombres

de

SueldoAntiguo = 2000

PorcentejeAumento = 10

SueldoNuevo = SueldoAntiguo * (100

SueldoNuevo = SueldoAntiguo * (100

+ PorcentejeAumento ) / 100

SueldoNuevo = SueldoAntiguo * (100 + PorcentejeAumento ) / 100

Decir

programa

cual

es

el

propósito

del

Muchos nuevos programadores aprenden como programar pero suelen olvidar decir cual es el propósito del programa.

Ejemplo de un programa sin documentar:

a = 20 b = 30 c = a * b
a
= 20
b
= 30
c
= a * b

PRINT "El producto es "; c

Como se ve en el siguiente programa, el uso de la instrucción REM para colocar

comentarios, el uso de variables significativas a lo largo del programa, dice que esta haciendo el programa.

REM Este programa ca lcula el producto

REM Este programa calcula el producto

de 2 numeros: 20 y 30.

REM Este programa ca lcula el producto de 2 numeros: 20 y 30.

numero1 = 20

numero2 = 30

producto = numero1 * numero2

numero1 = 20 numero2 = 30 producto = numero1 * numero2 PRINT "Este programa calcula el

PRINT

"Este

programa

calcula

el

producto de 2 numeros"

PRINT "El primer numero es "; numero1

PRINT

"El

segundo

numero

es

";

numero2

 

PRINT "El producto es "; producto

CAPITULO 6: ADQUISICIÓN DE DATOS DEL USUARIO EN EJECUCIÓN Dos instrucciones o comandos permiten obtener datos del usuario que ejecuta el programa:

La instrucción INPUT

La instrucción INKEY$

INPUT

La instrucción INPUT lee datos del usuario y los almacena en una variable de memoria, la sintaxis es la siguiente:

INPUT

Texto

que

se

muestra

;

nombre de variable

   

INPUT

Texto

que

se

muestra

,

nombre de variable

   

INPUT nombre de variable

Ejemplo 6.1: Preguntar al usuario por su nombre y saludarlo

Código del Programa

DIM nombreusuario AS STRING PRINT " Ingrese su nombre: " ; INPUT nombreusuario PRINT "Hola"; nombreusuario ; ". ¡Que tenga un buen día! "

Escritura en Pantalla

Ingrese su nombre: Juanito Hola Juanito. ¡Que tenga un buen día!

Las líneas:

PRINT " Ingrese su nombre: " ;

INPUT nombreusuario

Se pueden escribir también así:

INPUT

"

Ingrese

su

nombre:

"

;

nombreusuario

 

Se

prefiere

usar

la

primera

opción

porque

es

más

fácil

de

entender y

porque es el procedimiento estándar en

la

de

programación.

mayoría

de

lenguajes

Ejemplo 6.2: Preguntar al usuario por sus notas en español y matemáticas y sumarlas.

Código del Programa

DIM español AS INTEGER DIM matematicas AS INTEGER DIM suma AS INTEGER

PRINT "Ingrese su nota de Español :" ; INPUT español PRINT "Ingrese su nota de Matemáticas :" ; INPUT matematicas suma = español + matematicas PRINT "La suma es:" ; suma

Escritura en Pantalla

Ingrese su nota de Español : 65 Ingrese su nota de Matemáticas : 59 La suma es: 124

INKEY$

INKEY$ lee un carácter del teclado. Esta es la principal ventaja comparada con la instrucción INPUT, no se requiere que el usuario presione la tecla ENTER ().

El programa siguiente muestra una secuencia repetitiva hasta que la tecla escape (Esc) es presionada.

DO
DO
PRINT "¡Presione escape (Esc) para

PRINT "¡Presione escape (Esc) para

detener el programa!"

PRINT "¡Presione escape (Esc) para detener el programa!"

LOOP UNTIL INKEY$ = CHR$(27)

Nota: La memoria de computador guarda toda la información en formato digital. No hay forma de almacenar caracteres directamente. Cada uno de los caracteres tiene un código digital equivalente. Esto se denomina código ASCII (American Standard Code for Information Interchange), código estándar americano para el intercambio de información y el código para la tecla ESC es 27.

Ejemplo

6.3:

Escoger

entre

dos

La Instrucción IF - THEN - ELSE

opciones

Código del Programa

PRINT "1. Jugar Pacman" PRINT "2. Jugar Tetris" PRINT "Ingrese su selección:" DO a$ = INKEY$ LOOP UNTIL a$ = "1" OR a$ = "2" IF a$ = "1" THEN PRINT "Selecciono jugar Pacman." END IF IF a$ = "2" THEN PRINT "Selecciono jugar Tetris." END IF

Escritura en Pantalla

En el programa de prueba el usuario selecciono el numero "1"

1. Jugar Pacman

2. Jugar Tetris

Ingrese su selección:

Selecciono jugar Pacman.

CAPITULO 7: TOMANDO DECISIONES

Es necesario preguntar al usuario, cuando se requiere escoger entre una o más opciones. Las instrucciones:

IF - THEN - ELSE

SELECT CASE

Se usan para tomar decisiones dependiendo de condiciones específicas.

La sintaxis de la instrucción IF - THEN es como sigue:

IF condicion1 THEN

 

[Lista

de

instrucciones

que

se

ejecutaran

si

la

condicion1

se

cumple]

 
END IF
END IF

IF condicion1 THEN

 

[Lista

de

instrucciones

que

se

ejecutaran

si

la

condicion1

se

cumple]

 
ELSE
ELSE

[Lista

de

instrucciones

que

se

ejecutaran si la condicion1

NO se

cumple]

 
END IF
END IF

IF condicion1 THEN

 

[Lista

de

instrucciones

que

se

ejecutaran

si

la

condicion1

se

cumple]

 

ELSEIF condicion2 THEN

 

[Lista de instrucciones que se

ejecutaran si la condicion1

NO se

cumple

 

Y la condicion2 se cumple ]

 
ELSE
ELSE

[Lista de instrucciones que se

ejecutaran si la condicion2

NO se

cumple]

 
END IF
END IF

Ejemplo 7.1: Escribir un programa que pregunte al usuario su nota en matemáticas y le diga si aprobó o no la evaluación (se aprueba con 40).

Algoritmo

Código de Programa

Borrar la Pantalla Escribir mensaje en pantalla Tomar nota de evaluación Comparar si la nota es mayor a 40 y Escribir “Aprobó evaluación"

CLS

PRINT "Ingrese su Nota de Matemáticas: ";

INPUT nota

IF nota >= 40 THEN

PRINT "Aprobo evaluacion."

END IF

Escritura en Pantalla (aprueba)

Ingrese su Nota de Matemáticas: 45 Aprobó evaluación.

Escritura en Pantalla (No aprobó)

Ingrese su Nota de Matemáticas: 30

Se puede ver que el programa no muestra ningún mensaje, si no se aprueba, debido a que la condición no se cumple. Se puede usar la instrucción ELSE para mostrar el mensaje cuando la condición no se cumple es decir cuando no aprueba, así:

Código del Programa

CLS PRINT " Ingrese su Nota de Matematicas: "; INPUT nota IF nota >= 40 THEN PRINT " Aprobo evaluacion." ELSE PRINT "Perdio evaluacion." No se cumple la condicion END IF

Escritura en Pantalla (aprueba)

Ingrese su Nota de Matematicas: 45 Aprobo evaluacion.

Escritura en Pantalla (No aprueba)

Ingrese su Nota de Matemáticas: 30 Perdio evaluacion.

Algunas veces es necesario usar la instrucción IF - THEN - ELSE dentro de una instrucción IF-THEN-ELSE y esta a su vez dentro de otra instrucción IF- THEN-ELSE.

La instrucción SELECT CASE

SELECT CASE

instrucción para tomar decisiones en BASIC. La sintaxis es como sigue:

de

es

otro

tipo

SELECT CASE Textosentencia

CASE opcion1

 

[Lista de instrucciones

que

se

ejecutaran si Textosentencia

=

opcion1 ]

 

CASE opcion2

 
 

[Lista

de

instrucciones

que

se

ejecutaran si Textosentencia

=

opcion2 ] …

 

CASE ELSE

 

[Lista

ejecutaran si Textosentencia no se

encuentra en las opciones

instrucciones que se

de

anteriores ]

END SELECT

Ejemplo 7.2: Como usar la instrucción SELECT CASE. Escribir un programa que muestre un menú en donde se seleccione un juego.

Algoritmo

Código de Programa

Mostrar el menú Escribir caso 1 Escribir caso 2

'Diseño del Menú PRINT "1. Jugar Tetris" PRINT "2. Jugar Pacman" PRINT "3. Salir" INPUT "Ingrese su selección: "; opcion SELECT CASE opcion

Escribir caso 3 Tomar el valor de selección Selecciona entre los casos:

caso opción = 1 Escribir "Escogió jugar Tetris" caso opción = 2 Escribir "Escogió jugar Pacman" caso opción = 3 Escribir "Hasta luego" case choice = 4 Escribir "Opción Incorrecta" Fin selección

CASE 1 PRINT "Escogió jugar Tetris"

CASE 2 PRINT "Escogio jugar Pacman"

CASE 3 PRINT "Hasta luego" END CASE ELSE PRINT "Opción Incorrecta"

END SELECT

CAPITULO 8: CREACION DE CICLOS Un ciclo se usa para repetir un bloque de instrucciones un cierto numero de veces, hasta que la condición se cumple. Existen 4 clases de ciclos en BASIC.

La instrucción FOR - NEXT

La instrucción DO - LOOP

La instrucción WHILE - WEND

La instrucción GOTO

Las instrucciones más populares son el ciclo FOR-NEXT y el ciclo DO-LOOP.

¿Donde son usados? Aquí hay algunos ejemplos:

En

matemáticos cuando se tiene que imprimir una lista de números con un incremento constante.

la solución de problemas

En juegos cuando se tiene que monitorear constantemente la entrada de teclado o entrada de Mouse.

La instrucción FOR - NEXT

un

bloque de instrucciones en un específico número de veces, la sintaxis es la

siguiente:

FOR - NEXT se usa para repetir

FOR contador = inicio TO fin [ STEP

FOR contador = inicio TO fin [ STEP

incremento ]

FOR contador = inicio TO fin [ STEP incremento ]

[Bloque de instrucciones]

NEXT
NEXT

En la instrucción FOR - NEXT un bloque de instrucciones se ejecuta un número de veces. El valor de la variable contador es incrementado en 1 hasta que es igual al valor fin.

La variable contador por defecto (sin la instrucción STEP) se incrementa en 1. Se puede cambiar el incremento en cada ciclo usando la instrucción STEP parámetro. Veremos el ejemplo 2 como una ilustración.

Ejemplo 8.1: Este programa imprime enteros del 1 al 10

Código del

Escritura en

Programa

Pantalla

 

1

2

DIM contador AS INTEGER

3

4

 

5

FOR contador = 1 TO 10 PRINT contador NEXT

6

7

8

9

 

10

En el ejemplo anterior la instrucción PRINT contador se ejecuta 10 veces. Después de cada ciclo el valor de la variable contador es incrementado en 1.

Ejemplo 8.2: Este programa imprime los números impares del 1 al 10

Código del

 

Escritura en

Programa

Pantalla

DIM contador AS INTEGER

1

3

FOR contador = 1 TO 10 STEP 2 PRINT contador NEXT

5

7

9

La instrucción DO - LOOP

DO - LOOP ejecuta un bloque de instrucciones mientras o hasta que una condición sea verdadera, La sintaxis es:

DO
DO

[Lista de instrucciones]

 

LOOP UNTIL condicion1

DO
DO

[Lista de instrucciones]

 

LOOP WHILE condicion1

Mientras que

automáticamente incrementado en la

instrucción FOR - NEXT, en la instrucción DO - LOOP uno mismo tiene que incrementar el contador.

es

un

contador

A continuación una comparación de los dos métodos:

FOR - NEXT

DO - LOOP

'Este programa muestra una frase 5 veces CLS DIM contador AS

'Este programa muestra una frase 5 veces CLS DIM contador AS INTEGER

INTEGER

FOR contador = 1

contador = 0 DO PRINT "¡Hola! ¿Como estas?" contador = contador + 1 LOOP UNTIL contador = 5

TO 5

PRINT "¡Hola! ¿Como estas?" NEXT

La Instrucción WHILE – WEND

WHILE

-

WEND

es

otra

clase

de

instrucción

para

ejecutar

ciclos.

La

instrucción

DO

-

LOOP

de

todas

maneras

provee

una

mejor

manera

hacerlo.

Código del

     

Escritura en

 

Programa

Pantalla

DIM contador AS INTEGER

     
 

1

   

2

contador = 0 WHILE contador <

5

contador = contador + 1 PRINT contador WEND

3

4

5

La Instrucción GOTO

GOTO se dirige a una línea específica o a la primera instrucción después de una etiqueta específica.

En el ejemplo siguiente la instrucción GOTO salta después de la etiqueta "Etiqueta1" a la instrucción siguiente, hasta que le valor de la variable contador sea igual 5.

Código del

 

Escritura en

Programa

Pantalla

DIM contador AS INTEGER

 

contador = 0

Etiqueta1:

contador = contador + 1 PRINT contador IF contador < 5 THEN GOTO Etiqueta1 END IF

1

2

3

4

5

Se debería en lo posible no trabajar con la instrucción GOTO. Los programadores que usan GW-BASIC, el predecesor de QBasic, usaban muchas instrucciones GOTO saltando en todas las direcciones, es sus programas, haciendo muy difícil de mantener y entender el programa. Este tipo de programación es llamado código spaghetti. El siguiente programa evita el uso de la instrucción GOTO con la instrucción DO - LOOP.

Código del

 

Escritura en

Programa

Pantalla

'Este programa muestra el contador DIM contador AS INTEGER CLS

1

2

 

3

contador = 0 DO PRINT contador contador = contador + 1 LOOP UNTIL contador = 5

4

5

Sin embargo en algunos casos no hay alternativa. La instrucción GOTO se usa unida con la instrucción ON ERROR la cual se usa para atrapar los errores en el programa.

CAPITULO 9: USO DE COLORES

La instrucción COLOR se usa para

configurar los colores que se mostraran

en pantalla.

Puede ser usado para modificar el color del fondo y el color para escribir en pantalla así:

COLOR [Color de E scritura] , [Color

COLOR [Color de Escritura] , [Color

de Fondo]

COLOR [Color de E scritura] , [Color de Fondo]

Para modificar únicamente el color de la escritura se usa:

COLOR [Color de Escritura]

Para modificar únicamente el color del fondo se usa:

COLOR , [Color de Fondo ]

La tabla siguiente muestra una lista de colores y su correspondiente numero.

Núm.

Color

Núm.

Color

0

Negro

8

Gris

1

Azul

9

Azul Claro

2

Verde

10

Verde Claro

3

Aguamari

11

Aguamarina

na

Claro

4

Rojo

12

Rojo Claro

5

Fucsia

13

Morado

6

Café

14

Amarillo

     

Blanco

7

Blanco

15

Claro

El siguiente ejemplo ilustra como usar la instrucción COLOR:

Ejemplo 9.1: Escribir en amarillo sobre azul

Código del Programa

COLOR 14, 1 PRINT "Este texto esta en Amarillo sobre Azul"

Escritura en Pantalla

Este texto esta en Amarillo sobre Azul

Si se quiere que no quede solo un recuadro de color azul se usa la instrucción CLS después de configurar el color con la instrucción COLOR así:

Ejemplo 9.2:

Código del Programa

COLOR 14, 1 CLS PRINT " Este texto esta en Amarillo sobre Azul "

Escritura en Pantalla

Este texto esta en Amarillo sobre Azul

Se debe tener cuidado con el uso de los colores porque algunas combinaciones

de colores no son agradables a la vista.

CAPITULO 10: LA INSTRUCCIÓN LOCATE

LOCATE se usa para mover el cursor en la pantalla, la sintaxis es:

LOCATE Fila , Columna

Ejemplo:

LOCATE 20, 30

PRINT

"Fila

numero

20,

Columna

numero 30"

 

80

Columnas en BASIC, pero esto puede

Por

defecto

hay

25

Filas

y

ser

modificado

dependiendo

de

la

resolución de pantalla que se trabajando.

este

El ejemplo anterior muestra el texto “Fila numero 20, Columna numero 30” en la fila 20 y columna 30 en la pantalla de BASIC.

El uso de la instrucción LOCATE en BASIC puede resultar en una función extraña para el programa, como se ve en el siguiente ejemplo:

CLS
CLS

LOCATE 1, 20

PRINT "¿Puede verme?"

LOCATE 25, 20

PRINT "¿Donde estoy?"

SLEEP
SLEEP

En el ejemplo anterior la frase “¿Puede verme?” desaparece de la pantalla. ¿Que paso?

El problema se encuentra en las líneas 4 y 5 del código del programa. Cuando se usa la instrucción PRINT sin colocar una coma o un punto y coma en el final de la línea, BASIC envía el cursor a la siguiente línea y como estamos en la última fila (la fila 25) la siguiente línea es la primera línea, entonces la pantalla retorna a la línea original que es en comienzo de la pantalla.

Para solucionar este problema se coloca un punto y coma al final de la instrucción PRINT.

CLS
CLS

LOCATE 1, 20

PRINT "¿Puede verme?"

LOCATE 25, 20

PRINT "¿Donde estoy?";

SLEEP
SLEEP

CAPITULO 11: SUBRUTINAS Y FUNCIONES

Después de aprender los fundamentos de BASIC, como comandos, flujo de funciones y programas simples, se esta listos para hacer programas más grandes.

Al escribir programas largos, algunas veces, es necesario repetir partes del código una y otra vez, veamos como podemos agilizar esta tarea. Si se usan formulas matemáticas complejas con muchas variables para calcular un valor, las subrutinas (SUBs) y funciones (FUNCTIONS) son una herramienta que ayuda a organizar el código y a crear “mini” programas en el programa principal.

Subrutinas

Es un juego de instrucciones que se pueden ejecutar con una simple instrucción: El nombre de la subrutina.

Ejemplo: Imagine que se quiere mostrar un párrafo de texto como la introducción al programa así:

CLS
CLS

PRINT

"Este

es

el

párrafo

introductorio de texto al programa"

 
PRINT
PRINT

PRINT

"Este

programa

es

bueno,

aunque no lo crean y"

 
PRINT " es lo mejor que haya podido

PRINT "es lo mejor que haya podido

hacer."

PRINT " es lo mejor que haya podido hacer. "

Este cód igo es el c omienzo d el program a

Aho ra es el

momento

de

coloc ar

el

y

se qu iere mostr ar antes n ada, esas

5

códi go que se

mostrara

con todas

sus

líneas n o es tan m al, pero qu é tal fuera n

instr ucciones.

Si

se

in tenta

adic ionar

20? o

que imp rimir al mis mo tiempo ?

muchas pa ginas que

se tenga n

Se

ejecutar todo el c ódigo con

instrucci ón.

deb erá

usar

una sub rutina par a

una simpl e

Existen dos mane ras simple s de crea r

subrutin as en QBa sic:

La

prim era es ab rir el men ú

Click e n

Edición

Nueva

SUB…

un pequeñ o

cuadro

de dialogo

se abre

pidiendo e l

nombre

de la sub rutina. Se

puede usa r

alfanumér ico (A-Z, 0 -

9) come nzando po r una letra y siguiend o el mism o concepto que para todo tipo d e

escribir u n

nombre que desc iba el fun cionamient o

variable . Lo recom endable es

cualquie r carácter

de la mi sma.

. Lo recom endable e s cualqui e r carácter de la mi sma. algu na

algu na cosa an tes de la i nstrucción

SUB,

que

sald rá un men saje de err or diciendo

sólo

líneas

de

co mentario

son

perm itidas, n o instrucc iones; lo

que

aseg ura que ejec uten.

todos

los

comando s

se

Sin

embargo

comentar

el código

es

la

clav e para co mpletar lo s proyecto s, lo

de espaci o por

la

subr utina,

evid ente pare zca, real mente val e la pen a:

cuán trivi al o

idea l es utiliza r un poco enci ma para r esumir el

contenido

de

no

importa

Est a subrutina muestra e

l párrafo

intro ductorio de l programa

 
SUB instrucci ón CLS
SUB
instrucci ón
CLS

PRI NT

"Est e

es

el

pa rrafo

intr oductorio

de texto al programa

"

 
PRI NT
PRI NT

PRI NT "Este aun que no lo

program a

es

bu eno,

crean y"

 

PRI

NT "es

lo

mejor qu e haya po dido

hac

er."

 
END SUB
END
SUB
 

En

la im agen ante rior la nuev a subrutin a

 

se

lla ma

“Instru cción”. C uando s e

Para

navegar

entre las

subrutinas

y

la

presiona

(Enter) , después

de ingresa r

vent ana princip al del pro grama puls e

F2
F2

el nomb re, automá ticamente

cambiamo s

y u tilice las t eclas de

dirección

para

a

la ven tana de la subrutina Instrucción ”

sele ccionar un a subrutin a o el títul o del

y

el

editor co ntiene sol amente l o

prog rama.

 

siguient e:

SUB ins trucción

END S UB
END S UB

(Enter) par a ir a

esa ventana. ( Se puede t ener en rea lidad

qu e es

dos

muy útil para c omparar el código)

Sim plemente p resione

ventanas

abiertas a

la vez,

Ahora que se ha creado una subrutina que contiene las instrucciones que se ejecutarán, todo lo que hay que hacer para llamarla es usar su nombre como si fuera un comando:

Mostrar instrucción

Instrucción

La segunda manera de crear una

subrutina es sólo un atajo. En cualquier

código escriba "SUB

(Enter). El editor de QBasic creará de

forma automática la ventana de subrutina para que usted pueda

de

lugar

nombredesubrutina" y presione

de

su

comenzar a ingresar inmediato.

su

código

Cuando se utiliza este método, por lo general, se quiere que la subrutina se ejecute en ese punto, así que primero se debería escribir la llamada y luego crearla, de ese modo, el llamamiento a la sub ya estará en marcha y sólo tendrá que introducirse el código.

En QBasic se deben declarar las subrutinas creadas, la instrucción DECLARE SUB se utiliza para hacerlo. Sin embargo, el QBasic es lo suficientemente inteligente como para saber que se ha creado una, y al guardar el programa, la declara y la inserta automáticamente en la parte superior del cuerpo principal del mismo.

Las Instrucciones DECLARE deben ser colocadas antes que cualquier otra instrucción, pero los comentarios por encima se pueden colocar porque no añaden nada.

Funciones

Las funciones (FUNCTIONS), trabajan exactamente de la misma manera que las subrutinas (SUBs), pero tienen una característica especial.

Las funciones pueden devolver un simple valor a la ubicación que las llama. El uso más común de las funciones es cuando se tienen varias líneas de código que producen un resultado, pero que necesita usar ese código varias veces.

Las Funciones se crean de dos formas iguales a como se crean las subrutinas.

Click

en

Edición

Nueva

FUNCTION…

 

También aparecen en la lista que se muestra al presionar F2. Con el fin de advertir la diferencia entre SUBs y FUNCTIONs en la ventana de diálogo aparece una barra de estado que dice FUNCTION en lugar de SUB, es un simple indicador.

Vamos a crear una función que realiza una operación matemática y devuelve el resultado. Con el fin de devolver un valor llamando a la ubicación, se usa el nombre de la función como si fuera una variable, y se le asigna un valor a la misma:

'Una función matemática

FUNCTION suma ()

n = 5 + 2

suma = n

END FUNCTION

La ejecución de una función es un poco diferente a la ejecución de una subrutina, dado que las funciones retornan valores, se utiliza el nombre de la función como si fuera un valor que se le asigne a otra variable:

x = suma

Por supuesto, esta función no es de mucho uso ya que sólo devuelve un único valor: 7. La definición de una función (incluso entre los no programadores) incluye el uso de una o más variables de entrada, llamados parámetros, afectando a los valores del resultado.

Los parámetros se especifican en la línea de definición de la función, en la instrucción DECLARE y a continuación todas las funciones se ejecutan como resultado de la función.

Si modifica los parámetros de la función (en este caso, añadirlos) después de que haya guardado el programa, se tendrá que modificar la declaración que genera automáticamente BASIC, una manera fácil de hacer esto es borrar por completo la línea antigua y salvar el programa de nuevo.

' Suma de dos números

FUNCTION suma (a, b)

n = a + b

suma = n

END FUNCTION

Llamar a esta función es muy simple, además de la asignación antes vista se adiciona los dos números a sumar así:

x = suma (10, 15)

PRINT x

El valor de x será 25, sobre la base de los 10 y 15 que se utilizaron como parámetros. Por supuesto, podría añadir otro parámetro a la función que permitiría 3 valores que se añadirán también. Las posibilidades son infinitas.

Ahora se entendió cómo las funciones trabajan, se verá que las subrutinas también pueden aceptar variables. Las subrutinas asignan variables de trabajo del mismo modo que en una función.

En esencia, la única diferencia entre una función y una subrutina es que una función devuelve un valor que debe ser asignado a una variable, pero una subrutina sólo se ejecuta. Se puede usar una función para hacer todo lo que hace una subrutina siempre y cuando no tenga que retornar un resultado.

Variables

De Entrada

“Función”

Variable

De

Retorno

De Entrada “Función” Variable De Retorno Variables de entrada “ Subrutina ” Por ejemplo, una

Variables de entrada

“ Subrutina ”

Por ejemplo, una función podría contener instrucciones PRINT y decir a un jugador su puntuación y cómo ésta se incrementa:

' Suma un valor incremento, al resultado

'Suma un valor incremento, al resultado

reportando el cambio

' Suma un valor incremento, al resultado reportando el cambio
FUNCTION sumamarcador (marcador,

FUNCTION sumamarcador (marcador,

incremento)

FUNCTION sumamarcador (marcador, incremento)

PRINT

"Aumento";

incremento;

puntos!"

 

Sumamarcador

=

marcador

+

incremento

 

END FUNCTION

Es importante recordar que los nombres de variables definidas por la función, en el caso antes mencionado: "marcador" e "incremento" no tienen nada que ver con las variables de otros lugares en el programa que pueden ser llamadas "marcador" o "incremento". Estas variables son sólo locales, en el sentido de que están en existencia para la duración de la función.

La instrucción COMMON SHARED o DIM SHARED declara variables globales de manera que sean utilizables en el interior, y afectadas por, las funciones y las subrutinas. Esto depende del como se use:

' Usa la funcion sumamarcador

marcador_jugador = 100

marcador_jugador

=

sumamarcador

(marcador_jugador, 20)

 

marcador

jugador

=

sumamarcador

(marcador_jugador, 12)

 

Después de esta secuencia, el valor de "marcador_jugador" será 132, y "Aumento incremento ¡puntos!" se imprimirá dos veces. El primer parámetro de uso es el valor actual de "marcador_jugador", el valor que toma la función se añade al valor de "Incremento", en el primer caso, 20.

Todos los anteriores ejemplos de función retornan números. Es posible retornar cadenas de caracteres también. El truco aquí es que el nombre de la función debe terminar con '$', así como una cadena. Además, diferentes combinaciones de

números y cadenas pueden pasarse a funciones y subrutinas.

Aquí está un ejemplo de una función que acepta variables mixtas y devuelve una

cadena:

' Funcion que reporta el nombre y la edad

'Funcion que reporta el nombre y la edad

de una persona

' Funcion que reporta el nombre y la edad de una persona

FUNCTION reporta$ (nombre$, edad)

reporta$