Obtingues una declaració adequada

Arrojeria, Eustakio

Elhuyar Zientziaren Komunikazioa

Lizaso, Pili

Informatika Saila

Elhuyar Fundazioa

En aquesta ocasió tornem amb un joc de números. És bastant simple, però entretinguda, i creiem que pot ser adequada per a practicar operacions bàsiques. A més i com sempre, intentarem explicar-vos algunes de les parts del programa.

Donarem a conèixer les regles del joc:

  1. Es mostrarà un conjunt numèric d'1 a 25.
  2. El programa calcularà el valor numèric d'una expressió composta per quatre números i
    operadors (+,–,*) dels següents.
  3. Hauràs d'obtenir una expressió que doni aquest valor com a resultat. Per a això
    podràs utilitzar els operadors (+,–,*) i 4 números del conjunt. Atès que
    pot haver-hi més d'una declaració que aportació el mateix valor, qualsevol d'elles serà considerada com a bona,
    encara que no sigui avaluada pel programa.

Observacions:

  • No es poden repetir números i operadors.
  • Hauran d'utilitzar-se tots els agents (+,–,*).
  • En l'avaluació de la declaració no es tindran en compte els nivells de prioritat dels agents.
    S'aplicaran d'esquerra a dreta.
    Ex. 3 + 4 *2 = 14 i no 11

Com hauràs pogut comprovar, l'operador '/' no s'ha tingut en compte i ha estat pel fet que el programa
pren aleatòriament números i operadors en la formulació de l'expressió i l'ús de '/'
pot fer que les divisions a realitzar no siguin completes, amb nombres decimals. No hem volgut
complicar massa el joc i per això ens ha semblat més adequat deixar-lo fos.

El programa es divideix en les següents parts.

    40-50: Emmagatzemar els números i símbols a utilitzar
    60: Definir les posicions dels 8 números del conjunt
    70-130: D'1 a 25 prendre 8 aleatòriament
    140-260: Avaluar a mesura que vagi sorgint la declaració
    270-320: Aparició de la pantalla de presentació i resposta de l'usuari
    330-510: Avaluar la declaració emesa per l'usuari
  • 520-600: Verificació de la resposta

Avaluar la declaració emesa per l'usuari

Aquesta expressió (EREN$) serà una cadena de caràcters per al programa. Per tant, també són significatius els
espais en blanc i negre implicats. Analitzar la cadena de caràcters en caràcters,
distingint entre temes (cadenes numèriques) i agents (+,–,*) i calculant simultàniament el valor
de l'expressió.

Per a aquesta distinció cal tenir en compte que en el rang
de dos temes poden existir únicament agents o espais per davant i per darrere de l'agent.

10(1) OBTENIR EL NÚMERO REM
20 DIM DIG(25):DIM AUK(8):DIM
POSI(8,2):DIM SIGNE(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 Has d'escriure una expressió amb 4 números i agents
(+,-,*)
del grup com a resultat ";NUM;":LOCATE 19,5:PRINT ": ASSUMPTE 1$


EN


FORMA






DE THE,RF










Notícies
Ho has aconseguit"; ELSE PRINT
"No has encertat. La declaració pot ser: ";
530 LOCATE 25,20:PRINT "Desitja continuar (S/N/?"
540 ET$=INKEY$:WHILE ET$ "":ET$=INKEY$:WEND
550 WHILE$ "B" AND ET$ "b" AND ET$ "E AND" ET$ "e :"
ET$=INKEY$:WEND
560 IF ET$="B" OR ET$="b"THEN 30
570 LOCATE 23,1:PRINT SPC(79):LOCATE 25,1:PRINT SPC(79):LOCATE 22,30:
PRINT "Adéu fins un altre! ";
ACONSEGUIR NUMERO 580 END
600 REMN AMAIA

Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila