CvdB

    programa en Basic para el juego de los dos baldes

    APENDICE.

    10. REM JUEGO DE LOS DOS BALDES
    15. REM INICIALIZACION
    20, CLEAR
    25. DIM X(30), XX(30),Y(35),P(7),R(7),Z(30):REM X y XX son abiertas, Y es cerrada y Z es auxiliar
    30, INPUT "VOL.CHICO (p.ej.3)", C
    35, INPUT "VOL.GRANDE (p.ej.4)", G
    40, IF G< C then print "ERROR EN VALORES"
    45. INPUT "SUMANDO (p.ej. 1)", K
    50. IF K >=C-1 THEN GOSUB 5400
    55. GOL=G-C+K: AB=1: REM AB es largo de abierta,
    57, PAUSE "GOL", GOL
    60. POR N=O TO 35:REM Ciclos
    65. REM Cuerpo Pasaje de lista
    70. J=1: PR= XX(J)
    74. POR K=1 TO 1+INT (.8*N)
    75. POR I=1 TO CE: REM CE es largo de cerrada
    80, IF INT PR = INT Y(I) THEN LET J=J+1
    85. IF INT PR = INT Y(I) THEN LET PR XX(J)
    90. NEXT I: NEXT K
    95. POR I=1 TO AB-1: Z(I) = XX(J+I): NEXT 1: REM Corrida por salida de PR
    97. POR I=AB TO AB+5:Z(I)=O:XX(I)=O:NEXT I
    100. POR I=1 TO AB:XX(I)=Z(I):NEXT I
    105, DJ=INT PR:DK=PR*10- INT(PR*10)
    114. PAUSE "PR=",PR 116. CE=CE+1: Y(CE)=PR: REM Incorporación del preferido a cerrada
    120. REM Operadores
    125. REM Exito
    130. IF INT PR=GOL THEN GOTO 900
    135. A9=PR-INT PR: A8 = A9*10^DI
    140. IF A8 - INT A8> 0
    THEN LET DI = DI+l
    145, A = INT (PR/10): B = INT PR- 1O*A
    150. GOSUB 5500
    160. GOSUB 5600
    170. GOSUB 5700
    180. GOSUB 5800
    190, GOSUB 5900
    200. GOSUB 6000
    210. REM Ingreso a abierta
    220, J=O
    230. FOR I= AB TO AB+6: J=J+l:XX(I)=R(J):NEXT I
    240. AB=AB+6 250. REM Muerte duplicados de abierta y de privilegiado
    260. FOR I=1 TO AB: Z(I)=XX(I):NEXT I
    280, FOR I=1 TO AB
    290. FOR J=1 TO AB
    300. IF I=J THEN GOTO 340
    310. IF XX(I)=0 THEN GOTO 390
    320. IF INT XX(J) = INT PR THEN LET XX(J)=0
    330, IF INT XX(J)=INT Z(I) THEN LET XX(J)=0
    340. NEXT J
    350. NEXT I
    360. L=0: FOR I=1 TO AB 3709 IF XX(I)=Z(I) THEN LET L=L+1
    380. IF XX(I)=Z(I) THEN LET X(L)=XX(I)
    390, IF XX(I)=Z(I) THEN LET XX(L)=X(L)
    400, NEXT I
    410. AB=L
    420, REM Fracaso
    430. A7=N+PR-INT PR: IF A7 <3 THEN GOTO 460
    440. IF A7- INT A7> 0 THEN GOTO 460. PRINT "Fracaso":GOTO 410
    460. NEXT N 470. END
    500. PAUSE "Exito con". PR
    510, PAUSE "Trayecto=", PRINT PR
    520. PAUSE "Numero nodos revisados=",CE
    540. GOTO 15
    3400. PAUSE "Achicar sumando, valor grande"
    5410. RETURN
    5500, REM Operador 1
    5510. H=1:P(H)=(A*1)*10
    5520. GOSUB 6100
    5530. RETURN
    5600, REM Operador 2
    5610, H=2:P(H)=B*1 + (A*O)*10
    5620. GOSUB 6100 5630. RETURN 5700, REM Operador 3
    5710, H=3:
    5720. IF A+B > G THEN GOTO 57 50 5730. P(H)=(A+B)*10
    5740. GOTO 5770 5750. AU=(G-A)/B
    5760. PM=(A+B*AU)*10+(1-AU)*B
    5770. GOSUB 6100
    5780. RETURN
    5800. REM Operador 4
    5810. H= 4
    5820. IF A=0 THEN GOTO 5850
    5830, AU=A+B-C:AU=AU/A
    5835. IF AU 5840,P(H)=A*AU*1O+A*(1-AU)+B*1
    5845. GOTO 5875
    5850. P(H)=INT PR
    5860. GOTO 5875 5870. P(H)=A+B
    5875. GOSUB 61oo 5880. RETURN
    5900. REM Operador 5
    5910. H=5: P(H)= A*10 + C
    5920. GOSUB 6100
    5930. RETURN
    6000, REM Operador 6
    6010. H=6: P(H)= G*10+B*1
    6020. GOSUB 6100
    6030. RETURN
    6100. REM ESTADO + TRAYECTO
    6110, BC=10
    6130. R(H)=(P(H)*10^DI+H/BC)/(10^DI)+A9:RETURN

    PRIMER EJEMPLO DE APLICACION C = 39 G m 4, Sumando = 1 GOL es 6 2 (2L en chico)

    El primer PR os 0, significa estado inicial 0 0

    El segundo es 3.5 que significa mediante el operador 5 se obtiene el estado 0 3

    El tercero es 40.6 (con el operador 6 se logra el estado 4 0 (4 L en grande))

    El cuarto es 30.53 (significa primero aplicar el operador 5 Y luego el 3 .0 sea primero llenar el chico y luego pasar del chico al grande, resultando 3 0 que implica 3 L en el grande)

    El quinto es 43.56 (significa llenar ambos baldes, resultando ambos baldes llenos

    El sexto es 13.64 (significa llenar el grande y transferir de grande a chico, quedando 1 L en grande y 3 L en chico, o sea estado 13 y trayectoria 64.

    El séptimo es 33.535 (hay que usar tres operadores sucesivamente, los dos primeros coinciden con el cuarto y el último repite el llenado del chico, el resultado son 3 L en cada balde , de allí 33)

    El octavo es 10.641 (o sea con la trayectoria 641, sucesora del sexto PR, se llega al estado 1 0 , o sea un litro en el grande)

    El noveno es 42.5353 (con la trayectoria 5353 se llega al estado 42)

    El décimo es 1.6414,

    El final (éxito) es 2.53532 (se obtiene el GOL = 02 repitiendo dos veces las operaciones del cuarto y luego vaciando el grande)

    Queda claro que los sucesivos estados son 00, 03, 30, 33, 42 y gol.

    SEGUNDO EJEMPLO DE APLICACION

    C = 8, G = 9, Sumando = 5, GOL es 06 (6 L en chico)

    El primer PR es 0; significa estado inicial 0 0

    Luego 8,5 (con el operador 5 se llega al estado 8 L en chico, 0 8)

    Luego 90.6 (con el operador 6 es llega a 9 L en grande 9 0)

    Luego 80.53 (cm los dos operadores secuenciales 5 v 3 es llega a estado 8 0)

    Luego 98,56 (llenando ambos baldes, ambos quedan llenos en el estado 9 8)

    Luego 18.64 (se llena el grande y se transfiere al chico a ras, quedan 1 8)

    Luego 88,535 (oon la secuencia 535 se logra el estado 8 8 9 8 L en cada uno)

    Luego 10.641 (con la secuenoia 641 se logra el estado 1 0 y 1 L en grande)

    Luego 97,5353 (se repito dos veces la secuencia 53 de operadores)

    Luego 1.6414

    Luego 7.53532 (al oaso anterior es sigue drenando el grande, tenemos 7 L en chico

    Luego 70.535323 (al caso anterior, ahora se transfiere de chico a grande)

    Luego 78,5353235

    Luego 96,53532353

    Finalmente 6.535323532 que es gol. La rutina exitosa es empezar con operador 5 y luego repetir dos veces la secuencia 3532. Buen éxito.

    TERCER EJEMPLO DE APLICACION, con C= 6 G=9 Sumando = 2; GOL=05 El primer PR es como siempre 0 0 El segundo es 6.5; el tercero es 90,6; el cuarto es 60.53; el quinto es 96,56; el sexto es 36.64; el séptimo 66,535; el octavo 30.641; el noveno 93.5353; el décimo 3.6414 . Fracaso (no hay novedades en la lista abierta

    • a

    • a

    13.may.2001

    Pulsar tecla de vuelta

    Vuelta a Portada


    Glosario de Bioingeniería del Conocimiento - Carlos von der Becke.