Obtén unha declaración adecuada

Arrojeria, Eustakio

Elhuyar Zientziaren Komunikazioa

Lizaso, Pili

Informatika Saila

Elhuyar Fundazioa

Nesta ocasión volvemos cun xogo de números. É bastante simple, pero entretida, e creemos que pode ser adecuada paira practicar operacións básicas. Ademais e como sempre, tentaremos explicarvos algunhas das partes do programa.

Imos dar a coñecer as regras do xogo:

  1. Mostrarase un conxunto numérico de 1 a 25.
  2. O programa calculará o valor numérico dunha expresión composta por catro números e
    operadores (+,–,*) dos seguintes.
  3. Deberás obter una expresión que dea este valor como resultado. Paira
    iso poderás utilizar os operadores (+,–,*) e 4 números do conxunto. Dado que
    pode haber máis dunha declaración que achegue o mesmo valor, calquera delas será considerada como
    boa, aínda que non sexa avaliada polo programa.

Observacións:

  • Non se poden repetir números e operadores.
  • Deberán utilizarse todos os axentes (+,–,*).
  • Na avaliación da declaración non se terán en conta os niveis de prioridade dos axentes.
    Aplicaranse de esquerda a dereita.
    Ex. 3 + 4 *2 = 14 e non 11

Como poderías comprobar, o operador '/' non se tivo en conta e foi debido a que o programa
toma aleatoriamente números e operadores na formulación da expresión e o uso de '/'
pode facer que as divisións a realizar non sexan completas, con números decimais. Non quixemos
complicar demasiado o xogo e por iso pareceunos máis adecuado deixalo fose.

O programa divídese nas seguintes partes.

    40-50: Almacenar os números e símbolos a utilizar
    60: Definir as posicións dos 8 números do conxunto
    70-130: De 1 a 25 tomar 8 aleatoriamente
    140-260: Avaliar a medida que vaia xurdindo a declaración
    270-320: Aparición da pantalla de presentación e resposta do usuario
    330-510: Avaliar a declaración emitida polo usuario
  • 520-600: Verificación da resposta

Avaliar a declaración emitida polo usuario

Esta expresión (ERAN$) será una cadea de caracteres paira o programa. Por tanto, tamén son significativos os
espazos en branco e negro implicados. Analizar a cadea de caracteres en caracteres,
distinguindo entre temas (cadeas numéricas) e axentes (+,–,*) e calculando simultaneamente o valor
da expresión.

Paira esta distinción hai que ter en conta que no rango
de dous temas poden existir unicamente axentes ou espazos por diante e por detrás do axente.

10(1) OBTER O 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 e axentes
(+,-,*)
do grupo como resultado ";NUM;":LOCATE 19,5:PRINT ": ASUNTO 1$


EN FORMA









DE






THE,RF



Noticias
Conseguíchelo"; ELSE PRINT
"Non acertaches. A declaración pode ser: ";
530 LOCATE 25,20:PRINT "Desexa continuar (S/N/?"
540 CHE$=INKEY$:WHILE CHE$ "":CHE$=INKEY$:WEND
550 WHILE$ "B" AND CHE$ "b" AND CHE$ "E" AND CHE$ "e":
CHE$=INKEY$:WEND
560 IF CHE$="B" OR CHE$="b"THEN 30
570 LOCATE 23,1:PRINT SPC(79):LOCATE 25,1:PRINT SPC(79):LOCATE 22,30:
PRINT "Adeus até outro! ";
CONSEGUIR NUMERO 580 END
600 REMN AMAIA

Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila