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
13.may.2001
Pulsar tecla de vuelta
Vuelta a Portada
Glosario de Bioingenier�a del Conocimiento - Carlos von der Becke.