ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º
ɻ˻ɻɻ˻ɻÉ˻ɻɻËɻɻÉ
ɻ˻ɻɻËÉ»
º
º
̼̹ººº»Ì¹Ì¹ºÊºÌ¹º ºººººº
ººÌ¹Ì¹È»ºº
º
º Ê
ÊÈȼȼÊÈÊÊÊ ÊÊÊȼÊȼ¼È¼
ȹʼÊÊȼÊȼ
º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º É˻ɻ˻»ÉË É»
É» º
º
º ºÊºººººººº ºº
ɼ º LO
BASICO DEL BASIC
º
º Ê Êȼʼȼȼȼ
ȼ º
º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º
º
º
EN ESTA LECCION APRENDERAS...
º
º
º
º ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ³
³ º
º ³ þ C¢mo mejrar el programa de aritm‚tica
........ 2 ³ º
º ³ þ C¢mo intercalar las instrucciones
............ 3 ³ º
º ³ þ C¢mo reconstruir la secci¢n
llamada
³ º
º ³ Selecciona operaci¢n
.........................
3 ³ º
º ³ þ C¢mo reconstruir la secci¢n
llamada
³ º
º ³ Selecciona grado de
dificultad ...............
4 ³ º
º ³ þ C¢mo reconstruir la secci¢n
llamada
³ º
º ³ Resuelve problema
............................
5 ³ º
º ³
³ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º
º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º É»Ë»Ë É»É»
É»ËÉ» º
º
º ººÌ¹º Ì º
ɼººº º MEJORANDO EL PROGRAMA DE
ARITMETICA º
º ȹʼȼȼȼ
ȼÊȼ º
º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º É»Ë»Ë É»É»
É»ËÉ» º
º
º ººÌ¹º Ì º
ɼººº º MEJORANDO EL PROGRAMA DE
ARITMETICA º
º ȹʼȼȼȼ
ȼÊȼ º
º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
MEJORANDO EL PROGRAMA DE ARITMETICA
Como pudiste apreciar
en la lecci¢n 9, nuestro programa de
aritm‚tica es un programa que funciona bien. Sin embargo, si
tratas de leerlo cuidadosamente notas "que falta
algo". ¨Qu‚ hay
de la presentaci¢n del programa? ¨Qui‚n lo escribi¢? Y las
instrucciones para usarlo, ¨d¢nde est n? Y hay todav¡a una falla
mayor: SU LECTURA AUN NO ES CLARA.
Ataquemos la primera falla: LA FALTA DE PRESENTACION. El
programa s¢lo tiene una l¡nea REM con el t¡tulo del programa...
100 'Programa de Aritm‚tica
Nota que esta presentaci¢n es muy sencilla, seca, no
dice
mucho. Veamos
ahora, esta otra presentaci¢n que aunque todav¡a
corta dice m s que la anterior...
100 'Programa de Aritm‚tica
110 '----------------------
120 CLS
130
PRINT "PROGRAMA DE ARITMETICA"
140
PRINT "Un programa Basic"
150
PRINT "escrito por Rey Rios"
160
PRINT
170
INPUT "Presiona ENTER para continuar. ", e$
180 'Fin de la presentacion.
Lee las l¡neas 100, 110 y 180. Estas l¡neas marcan los
l¡mites de la presentaci¢n. El cuerpo de la misma est compuesto
principalmente de sentencias PRINT que contienen el mensaje de
la
presentaci¢n y una sentencia INPUT. La l¡nea 170, interrumpe la
ejecuci¢n del programa para que el usuario tenga tiempo de
leer
el mensaje de presentaci¢n.
Observa c¢mo hemos rotulado la presentaci¢n. La l¡nea 100
tiene el t¡tulo del programa mientras que la l¡nea 110,
contiene
una l¡nea entrecortada para enfatizar el mismo. La l¡nea 180 nos
avisa que el final de esta secci¢n se acaba
aqu¡. Esto
nos
sugiere que las instrucciones
precedentes han llenado su
cometido: PRESENTAR
EL PROGRAMA.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB210 MEJORANDO EL
PROGRAMA DE ARITMETICA 3 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Ahora, ataquemos la segunda falla: LAS INTRUCCIONES PARA
USAR EL PROGRAMA.
Nota que el programa no tiene instrucciones,
as¡ que debemos incluirla. Esta es la
forma en que las
a¤adimos...
200 'Imprime instrucciones
210 '---------------------
220 CLS
230
PRINT "Instrucciones:"
240
PRINT "-------------"
250 PRINT
260
PRINT " Se te
presentar n 10 problemas de aritm‚ticas."
270
PRINT " Despu‚s de
contestarlos todos"
280
PRINT " se te mostrar
la puntuaci¢n total"
290
PRINT " de los
problemas que contestaste correctamente."
300
PRINT
310 INPUT
"Presiona ENTER para continuar. ", e$
320 'Fin de las instructiciones.
Nota que esta secci¢n sigue el mismo patr¢n que la anterior:
EL NOMBRE DE LA SECCION SEGUIDO DE UNA LINEA
ENTRECORTADA PARA
ENFATIZARLO.
El cuerpo contiene el mensaje de
instrucci¢n
seguido de una sentencia INPUT para detener la
ejecuci¢n del
programa de modo que el usuario pueda leer el mensaje
desplegado
en pantalla. Ahora,
observa como hemos reconstruido la secci¢n
llamada Selecciona Operaci¢n...
340 'Selecciona operaci¢n
350 '--------------------
360 CLS
370 PRINT
"OPERACIONES:"
380 PRINT
390 PRINT
" + SUMA"
400 PRINT
" - RESTA"
410 PRINT
" x MULTIPLICACION"
420 PRINT
" / DIVISION"
430 PRINT
440 INPUT
"SELECCIONA OPERACTION: +, -, x, / ", o$
450
IF o$ = "X" THEN LET o$ = "x"
460
IF o$ = "+" OR o$ = "-" OR o$ = "x" OR o$
= "X"
OR o$ = "/"
THEN GOTO 520
470 'Selecci¢n rechazada.
480
PRINT : PRINT "POR FAVOR, SELECCIONA POR SIMBOLO."
490
PRINT
500
INPUT "Presiona ENTER para tratar de nuevo. ", e$
510
GOTO 340
520 'Selecci¢n aceptada.
530
GOTO 540 'Selecciona
grado de dificultad.
540 'Fin de selecciona operaci¢n.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB210 MEJORANDO EL
PROGRAMA DE ARITMETICA 4 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Ves c¢mo fluye la lectura. Observa c¢mo los subt¡tulos
Selecci¢n aceptada y Selecci¢n rechazada facilitan la lectura.
Cuando las selecci¢n escogida (o$) en la l¡nea 440, es como
las indicadas, la estructura l¢gica IF...THEN
la acepta en la
l¡nea 460, haciendo que la ejecuci¢n del
programa salte a la
l¡nea 520, donde la instrucci¢n ah¡ hace que
la ejecuci¢n del
programa salte a la l¡nea 540 donde otra instrucci¢n est lista
a
ejecutarse.
Si la selecci¢n escogida (o$) no es como las indicadas, las
instrucciones de la sub-secci¢n llamada Selecci¢n rechazada en
la
l¡nea 470 son ejecutadas. Es decir, que cuando la instrucci¢n
l¢gica OR es verdadera, significa que la
selecci¢n es aceptada
(l¡neas 520-540), sino, significa que la selecci¢n es
rechazada
(l¡neas 470-510).
Nota c¢mo esta secci¢n de Selecciona
operarac¢n est
estructurada.
Observa cu n f cil es leerla y entenderla. Si te
gust¢ la secci¢n previa, veamos la siguiente...
560 'Selecciona grado de dificultad
570 '------------------------------
580 CLS
590 PRINT
"SELECCIONA GRADO DE DIFICULTAD:"
600 PRINT
610 PRINT
" 1 ELEMENTAL"
620 PRINT
" 2 INTERMEDIO"
630 PRINT
" 3 AVANZADO"
640 PRINT
650 INPUT
"SELECCIONA POR NUMERO ", d$
660 LET d =
VAL(d$)
670 IF d
>= 1 AND d <= 3 THEN GOTO 730
680 'Selecci¢n rechazada.
690 PRINT :
PRINT "POR FAVOR, DIGITA 1, 2, ¢ 3."; ""
700 PRINT
710 INPUT
"Presiona ENTER para tratar de nuevo. ", e$
720 GOTO 560
730 'Selecci¢n aceptada.
740 GOTO
770 'Inicializa
variables.
750 'Fin de selecci¢n.
Compara la similitud que hay entre
esta secci¢n "Selecciona
grado de dificultad" con la anteriormente
presentada. Estas dos
secciones recientemente estudiadas son muy
importantes. En la
pr¢xima lecci¢n veremos por qu‚. Por ahora, observa c¢mo las
sentencias REM (') usadas hasta ahora han facilitado no
s¢lo la
lectura sino tambi‚n el entendimiento del programa.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB210 MEJORANDO EL
PROGRAMA DE ARITMETICA 5 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Pero hay m s a£n. Estudia
la siguiente....
820 'Resuelve problema
830 '-----------------
840 CLS
850 'Repite
problema.
860 LET P = P + 1
870 IF P = 11 THEN GOTO 1100
880 'Genera n£mero al azar.
890
RANDOMIZE TIMER
900 LET N1
= INT(RND * 10 ^ d) + 1
910 LET N2
= INT(RND * 10 ^ d) + 1
920 'Selecciona expresi¢n de
aritm‚tica.
930 IF o$
= "+" THEN LET s = N1 + N2
940 IF o$
= "-" THEN LET s = N1 - N2
950 IF o$
= "x" OR o$ = "X" THEN LET s = N1 * N2
960 IF o$
= "/" THEN LET s = N1 / N2
970 'Imprime problema.
980 PRINT
: PRINT "PROBLEMA"; P
990 PRINT
: PRINT " "; N1; o$; N2;
"=";
1000 'Entra respuesta.
1010 INPUT r$
1020 IF r$ =
" " OR r$ = "" THEN GOTO 970
1030 LET r =
VAL(r$)
1040 PRINT
1050 'Compara respuesta con soluci¢n
correcta.
1060 IF r = s THEN
PRINT "CORRECTO"
1070 IF r = s THEN LET
c = c + 1
1080 IF r <> s
THEN PRINT "INCORRECTO, EL RESULTADO ES "; s
1090 GOTO 850
1100 'Fin
repite problema.
1110 'Fin resuelve problema.
...secci¢n del programa. OBSERVA COMO LAS
SUB-SECCIONES
SIMPLIFICAN LA LECTURA DE TODA LA SECCION. Nota c¢mo las l¡neas
adonde el enunciado GOTO hace saltar la ejecuci¢n
del programa
comienzan con un enunciado REM (') que explica
la raz¢n del
salto. ESTO ES MUY
IMPORTATE! En la pr¢xima
lecci¢n ver s por
qu‚". Y
descubrir s, tambi‚n, c¢mo esta secci¢n contiene a su
vez otras estructuras que encontrar s en casi todos los
programas
Basic.
Ahora, te daremos el listado del programa de
aritm‚tica
completo. Dig¡talo
y ejec£talo. Est£dialo
cuidadosamente. Mira
c¢mo est
estructurado.
Cu n f cil se hace leerlo. Cu n
gratificante y seguro (sin ninguna interrupci¢n repentina)
es su
ejecuci¢n.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB210 MEJORANDO EL
PROGRAMA DE ARITMETICA 6 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Pero, a pesar de lo dicho, te sorprender s si te digo
que
ESTE PROGRAMA NECESITA MEJORARSE MAS TODAVIA! En la pr¢xima
lecci¢n ver s que esto es muy cierto. Hasta luego!
100 'Programa de Aritm‚tica
110 '----------------------
120 CLS
130
PRINT "PROGRAMA DE ARITMETICA"
140
PRINT "Un programa Basic"
150
PRINT "escrito por Rey Rios"
160
PRINT
170
INPUT "Presiona ENTER para continuar. ", e$
180 'Fin de la presentacion.
190 '
200 'Imprime instrucciones
210 '---------------------
220 CLS
230
PRINT "Instrucciones:"
240
PRINT "-------------"
250
PRINT
260
PRINT " Se te
presentar n 10 problemas de aritm‚ticas."
270
PRINT " Despu‚s de
contestarlos todos"
280
PRINT " se te mostrar
la puntuaci¢n total"
290
PRINT " de los
problemas que contestaste correctamente."
300
PRINT
310
INPUT "Presiona ENTER para continuar. ", e$
320 'Fin de las instructiciones.
330 '
340 'Selecciona operacion
350 '--------------------
360 CLS
370 PRINT
"OPERACIONES:"
380 PRINT
390 PRINT
" + SUMA"
400 PRINT
" - RESTA"
410 PRINT
" x MULTIPLICACION"
420 PRINT
" / DIVISION"
430 PRINT
440 INPUT
"SELECCIONA OPERACTION: +, -, x, / ", o$
450
IF o$ = "X" THEN LET o$ = "x"
460
IF o$ = "+" OR o$ = "-" OR o$ = "x" OR o$
= "X" OR o$ = "/" THEN GOTO 520
470 'Selecci¢n rechazada.
480
PRINT : PRINT "POR FAVOR, SELECCIONA POR SIMBOLO."
490
PRINT
500
INPUT "Presiona ENTER para tratar de nuevo. ", e$
510
GOTO 340
520 'Selecci¢n aceptada.
530
GOTO 540 'Selecciona
grado de dificultad.
540 'Fin de selecciona operaci¢n.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB210 MEJORANDO EL
PROGRAMA DE ARITMETICA 7 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
550 '
560 'Selecciona grado de dificultad
570 '------------------------------
580 CLS
590 PRINT
"SELECCIONA GRADO DE DIFICULTAD:"
600 PRINT
610 PRINT
" 1 ELEMENTAL"
620 PRINT
" 2 INTERMEDIO"
630 PRINT
" 3 AVANZADO"
640 PRINT
650 INPUT
"SELECCIONA POR NUMERO ", d$
660 LET d =
VAL(d$)
670 IF d >=
1 AND d <= 3 THEN GOTO 730
680 'Selecci¢n rechazada.
690 PRINT :
PRINT "POR FAVOR, DIGITA 1, 2, ¢ 3."; ""
700 PRINT
710 INPUT
"Presiona ENTER para tratar de nuevo. ", e$
720 GOTO 560
730 'Selecci¢n aceptada.
740 GOTO
770 'Inicializa
variables.
750 'Fin de selecci¢n.
760 '
770 'Inicializa variables
780 '--------------------
790 LET
Q = 0: c = 0: P = 0
800 'Fin de inicializaci¢n.
810 '
820 'Resuelve problema
830 '-----------------
840 CLS
850 'Repite
problema.
860 LET P = P + 1
870 IF P = 11 THEN GOTO 1100
880 'Genera n£mero al azar.
890
RANDOMIZE TIMER
900 LET N1
= INT(RND * 10 ^ d) + 1
910 LET N2
= INT(RND * 10 ^ d) + 1
920 'Selecciona expresi¢n de
aritm‚tica.
930 IF o$
= "+" THEN LET s = N1 + N2
940 IF o$
= "-" THEN LET s = N1 - N2
950 IF o$
= "x" OR o$ = "X" THEN LET s = N1 * N2
960 IF o$
= "/" THEN LET s = N1 / N2
970 'Imprime problema.
980 PRINT
: PRINT "PROBLEMA"; P
990 PRINT
: PRINT " "; N1; o$; N2;
"=";
1000 'Entra respuesta.
1010 INPUT r$
1020 IF r$ =
" " OR r$ = "" THEN GOTO 970
1030 LET r =
VAL(r$)
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ QB210 MEJORANDO EL
PROGRAMA DE ARITMETICA 8 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
1040 PRINT
1050 'Compara respuesta con soluci¢n correcta.
1060 IF r = s THEN
PRINT "CORRECTO"
1070 IF r = s THEN LET
c = c + 1
1080 IF r <> s
THEN PRINT "INCORRECTO, EL RESULTADO ES "; s
1090 GOTO 850
1100 'Fin repite
problema.
1110 'Fin resuelve problema.
1120 '
1130 'Imprime puntuaci¢n final
1140 '------------------------
1150
LET P = P - 1
1160
PRINT
1170
PRINT "PUNTUACION FINAL : "; c; " CONTESTACIONES
CORRECTAS DE "; 10
1180 'Fin imprime puntuaci¢nb final.
1190 '
1200 'Repite programa
1210 '---------------
1220 PRINT : PRINT
1230
PRINT "QUIERES REPETIR EL PROGRAMA(S/N)";
1240
INPUT r$
1250 IF
r$ = "S" OR r$ = "s" THEN GOTO 1280
1260 IF
r$ = "N" OR r$ = "n" THEN GOTO 1300
1270
GOTO 1200
1280 'Repite programa.
1290 GOTO
100 'Presenta programa.
1300 'Deja programa.
1310 GOTO
1350 'Imprime mensaje de
despedida.
1320
GOTO 1200
1330 'Fin repite programa.
1340 '
1350 'Imprime mensaje de despedida
1360 '----------------------------
1370
CLS
1380
PRINT "EL PROGRAMA SE TERMINO"
1390
PRINT
1400
PRINT "HASTA LUEGO!"
1410 'Fin del mensaje.
1420 END