Obtén una declaración adecuada

Arrojeria, Eustakio

Elhuyar Zientziaren Komunikazioa

Lizaso, Pili

Informatika Saila

Elhuyar Fundazioa

En esta ocasión volvemos con un juego de números. Es bastante simple, pero entretenida, y creemos que puede ser adecuada para practicar operaciones básicas. Además y como siempre, intentaremos explicaros algunas de las partes del programa.

Vamos a dar a conocer las reglas del juego:

  1. Se mostrará un conjunto numérico de 1 a 25.
  2. El programa calculará el valor numérico de una expresión compuesta por cuatro números y
    operadores (+,–,*) de los siguientes.
  3. 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.

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
    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
  • 520-600: Verificación de la respuesta

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

Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila