Obtén una declaración adecuada
1988/10/01 Arrojeria, Eustakio - Elhuyar Zientziaren Komunikazioa | Lizaso, Pili - Informatika SailaElhuyar Fundazioa Iturria: Elhuyar aldizkaria
Vamos a dar a conocer las reglas del juego:
- Se mostrará un conjunto numérico de 1 a 25. El programa calculará el valor numérico de una expresión compuesta por cuatro números y
- Deberás obtener una expresión que dé este valor como resultado. Para
ello podrás utilizar los operadores (+,–,*) y 4 números del conjunto. Dado
que puede haber más de una declaración que aporte el mismo valor, cualquiera de ellas será considerada como
buena, aunque no sea evaluada por el programa.
operadores (+,–,*) de los siguientes.
Observaciones:
- No se pueden repetir números y operadores. Deberán utilizarse todos los agentes (+,–,*).
- En la evaluación de la declaración no se tendrán en cuenta los niveles de prioridad de los agentes.
Se aplicarán de izquierda a derecha.
Ej. 3 + 4 *2 = 14 y no 11
Como habrás podido comprobar, el operador '/' no se ha tenido en cuenta y ha sido debido a que el programa
toma aleatoriamente números y operadores en la formulación de la expresión y el uso de '/'
puede hacer que las divisiones a realizar no sean completas, con números decimales. No hemos querido
complicar demasiado el juego y por eso nos ha parecido más adecuado dejarlo fuera.
El programa se divide en las siguientes partes.
- 40-50: Almacenar los números y símbolos a utilizar
- 520-600: Verificación de la respuesta
60: Definir las posiciones de los 8 números del conjunto
70-130: De 1 a 25 tomar 8 aleatoriamente
140-260: Evaluar a medida que vaya surgiendo la declaración
270-320: Aparición de la pantalla de presentación y respuesta del usuario
330-510: Evaluar la declaración emitida por el usuario
Evaluar la declaración emitida por el usuario
Esta expresión (ERAN$) será una cadena de caracteres para el programa. Por lo tanto, también son significativos los
espacios en blanco y negro implicados. Analizar la cadena de caracteres en caracteres,
distinguiendo entre temas (cadenas numéricas) y agentes (+,–,*) y calculando simultáneamente el valor
de la expresión.
Para esta distinción hay que tener en cuenta que en el rango
de dos temas pueden existir únicamente agentes o espacios por delante y por detrás del agente.
10(1) OBTENER EL NÚMERO REM
20 DIM DIG(25):DIM AUK(8):DIM
POSI(8,2):DIM SIGNO(3)
30
CLS:SCREEN 2:KEY OFF:RANDOMIZE TIMER
40=POSI
POSI(3,2)=13:POSI(4,1)=7:POSI(4,2)
=20:POSI(5,1)=9:POSI(5,2)=5:POSI(6,1)=11:POSI(6,2)=8:POSI(7,1)=10:
POSI=1AUM=1FN
PRINT "-------------------"
280 CIRCLE
(100,65),100 290 FOR I=1 TO 8:LOCATE POSI(I,1),POSI(I,2):PRINT
AUK(I) 16,300 EXNINT ";ZENB
320 LOCATE 18,5:PRINT Debes escribir una expresión con 4 números y agentes
(+,-,*)
del grupo como resultado ";NUM;":LOCATE 19,5:PRINT ": ASUNTO 1$
EN
FORMA
DE
THE,RF
Noticias
Lo has conseguido"; ELSE PRINT
"No has acertado. La declaración puede ser: ";
530 LOCATE 25,20:PRINT "Desea continuar (S/N/?"
540 TE$=INKEY$:WHILE TE$ "":TE$=INKEY$:WEND
550 WHILE$ "B" AND TE$ "b" AND TE$ "E" AND TE$ "e":
TE$=INKEY$:WEND
560 IF TE$="B" OR TE$="b"THEN 30
570 LOCATE 23,1:PRINT SPC(79):LOCATE 25,1:PRINT SPC(79):LOCATE 22,30:
PRINT "¡Adiós hasta otro! ";
CONSEGUIR NUMERO 580 END
600 REMN AMAIA