ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º
ɻ˻ɻɻ˻ɻÉ˻ɻɻËɻɻÉ
ɻ˻ɻɻËÉ»
º
º
̼̹ººº»Ì¹Ì¹ºÊºÌ¹º ºººººº
ººÌ¹Ì¹È»ºº
º
º Ê
ÊÈȼȼÊÈÊÊÊ ÊÊÊȼÊȼ¼È¼
ȹʼÊÊȼÊȼ
º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º É˻ɻ˻»ÉË É»
É» º
º
º ºÊºººººººº ºº
¹ º
PROGRAMACION ESTRUCTURADA º
º Ê Êȼʼȼȼȼ
ȼ º
º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º
º
º
EN ESTA LECCION APRENDERAS...
º
º
º
º ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ³
³ º
º ³ þ ¨Cu les son las secciones
principales
³ º
º ³ de un programa?
..............................
2 ³ º
º ³ þ C¢mo descubrir por t¡ mismo la
manera
³ º
º ³ correcta de organizar
y escribir ³ º
º ³ programas de
computadoras ....................
3 ³ º
º ³ þ ¨Qu‚ es un algoritmo?
........................
3 ³ º
º ³ þ ¨Qu‚ es un algoritmo estructural
3 ³ º
º ³ y que son programas
estructurales? ...........
5 ³ º
º ³ þ ¨Qu‚ es un pseudoc¢digo?
..................... 6 ³ º
º ³ þ Menciona los cinco pasos para
³ º
º ³ escribir un buen
programa
³ º
º ³ de computadora
............................ 6 - 11
³ º
º ³ þ ¨Qu‚ es un diagrama de flujo?
................ 8 ³ º
º ³ þ ¨Qu‚ es una subrutina?
....................... 10 ³ º
º ³ þ La sintaxis para la sentencia
³ º
º ³ estructural
GOSUB/RETURN ....................
12 ³ º
º ³ þ Como llenar las subrutinas
.................. 13 ³ º
º ³ þ La sintaxis para el comando AUTO
............ 14 ³ º
º ³
³ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º
º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º É»Ë»Ë É»É» ɻɻɻ
º
CINCO PASOS PARA ESCRIBIR º
º ººÌ¹º Ì º
¹ººÉ¼ º
º
º ȹʼȼȼȼ ȼȼȼ
º
UN BUEN PROGRAMA
º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º É»Ë»Ë É»É» ɻɻɻ
º
CINCO PASOS PARA ESCRIBIR º
º ººÌ¹º Ì º
¹ººÉ¼ º
º
º ȹʼȼȼȼ ȼȼȼ
º
UN BUEN PROGRAMA
º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
SECCIONES PRINCIPALES DE UN PROGRAMA
Entre las mejoras que le hicimos al programa de Aritm‚tica
estuvo la de dividirlo en varias
secciones. Usamos, tambi‚n,
sentencias REM para identificar cada secci¢n
con un nombre.
Pudiste apreciar por estas mejoras, cu nto se facilit¢ la
lectura
y el entendimiento del mismo.
Si tomamos las secciones principales del
programa de
Aritm‚tica y las escribimos una detr s de la otra...
100 'Programa de Aritm‚tica
200 'Imprime instrucciones
340 'Selecciona operacion
560 'Selecciona grado de dificultad
770 'Inicializa variables
850 'Repite
problema.
880 'Genera n£mero al azar.
920 'Selecciona expresi¢n de
aritm‚tica.
970 'Imprime problema.
1000 'Entra respuesta.
1050 'Compara respuesta con soluci¢n
correcta.
1130 'Imprime puntuaci¢n final
1200 'Repite programa
1280 'Repite programa.
1300 'Deja programa.
1350 'Imprime mensaje de despedida
1420 END
...lo que ver s ser un bosquejo
general de todo el
programa.
De modo que, como puedes ver, este
programa est casi
escrito de
la forma en que hablamos. Por eso es que lo
entendemos. Y no s¢lo eso, sino que sabemos que el mismo
funciona
bien.
Pero todav¡a tiene que ser mejorado m s a£n. ¨Qu‚ hay de
a¤adirle gr ficas al mismo? ¨Qu‚ tal si cuando fallas en una
pregunta se te brinda una orejita
y se te d‚ una nueva
oportunidad para contestarla? Pero a pesar de estas
posibles
mejoras, estar s de acuerdo conmigo en que...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302
CINCO PASOS PARA ESCRIBIR UN BUEN PROGRAMA 3 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³
EL PROGRAMA,
³
³ ³
³ ES FACIL DE LEER, FACIL DE MANTENER, ³
³ FACIL DE MEJORAR, FACIL DE
CAMBIAR. ³
³
³
³ NO
TIENE ERRORES (BUGS) ³
³ QUE INTERRUMPAN EL
MISMO SUBITAMENTE. ³
³
³
³ EN UNA PALABRA,
TRABAJA BIEN. ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
De modo que lo que hemos hecho hasta aqu¡ es percatarnos de
que hay una mejor forma de
escribir programas que podemos
entender, cambiar y mejorar sin mucho esfuerzo de nuestra
parte.
¨Y cu l es esa forma
de escribir programas descrita
anteriormente? Ese es
el tema que trataremos a continuci¢n.
DESCUBRIENDO LA MANERA CORRECTA
-------------------------------
DE ORGANIZAR Y ESCRIBIR
PROGRAMAS DE COMPUTADORAS
-------------------------------------------------
Sup¢n que quieras sumar dos n£meros digitados
desde el
teclado de tu computadora. Puedes escribir el proceso en tus
propias palabras as¡:
1. Limpia la pantalla.
2. Digita el primer n£mero.
3. Deja un espacio en
blanco.
4. Digita el segundo
n£mero.
5. Deja un espacio en
blanco.
6. Suma los n£meros.
7. Despliega el resultado.
8. Deja un espacio en
blanco
9. Despliega el mensaje
"Presiona ENTER
para continuar ¢ 0
para terminar"
10. Si presionas
"0" termina.
11. V‚ al pricipio del
programa.
12. Termina.
¨QUE ES UN ALGORITMO?
---------------------
Nota como estas instrucciones paso a paso
describen un
proceso para llevar a cabo una tarea
espec¡fica: SUMAR DOS
NUMEROS.
Este proceso as¡ descrito se llama ALGORITMO (palabra
derivada a su vez de la palabra rabe al-Jw„rizm‹, el
apodo del
renombrado matem tico Moh med Ben Musa). As¡ que...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302
CINCO PASOS PARA ESCRIBIR UN BUEN PROGRAMA 4 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ UN
ALGORITMO ³
³ ES UN
PROCESO DONDE SE DAN ³
³ UNAS INSTRUCCIONES PASO A PASO ³
³ PARA REALIZAR ³
³ TAREA ESPECIFICA ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Traduzcamos el algoritmo anterior a un programa Basic...
100 CLS
120 INPUT "DIGITA EL PRIMER NUMERO ", n1
130 PRINT
140 INPUT "DIGITA EL SEGUNDO NUMERO ", n2
150 PRINT
160 LET SUMA = n1 + n2
170 PRINT "LA SUMA ES"; SUMA
180 PRINT
190 INPUT "Digita ENTER para continuar ¢ 0 para terminar
", E$
200 IF e$ =
"0" THEN GOTO 220
210 GOTO 100
220 END
Como puedes apreciar, este programa en lo £nico
que se
diferencia del anterior es que ha sido
traducido al lenguaje
Basic. Sin
embargo, su estructura es la misma.
Por lo tanto,
podemos decir que...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ LAS INSTRUCCIONES ³
³ DE UN PROGRAMA DE COMPUTADORA ³
³ TAMBIEN DESCRIBEN UN ALGORITMO ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
En otras palabras, el programa de arriba es un
algoritmo
porque...
Primero, cada paso est bien definido.
Segundo, el proceso es uno que termina.
Y tercero, el proceso hace lo que se le dice que haga.
Bueno, vamos a ver qu‚ m s descubrimos
de este corto
programa.
Observa c¢mo las instrucciones de las l¡neas desde la
100 hasta la 190, se ejecutan una detr s de la otra, es decir,
EN
SECUENCIA. Observa
que en la l¡nea...
200 IF e$ = "0"
THEN GOTO 220
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302
CINCO PASOS PARA ESCRIBIR UN BUEN PROGRAMA 5 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
...la instrucci¢n GOTO 220, va a ser
ejecutada si la
condici¢n e$ = "0" es satisfecha. Esto es, si SELECCIONAS que
quieres terminar, escoges 0, sino,
presionas ENTER.
Nota,
adem s, que si la instrucci¢n GOTO 220 no es
ejecutada, las
instrucciones desde la l¡nea 100 hasta la 190
se volver n a
REPETIR.
¨QUE ES UN ALGORITMO ESTRUCTURAL?
---------------------------------
Y QUE SON PROGRAMAS
ESTRUCTURALES?
-----------------------------------
Cuando un algoritmo como este programa de sumar dos n£meros,
se escribe usando combinaciones
estructurales de SECUENCIA,
SELECCION y REPETICION, se llama ALGORITMO
ESTRUCTURAL. De modo
que podemos decir que...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ UN
ALGORITMO ESTRUCTURAL ³
³ ES
UN ALGORITMO ESCRITO ³
³ USANDO COMBINACIONES
ESTRUCTURALES DE ³
³ SECUENCIA, SELECCION Y
REPETICION ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
...y que...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³
AQUELLOS PROGRAMAS ³
³ DISE¥ADOS DE
ALGORITMOS ESTRUCTURALES ³
³ SE LLAMAN PROGRAMAS
ESTRUCTURALES ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Bien, ahora, si volvemos a escribir el programa
solamente
traduciendo al Basic las sentencias aprendidas, ver s que...
Limpia pantalla. ÄÄÄÄ> CLS
Digita primer n£mero. ÄÄÄÄ> INPUT
number1
Deja espacio en blanco.
ÄÄÄÄ> PRINT
Digita segundo n£mero.
ÄÄÄÄ> INPUT number2
Deja espacio en
blanco. ÄÄÄÄ> PRINT
Suma los n£meros. ÄÄÄÄ> LET
sum=number1+number2
Despliega resultado. ÄÄÄÄ> PRINT sum
Deja espacio en blanco ÄÄÄÄ> PRINT
Despliega "Presiona ENTER ÄÄÄÄ> PRINT
"Presiona ENTER
para continuar ¢ 0
para continuar ¢ 0
para terminar"
para terminar"
Si presionas "0" termina. ÄÄÄÄ> IF presionas
"0" END
V‚ al pricipio programa. ÄÄÄÄ> GOTO principio
programa
Termina.
ÄÄÄÄ> END
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302
CINCO PASOS PARA ESCRIBIR UN BUEN PROGRAMA 6 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
¨QUE ES UN PSEUDOCODIGO?
------------------------
...las instrucciones de la versi¢n de la
derecha est n
escritas usando una mezcla de
palabras en tu idioma y de
palabras del lenguaje Basic. A esta
mecla se le llama
PSEUDOCODIGO. De
modo que...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ UN PSEUDOCODIGO ³
³ ES UNA MEZCLA DE
PALABRAS ³
³ PROVENIENTES DE TU
IDIOMA ³
³ Y DEL BASIC ³
³ QUE FORMAN LAS INSTRUCCIONES ³
³ DE UN ALGORITMO ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Existe otra manera de presentar un algoritmo y es por medio
de un DIAGRAMA DE FLUJO. Lo estudiaremos
ya mismo. Ese
pseudoc¢digo luego es traduccido totalmente al
lenguaje Basic,
formando el programa completo.
PRIMER PASO
-----------
PARA ESCRIBIR UN BUEN PROGRAMA
------------------------------
Ahora consideraremos la creaci¢n de un nuevo programa
que
convierta las temperaturas Cent¡grados (C) a
Fahrenheit (F) y
viceversa.
Con ‚l ilustraremos la forma de escribir un programa
bien estructurado.
Sabes bien que lo primero
que tienes que hacer para escribir
un programa es que SEPAS LO QUE INTENTAS HACER CON EL
MISMO. En
otras palabras, tienes que definir bien cu l va ser
su funci¢n.
De modo que...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ EL PRIMER PASO ³
³ PARA ESCRIBIR UN PROGRAMA ³
³
ES DEFINIRLO BIEN ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Naturalmente, tienes que saber que har el programa antes de
preocuparte de c¢mo funcionar el mismo. As¡ que definamos el
programa...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302
CINCO PASOS PARA ESCRIBIR UN BUEN PROGRAMA 7 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Queremos que nuestro programa
CONVIERTA los grados
Cent¡grados (C) a grados Fahrenheit (F) y viceversa. Para llevar
a cabo esa tarea, primero tenemos que SELECCIONAR que CONVERSION
preferimos: convertir C a F ¢ F a C. Una vez que la selecci¢n ha
sido hecha, entonces haremos que
la computadora HAGA LA
CONVERSION. Una vez hecha la misma, le pediremos
que nos PIDA
OTRA CONVERSION.
Si decidimos no seguir con el
programa lo
TERMINAMOS.
Reduzcamos esta definici¢n del programa a£n m s de lo
que
est ...
Primero, dado el caso de que nuestro programa tendr el
prop¢sito de convertir temperaturas,
llam‚moslo CONVERSION DE
TEMPERATURAS.
Segundo, hacemos que la computadora nos pida que SELECCIONE
LA CONVERSION.
Tercero, hacemos que la computadora HAGA
LA CONVERSION.
Cuarto, hacemos que la computadora nos
PIDA HACER OTRA
CONVERSION.
Y, por £ltimo, TERMINAR EL PROGRAMA. Pongamos todo esto de
la siguiente manera:
1. Llama al programa
CONVERSION DE TEMPERATURAS.
2. Selecciona Conversi¢n.
3. Haz la conversi¢n.
4. Pide otra conversi¢n.
5. Termina.
¨Qu‚ es lo que representan estos
cinco pasos?
UN
ALGORITMO!
F¡jate que es un algoritmo general
porque s¢lo
describe el proceso de conversi¢n pero no son pasos
espec¡ficos.
Es decir, no entra en detalles. Pero, a pesar de que estos pasos
no son espec¡ficos, presenta lo que se pide. Naturalmente, que
tienen que ser refinados.
Ahora pong moslos de esta otra forma:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Conversi¢n de temperaturas ³
³ Selecciona
conversi¢n ³
³ Haz la
conversi¢n.
³
³ Pide otra
conversi¢n. ³
³
Termina.
³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302
CINCO PASOS PARA ESCRIBIR UN BUEN PROGRAMA 8 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
¨Qu‚ notas? QUE NO ES OTRA
COSA QUE UN BOSQUEJO DE TODO EL
PROGRAMA!
Pong molo ahora en forma de diagrama para que puedas
apreciarlo a£n m s...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³
(EMPIEZA)
³
³
³ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³
³
³
³ ³
³
/ \
³ ³
³ ÚÄÄÄÄÄÄÄÄÄ¿ 2= /
\ =1 ÚÄÄÄÄÄÄÄÄÄ¿ ³
³
³ ³Convirete³<ÄÄÄÄ/SELECCIONA ÄÄÄÄ>³Convierte³ ³
³
³ ³ F a C ³
\CONVERSION ³ C a F ³ ³
³
³ ÀÄÄÄÄÂÄÄÄÄÙ \ / ÀÄÄÄÄÂÄÄÄÄÙ ³
³
³ ³
\ /
³ ³
³
³ ³
³ ³
³
³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³
³
³ ÀÄÄÄÄÄ> ³HAZ LA COVERSION³ <ÄÄÄÄÄÙ ³
³
³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
³ ³
³
\³/
³ ³
³
/ \
³ ³
³
/ \ SI
³ ³
³ / OTRA \ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³
³
\CONVERSION
³
³
\ ? /
³
³
\ / NO
³
³
\³/
³
³
(TERMINA)
³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
¨QUE ES UN DIAGRAMA DE FLUJO (FLOWCHART)?
-----------------------------------------
Antes de proseguir con nuestra discusi¢n,
tenemos que
decirte que un diagrama como este se llama DIAGRAMA
DE FLUJO.
De modo que...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³
UN DIAGAMA DE FLUJO ³
³ ES UNA
REPRESENTACION PICTORICA ³
³ QUE
PRESENTA LA DESCRIPCION DE UN PROGRAMA ³
³
USANDO CAJAS, ³
³ PARA
DEMOSTRAR LOS PASOS ³
³
QUE LA COMPUTADORA TIENE QUE TOMAR, ³
³
CONECTADOS POR FLECHAS, ³
³ QUE INDICAN EL
ORDEN EN QUE ESTOS
³
³ TIENEN QUE
EJECUTARSE ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302
CINCO PASOS PARA ESCRIBIR UN BUEN PROGRAMA 9 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
El mensaje escrito en cada caja representa una tarea que la
computadora tiene que ejecutar. Observa que el diagrama de flujo
no es otra cosa que un bosquejo del programa. Los diagramas de
flujo m s comunes pueden dibujarse
usando tres s¡mbolos
principales conjuntamente con las flechas que los
unen. Estos
son:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³
³
³
ÄÄÄÄÄÄÄ OVALOS /³\
³
³
(EMPIEZA) para
repesentar ÄÄÄÁÄÄÄ
³
³
ÄÄÄÂÄÄÄ comienzo o
final (TERMINA) ³
³
\³/
ÄÄÄÄÄÄÄ
³
³
\³/
³
³
/ \ SI
³
³
/ \ÄÄÄÄ>
³
³
\ ? / ³
³
\ /
³
³
³NO
³
³
\³/
³
³
diamantes para representar
³
³
una decisi¢n o una selecci¢n
³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
SEGUNDO PASO PARA ESCRIBIR UN BUEN PROGRAMA
-------------------------------------------
Muy bien, volvamos a nuestro bosquejo general original...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Conversi¢n de temperaturas ³
³ Selecciona
conversi¢n ³
³ Haz la conversi¢n. ³
³ Pide otra
conversi¢n. ³
³
Termina.
³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Nota, cu n general es este bosquejo! Cu n simple es!
No
tiene detalles.
Es corto, pero describe las tareas principales
que la computadora tiene que llevar a cabo. Por el hecho de que
este bosquejo resume las funciones principales
del programa,
podemos considerarlo como la RUTINA PRINCIPAL del mismo. Por lo
tanto, este es nuestro...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302
CINCO PASOS PARA ESCRIBIR UN BUEN PROGRAMA 10 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³
SEGUNDO PASO ³
³ HAZ UN BOSQUEJO
BREVE
³
³ PERO QUE
DESCRIBA ³
³ LAS PRINCIPALES TAREAS DEL PROGRAMA ³
³ (algoritmo
general) ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Pero espera, que hay algo m s. Leamos el
bosquejo
nuevamente.
¨Qu‚ notas? Fuera
del nombre del programa, ESTOS
PASOS SE PARECEN A SUBRUTINAS QUE LE DICEN A LA
COMPUTADORA QUE
HACER.
QUE ES UNA SUBRUTINA
--------------------
Una subrutina es un subprograma. Esto es, un programa
dentro de otro. Se considera
"como algo a hacerse"
rutinariamente en un programa, de ah¡ su
nombre. Si es algo a
hacerse rutinariamente debe ser "llamada" por un
comando especial
para tal fin.
Este comando es GOSUB. Y se llama a la subrutina
usando este comando antes del n£mero de l¡nea donde se
encuentra
esta.
Este comando GOSUB hace que la computadora vaya
a la
subrutina, la ejecute, vuelva al pr¢ximo n£mero de l¡nea donde
se
qued¢ para continuar con la pr¢xima instrucci¢n. Si aplicamos
esto a nuestro an lisis podemos descubrir el tercer
paso para
hacer un buen programa...
TERCER PASO PARA HACER UN BUEN PROGRAMA
---------------------------------------
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³
TERCER PASO
³
³ CONSIDERA EL
BOSQUEJO HECHO EN EL SEGUNDO PASO ³
³ COMO LA RUTINA
PRINCIPAL DEL PROGRAMA ³
³ CONVIRTIENDO LAS PALABRAS
DE TU LENGUAJE ³
³
(traduce el algoritmo a Basic) ³
³
EN SUBRUTINAS
³
³
A¥ADIENDOLES UNA SENTENCIA GOSUB ³
³
ENFRENTE DEL NUMERO DE LINEA ³
³
CONQUE VAS A COMENZAR LAS MISMAS ³
³
³
³ LUEGO A¥ADE
UNA COMILLA (') ³
³ AL FRENTE DE TUS
FRASES ESCRITAS EN TU IDIOMA ³
³ PARA HACER
QUE DICHAS FRASES ³
³ SE
CONVIERTAN EN COMENTARIOS REM ³
³ DE MODO QUE
PUEDAN DESCRIBIR ³
³ LO QUE SE
SUPONE HAGA LA SUBRUTINA ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302
CINCO PASOS PARA ESCRIBIR UN BUEN PROGRAMA 11 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Muy
bien, hagamos los que nos pide este tercer paso...
100 'Conversi¢n de temperaturas
110 '--------------------------
120 GOSUB 200 'Selecciona conversi¢n
130 GOSUB 300 'Haz la conversi¢n.
140 GOSUB 400 'Pide otra conversi¢n.
150 GOSUB 500 'Termina.
160 END
Observa, que lo que acabas de hacer es la RUTINA PRINCIPAL
de tu programa.
Nota, que no es otra cosa que un bosquejo que
describe, de un modo general, lo que el
programa se supone que
haga.
CUARTO PASO PARA ESCRIBIR UN BUEN PROGRAMA
------------------------------------------
Ahora lo que nos falta es seguir el...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³
CUARTO PASO
³
³ LLENA LAS
SUBRUTINAS ³
³ LLAMADAS EN EL PASO TRES ³
³ CON UNA SENTENCIA PRINT ³
³ EN
CADA UNA
³
³ DESCRIBIENDO LO QUE SE SUPONE HAGAN ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
He aqu¡ c¢mo seguimos este paso...
100 'Conversi¢n de temperaturas
110 '--------------------------
120 GOSUB 200 'Selecciona conversi¢n
130 GOSUB 300 'Haz la conversi¢n.
140 GOSUB 400 'Pide otra conversi¢n.
150 GOSUB 500 'Termina.
160 END
170 '
200 'Seleciona conversi¢n
210 '--------------------
220 PRINT
"Selecciona conversi¢n."
230 RETURN
240 '
300 'Haz la conversi¢n
310 '-----------------
320 PRINT
"Haz la conversi¢n."
330 RETURN
340 '
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302
CINCO PASOS PARA ESCRIBIR UN BUEN PROGRAMA 12 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
400 'Pide otra conversi¢n
410 '--------------------
420 PRINT
"Pide otra conversi¢n."
430 RETURN
440 '
500 'Termina
510 '-------
520 PRINT
"Termina."
530 RETURN
Nota como las l¡neas 120, 130, 140 y 150
en la rutina
principal llama las subrutinas de las l¡neas 200, 300, 400 y
500,
usando las sentencias GOSUB. Cuando cada subrutina es ejecutada
el control del programa regresa a la rutina
principal con la
sentencia RETURN. La sintaxis de la
sentencia estructural
GOSUB...RETURN es...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ GOSUB line number ³
³ .
³
³ .
³
³ .
³
³ RETURN line number ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Si ejecutas el programa, ver s las oraciones...
Selecciona
conversi¢n
Haz la conversi¢n.
Pide otra conversi¢n.
Termina.
...desplegadas en la pantalla.
Esto es evidencia de que el
programa esta funcionando bien. Naturalmente, no puede convertir
nada, pero cuando llenes cada subrutina con las sentencias
Basic
necesarios, DE SEGURO HARA LO QUE LE DIJISTE QUE HICIERA. Ahora,
¨cu l ser nuestro pr¢ximo paso?
QUINTO PASO PARA ESCRIBIR UN BUEN PROGRAMA
------------------------------------------
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³
QUINTO PASO
³
³ LLENA Y TRATA CADA
SUBRUTINA SEPARADAMENETE ³
³ COMO SI FUERA
UN PROGRAMA COMPLETO
³
³
APLICANDOLE LOS CUATRO ³
³
PASOS ANTERIORES
³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302
CINCO PASOS PARA ESCRIBIR UN BUEN PROGRAMA 13 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
COMO LLENAR LAS SUBRUTINAS
--------------------------
Empecemos llenando la subrutina SELECCIONA CONVERSION. Si
est s usando los int‚rpretes Basic GW-BASIC o BASICA puedes
usar
los comandos...
CLS
LIST 200-230
...conjuntamente, en modo inmediato, para ver solamente la
subrutina en pantalla.
Naturalmente, esto no lo puedes hacer con
QBASIC porque como sabes, el comando
LIST no pertenece a su
vocabulario.
En este caso, cambia la l¡nea 230 a 290,
luego
a¤ade las l¡neas 230, 240, 250, 260, 270, 280 as¡...
200 'Seleciona conversi¢n
210 '--------------------
220 PRINT
"Selecciona conversi¢n."
230 '
240 '
250 '
260 '
270 '
280 '
290 RETURN
Recuerda que con QBASIC, los n£meros de
l¡neas no son
necesarios, te aconsejamos que por ahora los
utilices para que
est‚s acorde con nuestra discusi¢n.
La discusi¢n que sigue supone que
est‚s usando los
int‚rpretes GW-BASIC o BASICA. Si usas QBASIC, sabes que tienes
que enumerar el programa manualmente.
Bien, una vez que tengas en pantalla la subrutina...
200 'Seleciona conversi¢n
210 '--------------------
220 PRINT
"Selecciona conversi¢n."
230 RETURN
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302
CINCO PASOS PARA ESCRIBIR UN BUEN PROGRAMA 14 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
...para llenar la misma, tenemos que a¤adir l¡neas entre las
l¡neas 220 y 230.
¨C¢mo lo hacemos? Podemos
hacerlo manualmente
como lo explicamos anteriormente en QBASIC. Pero en GW-BASIC y
BASICA puedes usar el comando AUTO. Su sintaxis es...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ AUTO line number,
increment ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Como queremos varias l¡neas entre 220 y 230, empezamos con
221 y la aumentamos en 1, obteniendo as¡ las
restantes. Para
hacer esto, digitamos en modo inmediato lo siguiente....
AUTO 221,1
...si presionamos ENTER una vez, aparecer autom ticamente
el n£mero 221, para retenerlo presionamos la tecla ' (comilla),
y
otra vez presionamos ENTER. Inmediatamente que
presionamos
ENTER, ver s el pr¢ximo n£mero 222. Para retenerlo, hacemos el
mismo procedimiento que hicimos arriba. Para retener 8 n£meros,
por ejemplo, presionamos ENTER ocho veces despu‚s
de que los
n£meros est‚n desplegados en pantalla. Si procedes as¡,
la
pantalla del monitor se ver como sigue...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ 200 'Selecciona
conversi¢n
³
³ 210
'---------------------
³
³ 220 PRINT
"Selecciona conversion" ³
³ 230 RETURN
³
³
³
³ auto 221,1
³
³ 221 '
³
³ 222 '
³
³ 223 '
³
³ 224 '
³
³ 225 '
³
³ 226 '
³
³ 227 '
³
³ 228 '
³
³
³
³
³
³1LIST 2RUN<- 3LOAD 4SAVE
5CONT<- ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Para
salir del comando AUTO, presiona CTRL C o CTRL BREAK.
El sistema volver al nivel de comando. Si digitas, luego...
CLS
ENTER
LIST 200-230 ENTER
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302
CINCO PASOS PARA ESCRIBIR UN BUEN PROGRAMA 15 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
...en modo inmediato, ver s...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ 200 'Selecciona
conversi¢n
³
³ 210
'---------------------
³
³ 220 PRINT
"Selecciona conversi¢n" ³
³ 221 '
³
³ 222 '
³
³ 223 '
³
³ 224 '
³
³ 225 '
³
³ 226 ' ³
³ 227 '
³
³ 228 '
³
³ 230 RETURN
³
³
³
³1LIST 2RUN<- 3LOAD 4SAVE
5CONT<- ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
...en tu pantalla. Ahora,
para hacer que los nuevos n£meros
generados con el comando AUTO sean en
incrementos de diez,
digitamos...
RENUMBER 100,100,10 ENTER
CLS
ENTER
LIST 180-290
ENTER
...otra vez en modo inmediato. La subrutina aparecer
listada con los nuevos n£neros de l¡nea.
180 'Seleciona conversi¢n
190 '--------------------
200 PRINT
"Selecciona conversi¢n."
210 '
220 '
230 '
240 '
250 '
260 '
270 '
280 '
290 RETURN
Una vez preparada y renumerada la subrutina estamos listos
para digitar los detalles en la misma. Todo lo que tenemos que
hacer es seguir los cuatro pasos antes mencionados.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302
CINCO PASOS PARA ESCRIBIR UN BUEN PROGRAMA 16 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Primero, tenemos que hacer un peque¤o resumen de
lo que
queremos a¤adir usando frases inglesas o espa¤olas, seg£n
sea el
caso (pseudoc¢digo algor¡tmico). Nota que las l¡neas 180, 190 y
290 son ya sentencias Basic, as¡ que las dejamos como
est n. La
l¡nea 200, est en Basic tambi‚n,
pero fue una l¡nea que
digitamos solamente para probar si esta
subrutina trabajaba
satisfactoriamente.
Para empezar, no olvidemos el principio..
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ EL PRIMER PASO ³
³ PARA ESCRIBIR UN PROGRAMA ³
³
ES DEFINIRLO BIEN ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
...y como esta es una subrutina (miniprograma), este paso se
aplica tambi‚n a ella. Veamos, entonces,
que es lo que
pretendemos nosotros hacer con la misma. Para seleccionar una
conversi¢n tenemos que PEDIRLA y luego DIGITARLA. Esto, en forma
resumida, ser¡a...
þ Pide selecci¢n. þ Digita selecci¢n.
Ahora bien, ¨c¢mo le pedimos a la computadora que nos pida
una selecci¢n?
Pues usando una sentencia PRINT. Pero espera,
antes de pedirle a la computadora que despliegue un
mensaje en
pantalla, tenemos que limpiar la misma para que no se
mezcle con
otros mensajes ya desplegados. De modo que,
tenemos que
modificar nuestro resumen y escribir...
þ Limpia pantalla. þ Pide selecci¢n. þ Digita selecci¢n.
Naturalmente, que para que la subrutina no se
interrumpa
s£bitamente en el caso en que digitemos un valor
err¢neo,
tenemos que asegurarnos que el valor digitado sea el
correcto.
Por eso, tenemos que PROBAR la selecci¢n
para ver si es la
correcta. Y
si as¡ es, aceptarla. As¡ que, a¤adimos a nuestro
resumen lo siguiente...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Limpia pantalla.
³
³ Pide selecci¢n.
³
ALGORITMO SEUDOCODIGO Ä>³ Digita
selecci¢n.
³
³ Prueba si la selecci¢n es correcta. ³
³ Acepta selecci¢n.
³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302 CINCO PASOS PARA ESCRIBIR UN
BUEN PROGRAMA 17 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Puedes convertir estas frases en Basic de muchas
maneras
diferentes, y tal vez la subrutina funcione. Sin embargo, esta
es la forma en que nosotros las convertimos...
180 'Selecciona conversi¢n
190 '---------------------
ÚÄÄÄÄ> 200 CLS
Limpia pantalla ÄÙ ÚÄÄ> 210 PRINT
"CONVIERTE:"
³ 220
PRINT
Pide selecci¢n
ÄÄÄ´ 230
PRINT " 1) C A F"
³ 240
PRINT " 2) F A C"
Digita selecci¢n Ä¿ ÀÄÄ> 250 PRINT
ÀÄÄÄÄ> 260 INPUT "Escoge por n£mero";T$
Prueba selecci¢n ÄÄÄÄÄÄ> 270 IF
T$<>"1" AND T$<>"2" THEN GOTO 180
ÚÄÄÄ> 280 LET
T=VAL(T$)
Acepta selecci¢n ÄÄÙ 290 RETURN
Nota que...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ HEMOS TRADUCIDO LAS FRASES
A SENTENCIAS BASIC ³
³
UNA A UNA.
³
³ UNA VEZ QUE
CADA FRASE ES TRADUCIDA, ³
³ LA VAMOS ARREGLANDO (DEBUG)
EN PANTALLA ³
³
HASTA QUE FUNCIONE
BIEN. ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Veamos un ejemplo para comprender bien esto. Despu‚s de
haber traducido las frases LIMPIA PANTALLA y PIDE
SELECCION la
subrutina SELECCIONA CONVERSION apareci¢ as¡...
180 'Selecciona conversi¢n
190 '---------------------
200 CLS
210 PRINT "CONVIERTE:"
220 PRINT
230 PRINT "
1) C A F"
240 PRINT "
2) F A C"
250 '
260 '
270 '
280 '
290 RETURN
Para saber si las sentencias escritas en Basic
eran las
correctas, tuvimos que probarlas (debug it). Y para probarlas
(debug it), digitamos...
CLS
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302
CINCO PASOS PARA ESCRIBIR UN BUEN PROGRAMA 18 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
GOSUB 180
...en modo inmediato.
Supimos que todo estaba bien, al ver
en pantalla lo siguiente...
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ CONVIERTE:
³
³
³
³ 1) C to F
³
³ 2) F to C
³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Una vez que estuvimos seguros de que la traducci¢n era
la
correcta, procedimos a traducir
otras frases, prob ndolas
(debuging it) de la forma en que lo hicimos. Nota que este modo
de proceder (procedimiento) no nos permite
continuar con la
pr¢xima traducci¢n hasta que la actual est‚ correcta. Una vez
que traducimos todas la frases, prob ndolas a
medida que las
¡bamos traduciendo, estuvimos seguros
de que la subrutina
funcionaba bien.
Muy bien, expliquemos ahora cada l¡nea de la
subrutina...
180 'Selecciona conversi¢n
190 '---------------------
200 CLS
210 PRINT "CONVIERTE:"
220 PRINT
230 PRINT "
1) C A F"
240 PRINT "
2) F A C"
250 PRINT
260 INPUT "Escoge por n£mero";T$
270 IF
T$<>"1" AND T$<>"2" THEN GOTO 180
280 LET T=VAL(T$)
290 RETURN
La l¡nea 180, identifica la
subrutina con el nombre
SELECCIONA CONVERSION usando
una sentencia REM en forma de
'(comilla).
La l¡nea 190, enfatiza el nombre de la subrutina con l¡neas
entrecortadas usando tambi‚n una sentencia
REM en forma de
comilla('). Esto es
opcional.
La l¡nea 200, tiene la sentencia CLS
para limpiar la
pantalla.
La l¡nea 220, contiene una sentencia PRINT sola, para dejar
un espacio separ ndo la pr¢xima l¡nea de la anterior (facilita
la
lectura).
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302
CINCO PASOS PARA ESCRIBIR UN BUEN PROGRAMA 19 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
La l¡nea 230 y 240, tienen un mensaje a
desplegarse en
pantalla.
La l¡nea 250, hace lo mismo que la l¡nea 220.
La l¡nea 260, tiene una sentencia INPUT para
entrar la
selecci¢n escogida.
Nota que que estamos usando una variable
alfanum‚rica (una cadena-string) en vez de una
num‚rica para
almacenar el valor de la selecci¢n escogida. Lo hicimos as¡,
para evitar la interrupci¢n s£bita de la subrutina si
ocurre un
error al entrar el dato.
Si usamos una variable de cadena para almacenar el valor de
la secci¢n escogida, el mismo ser aceptado,
a£n si fuera una
letra. Ahora bien, como el valor pedido es un n£mero, tenemos
que
convertir el valor alfanum‚rico de T$ a un valor num‚rico y
luego
almacenarlo en la variable num‚rica T.
La l¡nea 270, prueba los valores digitados y almacenados en
T$, para ver si estan entre 1 y 2. En caso de que el valor de
T$ no sea ni 1 ni 2, ser rechazado y la ejecuci¢n
del programa
saltar a la l¡nea 180 para pedir un nuevo valor. Nota la forma
en que se ha usado la estructura IF/AND/THEN.
La l¡nea 280, convierte el valor alfanum‚rico almacenado en
T$ a uno num‚rico, y lugo, lo almacena en la variable num‚rica
T.
La l¡nea 290, devuelve (return) el control a la l¡nea 130 de
la rutina principal.
Para llenar las subrutinas restantes
de la rutina
principal...
100 'Conversi¢n de temperaturas
110 '--------------------------
120 CLS
130 GOSUB
190 'Selecciona conversi¢n.
140 GOSUB
330 'Haz la conversi¢n.
150 GOSUB
610 'Pide otra conversi¢n.
160 GOSUB
690 'Termina programa.
170 END
...procede de la misma forma en que lo hicimos al llenar la
subrutina SELECCIONA CONVERSION. Te presentaremos ahora, el
programa completo.
Est£dialo con cuidado.
Lugo dig¡talo en tu
computadora y ejec£talo.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302
CINCO PASOS PARA ESCRIBIR UN BUEN PROGRAMA 20 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
100 'Conversi¢n de temperaturas
110 '--------------------------
120 CLS
130 GOSUB 190 'Selecciona conversi¢n.
140 GOSUB
330 'Haz la conversi¢n.
150 GOSUB
610 'Pide otra conversi¢n.
160 GOSUB
690 'Termina programa.
170 END
180 '
190 'Selecciona conversion
200 '---------------------
210 CLS
220 PRINT
230 PRINT "CONVIERTE:"
240 PRINT
250 PRINT "
1) C a F"
260 PRINT "
2) F a C"
270 PRINT
280 INPUT "Escoge por n£mero"; T$
290 IF T$
<> "1" AND T$ <> "2" THEN GOTO 190
300 LET T = VAL(T$)
310 RETURN
320 '
330 'Haz la conversi¢n
340 '-----------------
350 IF T = 1 THEN
360
'Convierte C a F:
370 CLS
380 PRINT
390 INPUT "ENTRA C"; C$
400 IF ASC(C$) < 48 OR
ASC(C$) > 57 THEN GOTO 330
410 LET C = VAL(C$)
420 PRINT
430 LET F = 9 / 5 * C + 32
440 PRINT C; "C";
"="; F; "F"
450 PRINT
460 END IF
470 IF T = 2 THEN
480
'Convierte F a C:
490 CLS
500 PRINT
510 INPUT "ENTRA F"; F$
520 IF ASC(F$) < 48 OR
ASC(F$) > 57 THEN GOTO 330
530 LET F = VAL(F$)
540 PRINT
550 LET C = (F - 32) * 5 / 9
560 PRINT F; "F";
"="; C; "C"
570 PRINT
580 END IF
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB302
CINCO PASOS PARA ESCRIBIR UN BUEN PROGRAMA 21 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
590 RETURN
600 '
610 'Pide otra conversi¢n
620 '--------------------
630 INPUT "OTRA CONVERSION (S/N)"; S$
640 IF S$ =
"S" OR S$ = "s" THEN GOTO 100
650 IF S$ =
"N" OR S$ = "n" THEN GOTO 690
660 GOTO 610
670 RETURN
680 '
690 'Termina programa
700 '----------------
710 CLS
720 PRINT "EL PROGRAMA SE ACABO"
730 PRINT
740 RETURN