AlgoritmiaYProgramacion
-
Upload
jeferson-david-mesa -
Category
Documents
-
view
214 -
download
0
Transcript of AlgoritmiaYProgramacion
-
8/15/2019 AlgoritmiaYProgramacion
1/27
ACTIVIDAD TECNOLÓGICA ESCOLAR
ALGORÍTMIA Y PROGRAMACIÓN(QBASIC)
INTENCIONALIDAD:
Que el alumno identifique un problema yconstruya las posibles solucionesescritas paso a paso, utilizando en unprincipio un pseudocódigo, luegoalgoritmos y al final del proceso losconvierta al lenguaje de programaciónQBASIC.
Orientaciones para la educación entecnología: identifico cuál es el
problema o la necesidad que originó eldesarrollo de una tecnología y como fueposible llegar a esa solución.
Activac ión Cogni tiva: Se hará laintroducción al tema proponiendo alestudiante que reflexione acerca decualquier programa de computador:procesador de texto, hoja de cálculo,
juego, etc.), cuestionándose ¿cómo sehizo?
CAPITULO 1: INTRODUCCIÓN ABASIC
Definición: Cada programa que seejecuta en el computador, fue escrito enuna herramienta especial para eldesarrollo de programas paracomputador, llamada Lenguaje deProgramación.
Un programa es un conjunto deinstrucciones que ejecuta elcomputador, para realizar una tareaespecifica.
Las instrucciones son llamadas palabrasreservadas, que tienen una funciónúnica y específica como:
Borrar la pantallaEscribir datos en la pantalla
Tomar la entrada del usuarioEjecutar ciclosCambiar coloresReproducir sonidos
Abrir archivos, etc.
Existen diferentes Lenguajes deProgramación, algunos muy difíciles deusar y entender, otros están limitadospara propósitos especiales como:cálculos científicos, herramientas
graficas o manejo de bases de datos. Algunos lenguajes de programación son:
Lenguaje Propósito Dificultad
C/C++ General Difícil
Pascal Educativo Medio
LogoDibujo para
NiñosMuy Fácil
FORTRAN Científico Difícil
BASIC General Fácil
El Lenguaje De Programación Basic
BASIC es un Lenguaje de alto niveldesarrollado en 1964 en los EstadosUnidos por John Kemeney y ThomasKurtz de la Universidad Dartmouth.
Es uno de los lenguajes de programaciónmás populares por la facilidad que ofrecepara aprenderlo y su sencillez en elmanejo de las instrucciones.
-
8/15/2019 AlgoritmiaYProgramacion
2/27
BASIC es un acrónimo de:
Beginner's All - Purpose Symbolic Instruction Code
(Código de Instrucciones SimbólicasMultipropósito para Principiantes)
Diferentes Versiones de BASIC
Entre las versiones más populares deBASIC podemos encontrar GW-BASIC,Turbo BASIC, Quick BASIC, QBasic,Visual BASIC, Liberty BASIC, PowerBASIC, etc.; y en la mayoría de ellas las
instrucciones son las mismas.
Visual Basic es probablemente la másdifundida y potente de todas. Poseemuchas ventajas sobre las otras, lo quepermite escribir grandes y eficientesprogramas en un corto tiempo y con unmínimo o nada de código, usando lasherramientas para ello.
Programación en QBasic
QBasic fue desarrollado en 1987 y esuna versión ligera de Quick BASIC,contiene cerca de 250 palabrasreservadas (Instrucciones).
Donde se encuentra QBasic?
QBasic se encuentra desde Ms-DOS 5.0y esta disponible en el CD-ROM de
Windows 95/98.
Como ejecutar QBasic?
El ejecutable de QBasic es Qbasic.exe si QBasic esta en el directorio raíz,desde el prompt de DOS, se escribe:
C:\>Qbasic
Si se tiene Windows instalado y tieneQBasic en el disco duro, sería fácilcolocar un acceso directo en el escritorioo en el menú de inicio para ejecutarlo.
El Entorno Integrado de Desarrollo(IDE) de QBasic
El IDE de QBasic es simple y fácil deentender, esta dividido en dos ventanas:la primera ventana de fondo azul contitulo “Sin_Nombre”, que se usa paraescribir las instrucciones, y la otra
ventana inmediata de bienvenida.Para ejecutar cualquier programadebemos hacer lo siguiente:
Click en Ejecutar Iniciar o presionar F5
Para salir de QBasic:
Click en Arch ivo Sali r
Dos palabras reservadas de BASIC
No es necesario al comenzar, conocertodas las instrucciones de BASIC, Sepueden escribir muchos programas con
-
8/15/2019 AlgoritmiaYProgramacion
3/27
cerca de 10 instrucciones y para iniciarse verán solo dos de ellas:
CLSEsta instrucción se usa para
borrar la pantalla.
PRINTLa instrucción PRINT se usa
para mostrar datos en lapantalla.
El primer programa en BASIC
Para comenzar se escribirá un programasencillo, que escribe un texto en lapantalla.
Transcriba lo siguiente en la ventana“Sin_Nombre”:
PRINT "¡Hola!"
PRINT "Este es mi primer programa enBASIC."
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 delprograma, BASIC muestra "Presionecualquier tecla y continué" en la pantalla,entonces presionamos cualquier teclapara retornar al ambiente deprogramación anterior.
Si se ejecuta el programa muchas veces,se podrá ver que el mismo texto semuestra en la pantalla de la siguientemanera:
¡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, secoloca la instrucción CLS al comienzodel programa así:
CLS
PRINT "¡Hola!"
PRINT "Este es mi primer programa enBASIC."
Note la presencia de las comillas (" ") enla instrucción PRINT, siempre se colocancuando se quiere mostrar frases ocaracteres.
Símbolos Matemáticos
Algunos operadores matemáticos y suequivalente en BASIC:
Operación SímboloEquivalente
BASIC
Suma + +Resta - -
Multiplicación x *División ÷ /
Exponencial a2 a^2
-
8/15/2019 AlgoritmiaYProgramacion
4/27
CAPITULO 2: USO DE LA MEMORIADEL COMPUTADOR
Almacenamiento de datos en lamemoria
Tipos de Datos: • Constantes• Variables
Se necesitara almacenar los datos en lamemoria del computador cuando se esteescribiendo 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 senecesita colocarlos primero en variables de memoria o constantes de memoria.
Una variable de memoria almacenaravalores que varían o cambian y unaconstante de memoria almacenaravalores que permanecen constantes y nocambian.
La memoria del computador
La memoria de los seres humanos estacompuesta millones de células, quealmacenan diferente información que se
adquiere a diario, en la vida. Análogamente la memoria delcomputador se podría representar porcélulas de almacenamiento y a cada unade ellas se le puede asignar un nombre odirección así:
Valor 10 +5 0.32 -1.234
Nombrede la
célula
a b c d
Valor¡Hola!Comoestas
Carlos Arias
CalleJiménez
$123
Nombrede lacélula
a$ b$ c$ d$
¿Como usar la memor ia en BASIC?
¡Recuerda! Los datos son almacenadosen variables o constantes de memoria,en QBasic las variables deben respetarlas siguientes reglas:
1. La longitud del nombre no debe sermayor que 40 caracteres
2. Deben empezar con mínimo una letra
3. No deben tener espacios
4. No pueden soportar ciertoscaracteres, como (
5. Si no se coloca sufijo, BASICconsidera la variable como tiposingle-precisión
-
8/15/2019 AlgoritmiaYProgramacion
5/27
La tabla siguiente muestra los diferentestipos de variables:
Tipo de Datos Sufijo
Single-precision (Real) !
Integer (Entero) %
Double-precision (RealLargo)
#
Long-integer (EnteroLargo)
&
String (Cadena) $
Los primeros cuatro tipos se usan paraalmacenar números.
Los tipos Single-precision y double-precision almacenan númerosflotantes.
los tipos integer & long-integer almacena enteros (Números sinpunto décimal).
El tipo String son variables quealmacenan caracteres, letras, texto y
frases.Ejemplos:
Código Comentario
a% = 10 Asigna el valor 10a la variable a%.
mensaje$ = "Hola Amigos"
Almacena el texto"Hola Amigos" en
la variable dememoria
mensaje$.
numero1 = 10numero2 = 15
suma = numero1 +numero2
Asigna 10 a lavariable numero1.
Asigna 15 a lavariable numero2.
Asigna 25 a lavariable suma.
b% = 4.5
En este casoBASIC trunca laparte decimal del
número yalmacena solo 4 en
la memoria.
Nota: Esto es unerror y BASIC no
genera un mensajede error.
c! = 10.123
Una variable tiposingle-precision se
usa paraalmacenar punto
flotante.
c = 10.123
Igual al de arriba.Cuando una
variable no tiene
sufijo, esconsiderada comosingle-precision.
Declaración de variables
BASIC ha recibido muchas críticasporque tiene la habilidad de crear ydeclarar variables en cualquier momentoy lugar.
La instrucción DIM se usa paraespecificar un tipo de dato para unavariable y las variables declaradas nodeben terminar con sufijo. La sintaxis esla siguiente:
DIM nombre de variable AS tipo devariable
Ejemplo:
DIM nombre AS STRING
DIM edad AS INTEGER
nombre = "Juancho Cruz"
edad = 25
-
8/15/2019 AlgoritmiaYProgramacion
6/27
Este código es equivalente a:
nombre$ = "Juancho Cruz"
edad% = 25
¿Entonces cuál es el mejor método detrabajo con variables?
Se prefiere usar la primera porque esbueno declarar cada variable que se useal dar claridad al programa.
Errores causados por escribirincorrectamente las variables
Uno de los errores más comunes en la
programación en BASIC es escribir malnombres de variables. Se sueleencontrar así:
largo = 10
ancho = 5
area = larga * ancho
PRINT area
La variable "largo" esta mal escrita en lalínea 3. BASIC diferencia entre "largo" y"larga", buscara por el valor de lavariable "larga" en la memoria, entoncescomo no la puede encontrar, le asignarael valor 0; entonces, cuando se imprima,debido al contenido de la variable "area",se vera 0 en vez de 50.
Desafortunadamente, aparte de revisarla escritura de cada variable, no se
puede hacer más para prevenir ese tipode errores.
CAPITULO 3: ESCRIBIR DATOS EN LAPANTALLA
La Instrucción PRINT
Con esta instrucción se pueden escribirdatos en pantalla tales como números,caracteres, frases, textos y el contenidode variables y constantes de memoria
Nota: Caracteres y frases se escribendentro de comillas (" "), lo que se escribeentre comillas se mostrara durante laejecución del programa.Los siguientes ejemplos muestran lasdiferentes maneras de usar la instrucción
PRINT:
CódigoSalidaenpantalla
Comentario
PRINT "5" 5Se escribe elcarácter 5 en lapantalla.
PRINT 5 5Se escribenúmero 5 en la
pantalla.
PRINT 5PRINT "5"
55
Note el espacioantes del número5 en la primeralínea. BASICsiempre colocaespacios para lossignos +/-cuando seescribe unnumero.
PRINT "5 + 7"5 + 7
Escribetextualmente loque se encuentreentre comillas.
PRINT 5 + 7 12Escribe la sumade 5 y 7 en lapantalla.
PRINT 6 * 742
El asterisco (*)se usa para lamultiplicación.
-
8/15/2019 AlgoritmiaYProgramacion
7/27
PRINT 12 / 43
El signo (/) seusa para ladivisión.
PRINT 8 - 3 5
a = 3b = 4
c = a + bd = a * bPRINT aPRINT bPRINT cPRINT d
34712
a, b, c y d sonvariables de
memoria.El valor 3 seasigna a lavariable dememoria a.El valor 4 seasigna a lavariable dememoria b.En la 3ra línea, elcomputadorasigna la suma
de las variablesde memoria a y b a la variable dememoria c.En la 4ta línea elcomputadorasigna elproducto de lasvariables dememoria a y b ala variable dememoria d.
En la 5ta línea, elcomputadorbusca el valor dela variable dememoria a y laescribe en lapantalla.
a = 3PRINT "a" a
¿Esperaba a quese escribiera 3 en la pantalla?No olvide quecualquier cosa
que se escribaentre comillas, seescribirá enpantalla.El códigocorrecto es:
a = 3PRINT a
CAPITULO 4: SOLUCIÓN DEPROBLEMAS MATEMÁTICOS
Solucionar problemas matemáticossimples es una de las tareas más fácilesque se puede hacer en BASIC.
Antes de seguir es necesario entenderalgunos conceptos básicos:
¿Qué es un programa?
Un programa es un conjunto deinstrucciones que ejecuta elcomputador, para realizar una tarea
especifica.
En la mayoría de programas, esnecesario escribir cada cosa que debohacer y necesito pensar como lo haría:
• ¿Cuales datos necesito ingresar alcomputador?
• ¿Que operaciones, el computadorrealizara con los datos ingresados?
• ¿Que resultados escribirá en pantallael computador?
Existen tres partes en cada programaque 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 cuandoel proceso ha terminado.
Antes de comenzar a escribir elprograma, es importante escribir
-
8/15/2019 AlgoritmiaYProgramacion
8/27
algoritmos o pseudocódigos escritoscomo un bosquejo de lo que se quierehacer.
Algoritmos
Un algoritmo es un conjunto deinstrucciones precisas parasolucionar un problema.
Los algoritmos pueden representarse enleguaje escrito (pseudocódigo) o en flujogramas (Diagramas de Flujo)
Aquí hay un ejemplo de un simplealgoritmo para calcular la suma de dosnúmeros.
Obtenga el pr imer número
Obtenga el segundo número
Calcule la suma
Muestre la suma
A continuación se ilustra este conceptousando algunos ejemplos matemáticos:
Ejemplo 4.1: Escribir un programa quemuestre la suma de los números 8 y 12
Algoritmo Código delPrograma
Obtenga el primernúmeroObtenga elsegundo númeroCalcule la suma
Escriba elresultado
numero1 = 8
numero2 = 12
suma = Numero1 +
Numero2PRINT suma
Escri tura en Pantalla20
Se puede ver que este programa no esmuy explicito, el siguiente programa haceque la presentación sea más entendible:
Ejemplo 4.2: Escribir un programa quemuestre la suma de los números 8 y 12(mejorado)
Código del Programa
CLSnumero1 = 8numero2 = 12suma = Numero1 + Numero2PRINT "Este programa encuentra lasuma de 2 números"
PRINT "El primer numero es:"PRINT numero1PRINT "El segundo numero es:"PRINT numero2PRINT "La suma es:"PRINT suma
Escritura en Pantalla
Este programa encuentra la suma de 2
númerosEl 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, ledice a BASIC que coloque el cursor enla misma línea para escribir la próximavez así:
-
8/15/2019 AlgoritmiaYProgramacion
9/27
Ejemplo 4.3: Escribir un programa quemuestre la suma de los números 8 y 12(optimizado)
Código del Programa
CLSnumero1 = 8numero2 = 12suma = Numero1 + Numero2PRINT "Este programa encuentra lasuma de 2 números"PRINT "El primer numero es:" ; PRINT numero1PRINT "El segundo numero es:" ; PRINT numero2PRINT "La suma es:" ; PRINT suma
Escri tura en Pantalla
Este programa encuentra la suma de 2númerosEl primer numero es: 8El segundo numero es: 12La suma es: 20
La práctica hace la perfección.
Ejemplo 4.4: Escribir un programa quemuestre el producto de los números 8 y12
Algoritmo Código delPrograma
Obtenga el primernúmero
Obtenga elsegundo númeroCalcule el producto
Escriba elresultado
numero1 = 8
numero2 = 12
producto =Numero1 +Numero2PRINT producto
Se debe tener cuidado de nombrarvariables o constantes con el mismonombre de instrucciones de BASIC. En elejemplo siguiente, se usara la palabra"base" para almacenar la base del
triangulo. La palabra "BASE" no sepuede usar porque es una palabrareservada o instrucción en BASIC.
Ejemplo 4.5: Escribir un programa quecalcule el área de un triangulo de base =10 y altura = 5
Algori tmo Código del Programa
Obtener la base
Obtener laalturaCalcular el área
Escribir el área
'la palabra BASE es‘reservada in BASIC'Entonces se usara‘tbase para almacenar‘la basetbase = 10altura = 5
area = 1/2 * tbase *alturaPRINT area
Como es el caso en las matemáticas, lasoperaciones en BASIC se ejecutan en lasiguiente secuencia PDMAS1. Paréntesis.2. División.3. Multiplicación.4. Adición.5. Substracción.En el ejemplo siguiente, BASIC calcularala suma de la altura y el ancho entreparéntesis y luego multiplicara esto por2.
-
8/15/2019 AlgoritmiaYProgramacion
10/27
Ejemplo 4.6: Escribir un programa quecalcule el perímetro de un rectángulo dealto = 20 y ancho = 8.
Algoritmo Código delPrograma Obtenga la alturaObtenga el anchoCalcule el perímetro
Escriba el perímetro
alto = 20ancho = 8perimetro = 2 *(alto + ancho)PRINT perimetro
Existen muchas maneras para realizarlas tareas en BASIC. Use una queconsidere mejor para usted.
Ejemplo 4.7 (método 1): Escriba unprograma que calcule el área de uncirculo de radio = 7.
Algor itmo Código delPrograma
Obtenga el radioObtener π Calcular área
Escribir el área
radio = 7PI = 3.1416area = PI * radio *radioPRINT area
Ejemplo 4.8 (método 2): Escriba unprograma que calcule el área de uncirculo de radio = 7.
Algori tmo Código delPrograma
Obtenga el radioObtener PICalcular áreaEscribir el área
radio = 7PI = 3.1416area = PI * (radio ^ 2)PRINT area
CAPÍTULO 5: MEJORANDO ELCÓDIGO DEL PROGRAMA
Es importante mejorar el código delprograma para:
Documentar el programaUsar variables significantesInformar el propósito del programa
Documentar el programa
Como se pudo dar cuenta, los programaspueden llegar a ser muy grandes ydifíciles de entender, para solucionaresto la instrucción REM permite colocar
comentarios en el programa.
En el momento de ejecución cualquierlínea que comience con la instrucciónREM será ignorada.
Se puede reemplazar la instrucciónREM, por el símbolo de comilla simple (‘) al inicio del comentario, así pues, las doslíneas de código siguientes sonsimilares:
REM Programa escrito por CPE.
' Programa escrito por CPE.
La comilla simple se puede ubicar al finalde una instrucción así:
PRINT "Bienvenidos todos" ' mensaje debienvenida
Uso de variables signi ficantes
El uso de una sola letra para el nombrede las variables, puede ser muy fácil deescribir si se escribe lento. Sin embargopuede causar que el programa sea difícilde entender a lo largo del mismo. El uso
-
8/15/2019 AlgoritmiaYProgramacion
11/27
de variables significantes hace que elprograma sea fácil para entender ycomprender.
Aquí una ilustración:
x = 2000
y = 10
z = x * (100 + y) / 100
¿Puede imaginarse que propósito tieneel código del programa anterior?
Ahora veremos como es de fácil, cuando
se usa nombres de variablessignificantes:
SueldoAntiguo = 2000
PorcentejeAumento = 10
SueldoNuevo = SueldoAntiguo * (100+ PorcentejeAumento ) / 100
Decir cual es el propósito delprograma
Muchos nuevos programadoresaprenden como programar pero suelenolvidar decir cual es el propósito delprograma.
Ejemplo de un programa sin documentar:
a = 20b = 30
c = a * b
PRINT "El producto es "; c
Como se ve en el siguiente programa, eluso de la instrucción REM para colocar
comentarios, el uso de variablessignificativas a lo largo del programa,dice que esta haciendo el programa.
REM Este programa calcula el productode 2 numeros: 20 y 30.
numero1 = 20
numero2 = 30
producto = numero1 * numero2
PRINT "Este programa calcula elproducto de 2 numeros"
PRINT "El primer numero es "; numero1
PRINT "El segundo numero es ";numero2
PRINT "El producto es "; producto
CAPITULO 6: ADQUISICIÓN DEDATOS DEL USUARIO EN
EJECUCIÓNDos instrucciones o comandos permitenobtener datos del usuario que ejecuta elprograma:
• La instrucción INPUT
• La instrucción INKEY$
INPUT
La instrucción INPUT lee datos delusuario y los almacena en una variablede memoria, la sintaxis es la siguiente:
INPUT “ Texto que se muestra ” ; nombre de variable
-
8/15/2019 AlgoritmiaYProgramacion
12/27
-
8/15/2019 AlgoritmiaYProgramacion
13/27
Ejemplo 6.3: Escoger entre dosopciones
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
Escri tura en Pantalla
En el programa de prueba el usuarioselecciono el numero "1"
1. Jugar Pacman2. Jugar TetrisIngrese su selección:Selecciono jugar Pacman.
CAPITULO 7: TOMANDO DECISIONES
Es necesario preguntar al usuario,cuando se requiere escoger entre una omás opciones. Las instrucciones:
• IF - THEN - ELSE
• SELECT CASE
Se usan para tomar decisionesdependiendo de condiciones específicas.
La Instrucción IF - THEN - ELSE
La sintaxis de la instrucción IF - THEN escomo sigue:
• IF condic ion1 THEN
[Lista de instrucciones que seejecutaran si la condicion1 secumple]
END IF
• IF condic ion1 THEN
[Lista de instrucciones que seejecutaran si la condicion1 se
cumple]
ELSE
[Lista de instrucciones que seejecutaran si la condic ion1 NO secumple]
END IF
• IF condic ion1 THEN
[Lista de instrucciones que seejecutaran si la condicion1 secumple]
ELSEIF condicion2 THEN
[Lista de instrucciones que seejecutaran si la condicion1 NO secumple
Y la condic ion2 se cumple ]
ELSE
[Lista de instrucciones que seejecutaran si la condicion2 NO secumple]
END IF
-
8/15/2019 AlgoritmiaYProgramacion
14/27
Ejemplo 7.1: Escribir un programa quepregunte al usuario su nota enmatemáticas y le diga si aprobó o no laevaluación (se aprueba con 40).
Algoritmo Código de Programa Borrar laPantallaEscribirmensaje enpantallaTomar notadeevaluaciónComparar sila nota esmayor a 40 yEscribir“Aprobóevaluación"
CLS
PRINT "Ingrese su Nota deMatemáticas: ";
INPUT nota
IF nota >= 40 THEN
PRINT "Aprobo evaluacion."
END IFEscritura 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 nomuestra ningún mensaje, si no seaprueba, debido a que la condición no secumple. Se puede usar la instrucciónELSE para mostrar el mensaje cuando lacondición no se cumple es decir cuandono aprueba, así:
Código del Programa
CLS
PRINT " Ingrese su Nota de Matematicas: "; INPUT notaIF nota >= 40 THEN
PRINT " Aprobo evaluacion."ELSE
PRINT "Perdio evaluacion." ‘No se cumplela condicionEND 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 lainstrucción IF - THEN - ELSE dentro deuna instrucción IF-THEN-ELSE y esta asu vez dentro de otra instrucción IF-THEN-ELSE.
La inst rucción SELECT CASE
SELECT CASE es otro tipo deinstrucción para tomar decisiones enBASIC. La sintaxis es como sigue:
SELECT CASE Textosentencia
CASE opcion1
[Lista de instrucciones que seejecutaran si Textosentencia =opcion1 ]
CASE opcion2
[Lista de instrucciones que seejecutaran si Textosentencia =opcion2 ] …
CASE ELSE
[Lista de instrucciones que seejecutaran si Textosentencia no seencuentra en las opcionesanteriores ]
END SELECT
-
8/15/2019 AlgoritmiaYProgramacion
15/27
Ejemplo 7.2: Como usar la instrucciónSELECT CASE. Escribir un programaque muestre un menú en donde seseleccione un juego.
Algori tmo Código de Programa
Mostrar el menúEscribir caso 1Escribir caso 2
Escribir caso 3Tomar el valor deselecciónSelecciona entrelos casos:caso opción = 1Escribir
"Escogió jugarTetris"caso opción = 2Escribir
"Escogió jugarPacman"caso opción = 3Escribir "Hasta
luego"case choice = 4Escribir
"OpciónIncorrecta"Fin selección
'Diseño del MenúPRINT "1. Jugar Tetris"PRINT "2. JugarPacman"PRINT "3. Salir"INPUT "Ingrese suselección: "; opcion SELECT CASE opcion
CASE 1 PRINT "Escogió jugarTetris"
CASE 2 PRINT "Escogio jugar
Pacman"
CASE 3 PRINT "Hasta luego"END
CASE ELSE PRINT "Opción
Incorrecta"
END SELECT
CAPITULO 8: CREACION DE CICLOSUn ciclo se usa para repetir un bloque deinstrucciones 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 elciclo FOR-NEXT y el ciclo DO-LOOP.
¿Donde son usados? Aquí hay algunosejemplos:
• En la solución de problemasmatemáticos cuando se tiene queimprimir una lista de números con unincremento constante.
• En juegos cuando se tiene quemonitorear constantemente la entradade teclado o entrada de Mouse.
La instrucción FOR - NEXT
FOR - NEXT se usa para repetir unbloque de instrucciones en un específiconúmero de veces, la sintaxis es lasiguiente:
FOR contador = inic io TO fin [ STEPincremento ]
[Bloque de instrucciones]
NEXT
En la instrucción FOR - NEXT un bloquede instrucciones se ejecuta un númerode veces. El valor de la variable contador es incrementado en 1 hastaque es igual al valor fin.
La variable contador por defecto (sin lainstrucció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 comouna ilustración.
-
8/15/2019 AlgoritmiaYProgramacion
16/27
Ejemplo 8.1: Este programa imprimeenteros del 1 al 10
Código del
Programa
Escritura en
Pantalla
DIM contador ASINTEGER
FOR contador = 1 TO 10 PRINT contador NEXT
12345678910
En el ejemplo anterior la instrucciónPRINT contador se ejecuta 10 veces.Después de cada ciclo el valor de lavariable contador es incrementado en 1.
Ejemplo 8.2: Este programa imprime losnúmeros impares del 1 al 10
Código delPrograma
Escritura enPantalla
DIM contador ASINTEGER
FOR contador = 1 TO 10 STEP 2
PRINT contador NEXT
13579
La instrucción DO - LOOP
DO - LOOP ejecuta un bloque deinstrucciones mientras o hasta que unacondición sea verdadera, La sintaxis es:
• DO
[Lista de instrucciones]
LOOP UNTIL condicion1
• DO
[Lista de instrucciones]
LOOP WHILE condicion1
Mientras que un contador esautomáticamente incrementado en lainstrucción FOR - NEXT, en lainstrucción DO - LOOP uno mismo tieneque incrementar el contador.
A continuación una comparación de losdos métodos:
FOR - NEXT DO - LOOP
'Este programamuestra una frase5 vecesCLS DIM contador ASINTEGER
FOR contador = 1 TO 5
PRINT "¡Hola!¿Como estas?"NEXT
'Este programamuestra una frase
5 vecesCLS DIM contador ASINTEGER
contador = 0 DO
PRINT "¡Hola!¿Como estas?"
contador = contador + 1
LOOP UNTIL contador = 5
-
8/15/2019 AlgoritmiaYProgramacion
17/27
La Instrucción WHILE – WEND
WHILE - WEND es otra clase deinstrucción para ejecutar ciclos. Lainstrucción DO - LOOP de todas
maneras provee una mejor manerahacerlo.
Código delPrograma
Escritura enPantalla
DIM contador ASINTEGER
contador = 0WHILE contador
-
8/15/2019 AlgoritmiaYProgramacion
18/27
COLOR [Color de Escritura] , [Colorde Fondo]
Para modificar únicamente el color de laescritura se usa:
COLOR [Color de Escr itura]
Para modificar únicamente el color delfondo se usa:
COLOR , [Color de Fondo ]
La tabla siguiente muestra una lista decolores 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 Aguamarina
11 Aguamarina
Claro
4 Rojo 12 Rojo Claro
5 Fucsia 13 Morado
6 Café 14 Amarillo7 Blanco 15
BlancoClaro
El siguiente ejemplo ilustra como usar lainstrucción COLOR:
Ejemplo 9.1: Escribir en amarillo sobreazul
Código del Programa
COLOR 14, 1PRINT "Este texto esta en Amarillo sobre Azul"Escritura en PantallaEste texto esta en Amarillo sobre Azul
Si se quiere que no quede solo unrecuadro de color azul se usa lainstrucción CLS después de configurar elcolor con la instrucción COLOR así:
Ejemplo 9.2:
Código del Programa COLOR 14, 1CLS PRINT " Este texto esta en Amarillosobre Azul "Escri tura en PantallaEste texto esta en Amarillo sobre Azul
Se debe tener cuidado con el uso de los
colores porque algunas combinacionesde colores no son agradables a la vista.
CAPITULO 10: LA INSTRUCCIÓNLOCATE
LOCATE se usa para mover el cursor enla pantalla, la sintaxis es:
LOCATE Fila , ColumnaEjemplo:
LOCATE 20, 30
PRINT "Fila numero 20, Columnanumero 30"
Por defecto hay 25 Filas y 80Columnas en BASIC, pero esto puedeser modificado dependiendo de la
resolución de pantalla que se estetrabajando.
El ejemplo anterior muestra el texto “Filanumero 20, Columna numero 30” en lafila 20 y columna 30 en la pantalla deBASIC.
-
8/15/2019 AlgoritmiaYProgramacion
19/27
El uso de la instrucción LOCATE enBASIC puede resultar en una funciónextraña para el programa, como se ve enel siguiente ejemplo:
CLS
LOCATE 1, 20
PRINT "¿Puede verme?"
LOCATE 25, 20
PRINT "¿Donde estoy?"
SLEEP
En el ejemplo anterior la frase “¿Puedeverme?” desaparece de la pantalla.¿Que paso?
El problema se encuentra en las líneas 4 y 5 del código del programa. Cuando seusa la instrucción PRINT sin colocar unacoma o un punto y coma en el final de lalínea, BASIC envía el cursor a lasiguiente línea y como estamos en laúltima fila (la fila 25) la siguiente línea esla primera línea, entonces la pantallaretorna a la línea original que es encomienzo de la pantalla.
Para solucionar este problema se colocaun punto y coma al final de la instrucciónPRINT.
CLS
LOCATE 1, 20
PRINT "¿Puede verme?"LOCATE 25, 20
PRINT "¿Donde estoy?";
SLEEP
CAPITULO 11: SUBRUTINAS YFUNCIONES
Después de aprender los fundamentosde BASIC, como comandos, flujo defunciones y programas simples, se estalistos para hacer programas másgrandes.
Al escribir programas largos, algunasveces, es necesario repetir partes delcódigo una y otra vez, veamos comopodemos agilizar esta tarea.Si se usan formulas matemáticascomplejas con muchas variables paracalcular un valor, las subrutinas (SUBs) yfunciones (FUNCTIONS) son una
herramienta que ayuda a organizar elcódigo y a crear “mini” programas en elprograma principal.
Subrutinas
Es un juego de instrucciones que sepueden ejecutar con una simpleinstrucción: El nombre de la subrutina.
Ejemplo: Imagine que se quiere mostrarun párrafo de texto como la introducciónal programa así:
CLS
PRINT "Este es el párrafointroductorio de texto al programa"
PRINT
PRINT "Este programa es bueno,aunque no lo crean y"
PRINT "es lo mejor que haya podidohacer."
-
8/15/2019 AlgoritmiaYProgramacion
20/27
Este cóy se qulíneas n20? oque imp
Se deejecutarinstrucci
Existensubrutin
La primEdicióncuadronombre
cualquie9) comeel mismvariablenombrede la mi
En la imse lla
presion
el nomba la veny elsiguient
SUB in
END S
igo es el ciere mostr o es tan m
uchas primir al mis
erá usartodo el c
ón.
dos manas en QBa
era es ab
Nuevade dialogde la sub
r carácternzando po concepto
. Lo recomque descma.
agen antea “Instr
↵ (Enter)
re, automtana de laditor co:
trucción
B
omienzo dr antes n
al, pero quginas quemo tiempo
una subódigo con
ras simplic:
rir el men SUB…
se abrerutina. Se
alfanumérir una letraque para
endable eiba el fun
rior la nuección”.
, después
ticamentesubrutina “tiene sol
l programda, esasé tal fuera se tenga
utina par una simpl
s de cre
ú Click en pequeñpidiendopuede us
co (A-Z,y siguiendodo tipo d escribir uionamient
a subrutinuando s
de ingres
cambiamoInstruccióamente l
a5nn
ae
r
olr
-oeno
ae
r
s”o
Ahocódiinstr algusald
sóloper aseejec
Sinclavideaencisubr evidpen
’Estintro
SU
CLS
PRIintr
PRI
PRIaun
PRIhac
EN
Par vent
y useleprog
Simesadosmuy
a es elgo que seucciones.na cosa ará un men
líneasitidas, nura que
uten.
embargopara co
l es utilizama para r utina, noente pare:
subrutinaductorio d
instrucci
T "Estductorio
T
T "Esteue no lo
T "es lor."
SUB
navegarana princi
ilice lasccionar unrama.
lemente pventana. (ventanasútil para c
momentomostrara
Si se inttes de la iaje de err
de co instrucctodos los
omentarmpletar lor un pocosumir elimporta
zca, real
muestra el program
n
e ese texto al
programrean y"
mejor qu
entre lasal del pro
eclas dea subrutin
resione ↵ e puede t
abiertas amparar el
de coloccon todasenta adicstrucción
or diciend
entarioiones; locomando
l códigoproyecto
de espaciontenidocuán triviente val
l párrafo
el pa program
a es bu
haya po
subrutinasrama puls
dirección o el títul
Enter) par ner en reala vez, qucódigo)
r elsus
ionarUB, que
sonquese
s las, lo
pore la
al oe la
rrafo"
eno,
dido
y lae F2
paradel
ir alidade es
-
8/15/2019 AlgoritmiaYProgramacion
21/27
Ahora que se ha creado una subrutinaque contiene las instrucciones que seejecutarán, todo lo que hay que hacerpara llamarla es usar su nombre como sifuera un comando:
‘Mostrar instrucción
Instrucción
La segunda manera de crear unasubrutina es sólo un atajo. En cualquierlugar de su código escriba "SUB nombredesubrutina" y presione ↵ (Enter). El editor de QBasic creará deforma automática la ventana desubrutina para que usted pueda
comenzar a ingresar su código deinmediato.
Cuando se utiliza este método, por logeneral, se quiere que la subrutina seejecute en ese punto, así que primero sedebería escribir la llamada y luegocrearla, de ese modo, el llamamiento a lasub ya estará en marcha y sólo tendráque introducirse el código.
En QBasic se deben declarar lassubrutinas creadas, la instrucciónDECLARE SUB se utiliza para hacerlo.Sin embargo, el QBasic es losuficientemente inteligente como parasaber que se ha creado una, y al guardarel programa, la declara y la insertaautomáticamente en la parte superior delcuerpo principal del mismo.
Las Instrucciones DECLARE deben ser
colocadas antes que cualquier otrainstrucción, pero los comentarios porencima se pueden colocar porque noañaden nada.
Funciones
Las funciones (FUNCTIONS), trabajanexactamente de la misma manera quelas subrutinas (SUBs), pero tienen unacaracterística especial.
Las funciones pueden devolver un simplevalor a la ubicación que las llama. El usomás común de las funciones es cuandose tienen varias líneas de código queproducen un resultado, pero quenecesita usar ese código varias veces.
Las Funciones se crean de dos formasiguales a como se crean las subrutinas.
Click en Edición NuevaFUNCTION…
También aparecen en la lista que semuestra al presionar F2. Con el fin deadvertir la diferencia entre SUBs yFUNCTIONs en la ventana de diálogoaparece una barra de estado que diceFUNCTION en lugar de SUB, es unsimple indicador.
Vamos a crear una función que realizauna operación matemática y devuelve elresultado. Con el fin de devolver un valorllamando a la ubicación, se usa elnombre de la función como si fuera unavariable, y se le asigna un valor a lamisma:
'Una función matemática
FUNCTION suma ()
n = 5 + 2
suma = n
END FUNCTION
-
8/15/2019 AlgoritmiaYProgramacion
22/27
La ejecución de una función es un pocodiferente a la ejecución de una subrutina,dado que las funciones retornan valores,se utiliza el nombre de la función como sifuera un valor que se le asigne a otra
variable:x = suma
Por supuesto, esta función no es demucho uso ya que sólo devuelve unúnico valor: 7. La definición de unafunción (incluso entre los noprogramadores) incluye el uso de una omás variables de entrada, llamadosparámetros, afectando a los valores delresultado.
Los parámetros se especifican en lalínea de definición de la función, en lainstrucción DECLARE y a continuacióntodas las funciones se ejecutan comoresultado de la función.
Si modifica los parámetros de la función(en este caso, añadirlos) después de quehaya guardado el programa, se tendráque modificar la declaración que genera
automáticamente BASIC, una manerafácil de hacer esto es borrar porcompleto la línea antigua y salvar elprograma 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 seadiciona los dos números a sumar así:
x = suma (10, 15)
PRINT x
El valor de x será 25, sobre la base delos 10 y 15 que se utilizaron comoparámetros. Por supuesto, podría añadirotro parámetro a la función que permitiría3 valores que se añadirán también. Lasposibilidades son infinitas.
Ahora se entendió cómo las funcionestrabajan, se verá que las subrutinastambién pueden aceptar variables. Lassubrutinas asignan variables de trabajodel mismo modo que en una función.
En esencia, la única diferencia entre unafunción y una subrutina es que unafunción devuelve un valor que debe serasignado a una variable, pero unasubrutina sólo se ejecuta. Se puede usaruna función para hacer todo lo que haceuna subrutina siempre y cuando no tengaque retornar un resultado.
Variables
De Entrada“Función”
VariableDe
Retorno
Variables de entrada “ Subrutina ”
Por ejemplo, una función podría contenerinstrucciones PRINT y decir a un jugadorsu puntuación y cómo ésta seincrementa:
'Suma un valor incremento, al resultadoreportando el cambio
FUNCTION sumamarcador (marcador,incremento)
PRINT " Aumento"; incremento;" ¡puntos!"
-
8/15/2019 AlgoritmiaYProgramacion
23/27
Sumamarcador = marcador +incremento
END FUNCTION
Es importante recordar que los nombresde variables definidas por la función, enel caso antes mencionado: "marcador" e"incremento" no tienen nada que ver conlas variables de otros lugares en elprograma que pueden ser llamadas"marcador" o "incremento". Estasvariables son sólo locales, en el sentidode que están en existencia para laduración de la función.
La instrucción COMMON SHARED o
DIM SHARED declara variables globalesde manera que sean utilizables en elinterior, y afectadas por, las funciones ylas subrutinas. Esto depende del comose 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!" seimprimirá dos veces. El primer parámetrode uso es el valor actual de"marcador_jugador", el valor que toma lafunción se añade al valor de"Incremento", en el primer caso, 20.
Todos los anteriores ejemplos de funciónretornan números. Es posible retornarcadenas de caracteres también. El trucoaquí es que el nombre de la función debeterminar con '$', así como una cadena.
Además, diferentes combinaciones de
números y cadenas pueden pasarse afunciones y subrutinas.
Aquí está un ejemplo de una función queacepta variables mixtas y devuelve unacadena:
'Funcion que reporta el nombre y la edadde una persona
FUNCTION reporta$ (nombre$, edad)
reporta$ = nombre$ + " tiene " + STR$(edad) + " años "
END FUNCTION
'Uso de la funcion reporta$:frases$ = reporta$("La estacionQBasic" , 9)
PRINT frases$
o
PRINT reporta$("La estacion QBasic" ,9)
QBasic exige valores de retorno de lasfunciones que se utilizan, ya sea en unaasignación de variable u otra cosa.
Uno motivo por el cual se usanpreferiblemente las funciones que lassubrutinas, es que estas puedendevolver una bandera verdadero/falsoque indica si la función fue un éxito en sutarea o no.
Por ejemplo, supongamos que unafunción se utiliza para conectarse a unabase de datos. Si la función devuelvecierto, la operación tuvo éxito, de serfalsa, entonces la conexión falló. Unejemplo de bandera será:
-
8/15/2019 AlgoritmiaYProgramacion
24/27
'Pregunta para verificar salida deprograma
FUNCTION verificar ()
PRINT "¿Esta seguro? (s/n)"
DO
a$ = INKEY$
LOOP UNTIL a$ ""
IF a$ = "s" THEN valorretorno = 1 ELSE valorretorno = 0
verificar = valorretorno
END FUNCTION
’Un excelente uso de esta función es:
IF verificar() THEN END ELSE GOTOInicio
Dado que el valor de cero causa unafalsa evaluación en una instrucción IF -
THEN "GOTO inicio" si el usuario nopulsa la letra "y".
Por último, si se tiene que eliminar unasubrutina o función, presione F2, seleccione la SUB / FUNCTIÓN y"Eliminar ", se le pedirá que verifique laoperación o cancele.
CAPITULO 12: DIAGRAMAS DE
FLUJOIntroducción
Los diagramas de flujo son una manerade representar visualmente el flujo dedatos a través de sistemas detratamiento de información. Los
diagramas de flujo describen queoperaciones y en que secuencia serequieren para solucionar un problemadado.
Un diagrama de flujo u organigrama esuna representación diagramática queilustra la secuencia de las operacionesque se realizarán para conseguir lasolución de un problema.
Los diagramas de flujo se dibujangeneralmente antes de comenzar aprogramar el código frente a lacomputadora.
Estos diagramas de flujo desempeñan un
papel vital en la programación de unproblema y facilitan la comprensión deproblemas complicados y sobre todomuy largos.
Una vez que se dibuja el diagrama deflujo, llega a ser fácil escribir el programaen cualquier lenguaje de alto nivel.
Vemos a menudo cómo los diagramasde flujo nos dan ventajas al momento de
explicar el programa a otros, siendo unanecesidad para mejorar ladocumentación de un programacomplejo.
Símbolos
Los Diagramas de flujo se dibujangeneralmente usando algunos símbolosestándares; sin embargo, algunossímbolos especiales pueden también serdesarrollados cuando sean requeridos.
Algunos símbolos estándares, que serequieren con frecuencia para diagramarprogramas se muestran a continuación:
-
8/15/2019 AlgoritmiaYProgramacion
25/27
Inicio o fin delprograma
Pasos, procesos olíneas de instrucción
de programa decomputo
Operaciones deentrada y salida
Toma de decisiones yRamificación
Conector para unir elflujo a otra parte deldiagrama
Conector de pagina
Líneas de flujo
para mostrar datos
Envía datos a laimpresora
Llamado a subrutina
Reglas para la creación de Diagramas
Los Diagramas de flujo debenescribirse de arriba hacia abajo,
y/o de izquierda a derecha. Los símbolos se unen con líneas,
las cuales tienen en la punta unaflecha que indica la dirección quefluye la información procesos, sedeben de utilizar solamente líneas
de flujo horizontal o verticales(nunca diagonales).
Se debe evitar el cruce de líneas,para lo cual se quisiera separar elflujo del diagrama a un sitiodistinto, se pudiera realizarutilizando los conectores. Se debetener en cuenta que solo se vanautilizar conectores cuando seaestrictamente necesario.
No deben quedar líneas de flujosin conectar
Todo texto escrito dentro de unsímbolo debe ser legible, preciso,
evitando el uso de muchaspalabras.
Todos los símbolos pueden tenermás de una línea de entrada, aexcepción del símbolo final.
Solo los símbolos de decisiónpueden y deben tener más de unalínea de flujo de salida.
Ejemplo de diagrama de flujo:
-
8/15/2019 AlgoritmiaYProgramacion
26/27
El Diagrama de flujo anterior encuentrala suma de los primeros 50 númerosnaturales
Descripción del diagrama anterior
SUMA, es la variable a la que se le vaagregando el valor de cada númeronatural. NATURAL, es el contador. Ésterecorrerá lo números hasta llegar al 50.
• El primer bloque indica el inicio delDiagrama de flujo
• El segundo bloque, es unSímbolo de procesos
En este bloque se asume que lasvariables SUMA y NATURAL hansido declaradas previamente einicializa en 0 para comenzar elconteo y la suma de valores
• El tercer bloque, es también unSímbolo de procesos
En éste paso se incrementa en 1 la
variable NATURAL. Por lo que, en elprimer ciclo NATURAL valdrá 1, yaque estaba inicializada en 0, ademásdel conecto del ciclo.
• El cuarto bloque es exactamentelo mismo que el anterior
Pero en éste, ya se le agrega el valorde NATURAL a la variable quecontendrá la suma.
• El quinto bloque es un Símbolode Toma de decisiones yRamificación Lo que hay dentrodel bloque es una pregunta que sele hace a los valores queactualmente influyen en elproceso
-
8/15/2019 AlgoritmiaYProgramacion
27/27
¿ES NATURAL = 50?, Obviamentela respuesta es no , ya que NATURALtodavía es 1. Por lo que el flujo denuestro programa se dirigirá hacía laparte en donde se observa la palabra
no: Tercer Bloque, éste le sumará 1 yvuelve a llegar a éste bloque, dondepreguntará ¿ES NATURAL = 50?,...¡No!, todavía es 2, regresara alTercer bloque y vuelve hacer lomismo. Y así hasta llegar a 50,obteniendo así la suma de losprimeros 50 primeros númerosnaturales.
• Por último indicamos que elresultado será mostrado en laimpresora
• Fin del programa (o diagrama)
Código del programa en QBASIC
'Este programa muestra suma de los‘primeros 50 números naturales.
DIM SUMA AS INTEGER DIM NATURAL AS INTEGER
CLS
SUMA = 0NATURAL = 0
DONATURAL = NATURAL + 1
SUMA = SUMA + NATURAL LOOP UNTIL NATURAL = 50
PRINT SUMA
REFERENCIAS:
Qbasic Tutorial for beginners andChildrenhttp://pages.intnet.mu/jhbpage/Program/Qbasic/tutorial/index.htm
Subroutines and Functions:Everything about how to use themhttp://www.qbasicstation.com/index.php?c=t_con&t=r_functions
El código ASCIIhttp://es.kioskea.net/base/ascii.php3
Aprenda a crear Diagramas de f lu johttp://www.mis-algoritmos.com/2006/08/06/aprenda-a-crear-diagramas-de-flujo/