Está en la página 1de 148
RICARDO AGUADO-MUNOZ AGUSTIN BLANCO ENRIQUE RUBIALES JAVIER ZABALA RICARDO ZAMARRENO PROGRAMAS COMENTADOS DE BASIL BASILO De los mismos autos BASIC BASICO CURSO DE PROGRAMACION Es un libro de testo o divalgtivo fruto de la experiencia dictica de tes ‘aioe en el fnetiuto Pilato eCardenal Herrera Oran [Expica la programacién en BASIC. Muchos de los ejercicios que propone = esuelien en el libeo Programas Comentados de BASIC BASICO, BASIC JUNIOR INICIACION A LA PROGRAMACION Esti destinado a esolares y principiantes. Es formative y ameno, Tiene mumerosos elemplos divertidos BASIC JUNIOR te invita a jug el apssionante juego dela programacin de ‘ordenadores PROGRAMAS EXPLICADOS DE BASIC JUNIOR Resusive Ios cien programas propusstos en el libro BASIC JUNIOR. Inicacidn 2 Ja Programacién ‘Ademis de ofrecer Ios cin lstades, comprobados en ordenaor,explica los Paros mas importantes o de mayor difcultad de cade prosraina PROGRAMAS COMENTADOS DE BASIL BASICO RICARDO AGUADO-MUROZ AGUSTIN BLANCO ENRIQUE RUBIALES JAVIER ZABALA RICARDO ZAMARRENO DIRECCION DE LOS AUTORES: JAVIER ZABALA RICARDO ZAMARRENO Vitrubio, 3 Bristol, 0 - 9° iada, 28006 MADRID 28028 MADRID. DISTRIBUYE: GRUPO DISTRIBUIDOR EDITORIAL. S. A. Don Ramén de a Cruz, 67 28001 MADRID ‘Tino: 91-401 1200 4 300: aiiembre 1963 ‘cig: mayo 1384 5 den: ccure 7004 6 edeion: azo 1885, 7) sen: mayo 1685, Resarados tedos los derechos. Os polis repreducon ttl paral le eta ces si provo conceiento > stot de los autores, Eaton (© learde Aguedo-Muioz, Agustin Blanco, Enigue Rubies, Javier Zable y Ricardo Zamareio Tse ne4-caa-0sa0-2 Deptt laa 16167-10905 Impnme: Hos de. Minuese, 5. L. Ronde de Toledo, 24. 28008 Madi Foteconpone: SALME, 8: A. Juan de Oles, 12. 25000 Mach INDICE PRESENTACION . . ADVERTENCIAS RUTINAS DE USO FRECUENTE 1. JUEGOS r B. 4 15. 16. a7 18. 19. 20, 21 2. 23, 24, 25, 26, 21. Adivina un némero . Carretera beets Carreras de caballos (7.12) Ruleta rusa (inofensiva) Tiro al plato «2.2.02... ‘Submarino inmovil (7.22) Submarino : ve Juego del submarino mévil (7.23) Ruleta (6.25) Ogres Master Mind .. Las siete y media (7.16) .. SIMULACIONES.. Loteria (6.24) .. Lanzamiento de una moneda (6.16) .. iQué quiniela! Quiniela millonaria ... La bafera (4.9) Peed diebebitt Campanadas (4.11) ee Suma de los puntos de un dado Frecuencias relativas de un dado Estabilizacion de las frecuencias (6.19) La coleccién de cromos (7.20) El destino de una urna (7.21) .. Elecciones (7.10) Baraja (7.15) Ruido de una informacion Deformacionés de un mensaje .. 1 2B 21 31 33 36 38 40 42 43 47 30 55 59 6 65 66 a 68 R 5 6 n 0 81 3 85 88 Rumores .... Ete itadaseee 93 61, Clavos y cuerdas 180 a Caleulo de x (629) - 96 62, Espiral ... - . . eee ws 182 30. La aguja de Buffon + 98 63. Trébol . . 184 31. Caza de barcos (6.28) . wees Ft oe 100 ‘32, Trenes (6.56) eh + 13 1 6 GESTION 187 33. Generador de frases .....-2 +++ + 107 ~ 64. Factura..... oe aa 18s S65, Cambio de divses 66) : E 19% 3. TEXTOS I - at 7 + 66, El recibo de la luz (4.30)... 193 34, Supresion de espacios (6.51) 113 \ 61. Anualidad constante 195 35. Vocales que hay en vna frase . 14 68, Venta de billetes (6.38) 198 \36, Frecuencia de un caracter (6.49) sees 16 69, Taquilla automatica (4.24) 201 37, Flechazo al ordenador (6.27) . 118 70. Hiper. - . 203 “38. Frecuencia de una palabra .--.. +--+ sects 120 11. Ordenacion alfabétion 1.17) F 208 39. Conjugacién........ adaeeie atest 122 72. Ordenacién por inserci6n ....0..00000 209 40. Mensaje secreto . 124 73. Ordenacién por edades (7.7) .. 5 . . 213 41. Morse Eide 7 14, Geografia econdmica (9.24) : 215 42. Poesia aleatoria wee . 129 75. Creacion de un fichero ... Peereerereeeeeees 28 43. Giro de letras (6.41) ,.....-.+ . . 7 132, 76. Sectores industriales oe 7 eee 221 4, GRAFICOS 138 7. MATEMATICAS 225 44, Bandera USA. Pera fee S77, Tablas de sumar.......20.0085 ass 20 45, Evolucion de la poblacibn (615) : pee EIS? fe eifilighecsr suis ta) on 46, Diagrama de barras horizontales ..... +++ 140 79. Dividir restando (48) : ‘ : Ed 47, Diagrama de barras verticales Seeceeteereees MB $0, Soma de potinomios (812) at of ce a Asean eae eect 1, Suma de fils y columnas en una tabla (75) 234 49, ‘Representaclon gifica de fonciones 149 set coriesa aseagaee ttt Hoe a 50. Recta entre 2 puntos (6.42) a 83. Conversion de longitudes (4.22) ae 237 3. COLOR Y ALTA RESOLUCION .. Fl - 17 i Sea a eee 3» COLOR Y ALTA RESOLUCION sae deen 159 86. Nuimeros primos (6.3) I eee 243 SL. Bandera de franjas horizontales .. 160 87. Descomposicién en factores primos (64). 244 52. Bandera de franjas verticales .... feces 16 88. Maximo comin divisor (6.5) : ” 245 53. Mondrian.......sssescreeve 162 : $89, Tabla de valores de una funcién (643) 247 54. Espiguilla wees 164 90. Cuadrado perfecto (69) - rl 248, 53. La hormiga mareada 167 91, Capictia (6.11) cece 250 56. Escudo 169 ' 92. La vaca y el prado (6.31) Fe aaeeaat 252 57, Flor de eircunferencias - “ im ~93, Area de un poligono «2.1.01 see. 254 58. Hez de reetas . 173 94, Método de biparticién (645) «+++ del tele EOS 59. Poligono regular 115 95. Método de la secante 7 eo) 60. Estrella 7 96. Pantano .. Ht 7 vee 26L 7 97, 98, 99. 100. 101 102. 103. 104. 105, 106. 107, 108. CUADRO SINOPTICO Lago. Dia de Is semana Viaje relativista Refraccién Tabla y su traspuesta (7.8) Maltiplicacion de dos tablas Tringulo de Tartaglia Valores aproximados del seno (5.11) Variables aleatorias bidimensionales Sistemas de ecusciones Interpolacién (9.15) Integracién numérica 264 266 268 269 2m 213 25 20 279 281 284 286 288 PRESENTACION La coleccién de programas que te ofrecemos tiene un fin didictico: aprendas a programar ordenadores. Cada enunciado debe ser un desafio. Estis obligado a escribir un programa que funcione y a compararlo con el que te ofrecemos; y si no coincide con la solucién propuesta, jtanto mejor!; y si, ademas, es mas corto, més claro, més clegante y més eficaz que el nuestro, entonces alégrate y siente la intima satisfaccién del artista, Porque, efectivamente, la programacién de ordenadores, amén de ser una isciplina mental que desarrolla los habitos de razonamiento l6gico y la capa- ‘idad de anilisis de los problemas, es también un arte; y, como tal, su plas macién en un ordenador refleja la manera de pensar, de razonar y, sobre todo, de imaginar del programador. Frente a la visién terrorifica del ordenador-que-nos-controla y frente @ esa imagen publicitaria del ordenador-que-todo-lo-hace, nosotros queremos insistir en €l ordenador como instrumento de expresién cientifica, artistica y lidica. Y puesto que el ordenador va ¢ entrar en las escuelas y en los hogares, queremos ‘que nuestros nitios y jovenes dominen al ordenador, no que sean dominados por él. Pensando en ellos hemos escrito este libro. Si ti, amigo lector, ya no eres un cheval, haz como silo fueras, de lo contrario no entraris en el reino de la programacién Con estos deseos hemos decidido recoger y editar Ia presente coleccién de Programas comentados le BASIC BASICO. Y, también, con la esperanza de que ‘sea acogido por el piblico con la misma simpatia y benevolencia que nuestro anterior BASIC BASICO Curso de programacién, al cual responden muchos de los programas aqui comentados LOS AUTORES ADVERTENCIAS PROGRAMAS “TODO TERRENO” Hemos pretendida que Jos programas “funcionen” en cualquiera de los ordenadores existentes en el mercado. Esta pretension de universalidad hace que algunos de ellos no sean los ideales para un aparato concreto. Apelamos ‘atu inteligencia y buena voluntad para que, utilizando las ventajas de 1u orde- nador, des soluciones més simples y elegantes a los problemas aqui propuestos, REFERENCIAS AL LIBRO “BASIC BASICO” Cada programa de este libro tiene un nombre. Muchos de ellos van seguidos de dos nimeros entre paréntesis. Por ejemplo: TAQUILLA AUTOMATICA (4.24), Esto indiea que el programa responde al ejercicio 4.24 del libro BASIC BASICO, CURSO DE PROGRAMACION. MEJORA DE LOS PROGRAMAS Hemos procurado presentar programas cortos y no repetir en exceso ciertas rutinas. Por esta razén, quiz4 haya programas que puedan ser mejorados por elector con la simple adicién de algunas lineas, que encontrar en otros pro- jpramas o en el apartado de RUTINAS DE USO FRECUENTE. CUADRO DE INSTRUCCIONES EMPLEADAS Al final del libro presentamos una tabla, indicando qué instrucciones fun damentales se manejan en cada programs. Hemos omitido aquellas que, como PRINT e INPUT, son utilizadas en casi todos Jos programas. RUTINAS En las paginas 23, 24, 25 y 26, recogemos las RUTINAS DE USO FRE- CUENTE, que unas veces hemos utilizado y otras no, por no recargar los pro- grammes. a LONGITUD DE LOS PROGRAMAS Por motivos didéctioos obvios, hemos preferido programas co‘tos, en los que resalte mas claramente la instracci6n o construceidn ldgica que se pretende ilustrar, De todas maneras, tambien presentamos algunos programas largos, ya que al crecer la longitud, la complejidad crece mas de lo que cabria esperar. Estetipo de programas presenta dificultades de estructuracion que no se pueden dobservar en progremas corios ORDEN DE DIFICULTAD Dentro de cada capitulo se ha procurado que los programas se presenten en un orden de dificultad creciente EXPLICACIONES En todos los programas ofrecemos explicaciones suficientes para poder di- seftarlos. Estas explicaciones van, unas veces, en lenguaje coloquial; otras, en forma de algotitmo; y otras, en un diagrama de flujo. SIMBOLOS EN LOS DIAGRAMAS DE FLUJO Los simbolos que hemos empleado en los diagramas de flujo son los si- sguientes: Principio y fin de algoritmo. Operacién o asignacién de valor @ una variable Comparacién, Entrada de valores. Salida de valores (en Informatica se suele emplear s6lo para salida de valores através de Ia impresora). Bucle. La secuencia de instrucciones entre estos dos trapecios se repite un cierto nib mero de veces. Subrutinas 0 conexién entre sezmentos de programa, (BORRAR LA PANTALLA) ‘Asi indicamos en los programas la instruccién que borra ta pantalla y lleva el cursor & la primera posicion de la primera linea. El lector tiene que sustituirla por alguna de estas lineas; 20 CLR 20 CLS 20 CLEAR © por otra parecida, seglin el ordenador. (CURSOR AL ORIGEN) Asi indicamos en algin programa la instruccién que leva el cursor 2 la primera posicién de la primera linea. Es innecesaria en aquellos ordenadores 1B que, mediante PRINT AT A,B 0 TAB(A,B), pueden escribir en cuslquier lugar de la pantalla, DIMENSIONES DE LA PANTALLA El niimero de lineas de la pantalla y el de caracteres por tinea varian de ‘unos ordenadores 2 otros, También es variable el niimero de zonas verticales (Gos, tres 0 cuatro) en que queda dividida la pantalla a efectos de impresién con comes. Casi todos los programas de este libro estén pensedos para una pantalla de 25 lineas y 40 caracteres, que se divide on cuatro zenas verticales. Bllector deberd tener esto en cuenta para adaptar los programas asu ordenador, caso de ser necesatio. Los programas de grficos en baja resolucion estan desarrollados pensando en 22 lineas de 32 lugares cada una, y ocho colores. En alta resolueién se han considerado 256 puntos en horizontal y 176 en vertical TAB Si el argumento de TAB es un nimero decimal, generalmente se trunca: TAB(163) da igual imagen que TAB(16) PRINT AT XY TABIXY Cualquiera de estas dos instrucciones permite escribir en la columina Y de Ia fila X. Si tu ordenador no posce ninguna de ellas, habris de emplear Ia Subrutina de Uso Frecuente para bajer a la fila X, y luego TAR(Y). GO TO, GO SUB Fstas instrucciones se pueden eseribir como una sola palabra (GOTO, GOSUB) 0 como dos, seyin ordenadores. IP-THEN-ELSE Esta es una instruccién que aparece cada vez mas en los BASIC ampliados, pero que no hemos empleado por no ser standard. Su uso puede simplifcar bastantes de los programas propuestos; hazio si tu ordenador la posee. 4 GET, INKEY$ Enunos ordenadoresla instruccién GET A§ toma uncarécter ico pulsado desde ol teclado y lo guarda en la variable Ag, pero no espera 2 que pulsemos dicho caracter. Por esta causa, en estos ordenadores, hemos de optar por una de estas dos formas de emplear la instruccién: 30 GET Ag 40 IF Ag="" THEN 30 © bien: 30 GET Ag : IF Ag=“" THEN 30 Otros ordenadores aceptan lineas como ésta: 30 Ag=GETY que espera hasta que pulsamos una tecla y guarda el cardcter en A$. ‘Otros atin admiten Ia Iinea: 30 A$ =INKEY§(200) que espera un méximo de 200 unidades de tiempo para guardar en Af cl cardcter pulsado desde el teclado; pasado este tiempo © pulsade une tecla, le gjecucién continua. La linea 30 A$=INKEY$ no espera; equivale al GET A§ inicial Es de vital importancia que el lector conozca emo funciona estas instruc- cones en su ordenador. INICIALIZACION DE VARIABLES Hemos inicializado siempre las variables, con asignaciones tales como A. En algunos ordenadores no es necesario hacerlo, pues “suponen™ que las va- riables a las que atin no se ha asignado valor valen cero. RUN En algin ordenador no funcionaré RUN 300, siendo 300 un nimero de linea, y ha de ser sustituido por GOTO 300 empleado como comando (orden directa al ordenador, que no va precedida por numero de linea). 1s En general RUN 300 anula tos valores de las variables existentes en ese momento en el ordenador. En cambio GOTO 300 conserva los valores de esas variables. INPUT “CON ETIQUETA” Hay ordenadores que no admiten lineas como ésta: 20 INPUT “NOMBRE” :A$ En todo caso, se puede sustituir esta linea por estas dos: 15 PRINT “NOMBRE”; 20 INPUT A$ que funcionan en cualquier ordenador; o, incluso, por: 15 PRINT “NOMBR) 20 INPUT Ag 25 PRINT Ag que hace aparecer en pantalla el valor de AG, si hubiese desaparecido tras el INPUT LINEAS CON MAS DE UNA INSTRUCCION En ocasiones hemos puesto mas de una instruccién en una misma linea, separadas por dos puntos 30 =0:B=0:PRINT D No todos los ordenadores lo admiten, Mucho cuidado con las lineas del tipo: 40 IF A=B THEN PRINT B porque Ia instruccién B=1 sélo se llevarit a efecto cuando A=B: y en: 40 IF.B=A THEN 300 Ia segunda instruccién no se llevar @ efecto nunca, 6 RND, RANDOMIZE ‘Son muchos los programas de este libro que_utilizan Ia funciéa RND para producir nimeros aleatorios. Las variantes mas frecuentes, segiin los tipos de ordenador, son. a) 30 RANDOMIZE 40 X=RND En X se obtiene un mimero aleatorio entre 0 y 1, 0 | \eTOrerT rete to Ahora L§25)="0", y 193,0="” Sin embargo, una vez que la tabla he sido definida como tal, puedes mane- jarla como una lista, de forma que L§(1)="CASA_”. El mayor problema ‘que presenta este tratamiento es que “CASA” <> L§{(t), ya que le faltan los tres espacios que tiene esta iltima, ON GOTO, ON GOSUB La linea 100: 400 ON A GOTO 1000, 2000, 3000 110. transfiere la Gjecucién a las Hneas 1000, 2000 6 3000, segiin que el valor de ii parte entera de la variable A sea J, 26 3. Sila parte entera de A es menor Gut tind 0 mayor que tres, entonces la ejecucién pasaria a la linea 110. La instruccién ON-GOSUB es anéloga En algunos ordenadores no existen estas instrucciones, pero es posible trans- ferir la ecucién en la forma GOTO D, siendo D una variable. En este caso podemos simular la Yinea 100 de esta manera 100 IF A>=1 AND A<=3 THEN GOTO INT(A}*1000 Si las lineas a las cuales se ha de transferir el control no pueden estar re- gularmente separadas, por ejemplo: 150, 1810, 3416, se pueden guardar orde- nadamente estos valores en una lista: Lay. LG)=3416 50 L(2)= 1810 yy sustituir la Gltima versi6n de Je linea 100 por: 100 IF A> =1 AND A<=3 THEN GOTO L{A) PAUSE, WAIT i deseamos que la pausa que realiza el ordenador tenga duracién fija, ‘podemos poner: PAUSE n siendo n el miimero de fracciones de segundo (generalmente jguales a 1/50) que deseamos se detenga el funcionamiento, En otros ordenadores la instruccién aniloga sera: WAIT 9 Si el ordenador caroce de estas instrueciones, pero esti dotado de Ia va- riable TI, entonces podemos emplearla correspondiente Subsutina de Uso Fre- cuente. » PEEK, POKE Estas instrucciones permiten conocer el contenido de la celda de memoria k: PEEK(W), 0 introducir un valor n en el lugar k de la memoria: POKE kon. Emplear estas instrucciones, que no pertenecen al BASIC (lenguaje abstracto} sino a los BASICs (conereciones de ese lenguaje abstracto 2 maquinas deter minadas), supone: a) conocer el lenguaje maquina del microprocesador en que esth basado tu microordenador; b) conocer el mapa de memoria del microor- denador. Cualquiera de estas razones evidencia la imposibilidad de tratar con ageneralidad estas instrucciones. En algunos micros es necesario emplear POKE para simular la instruccién PRINT AT, cambiar los colores 0 generar sonidos. 21 RUTINAS DE USO FRECUENTE ‘Algunas de las rutinas que a continuacin se exponen las hemos usado con frecuencia y otras en contadas ocasiones. También ponemos rutinas que noso- tros no empleamos, pero de las que el lector puede servirse si 10 considera oportuno, PARADA DE TIEMPO FIJO (K unidades de tiempo) 1000 1010 T=TI 1020 IF Tl-T"S" AND R§<>“N" THEN 1010 1030 LF R§="S" THEN (a la linea correspondiente) 1040 (BORRAR LA PANTALLA) 1050 PRINT "ADIOS" 1060 END, Si queremos poner las variables a cero pondremos: 1030 LF R§="S* THEN RUN (nimero de la linea correspondient En realidad fa segunda instruccién de la linea 1010 es redundante con la linea 1020, CICLO SIN FIN 1000 GOTO 1000, Esta instruccién tiene por objeto que la ejecucién nunca se detenga. Se suele poner al final del programa para evitar los mensajes del tipo READY u OK, gue pueden deteriorar la presentacién en pantalla, 4 4 TRUNCAR A N CIFRAS DECIMALES 1000 B=INT(A* ENV 1EN Ver BASIC BASICO Curso de Programacién, pag. 122, REDONDEAR UN NUMERO A N DECIMALES 1000 B=INT(A*1EN + SVIEN Ver BASIC BASICO Curso de Programacién, pig. 131, OBTENCION DE NUMEROS ALEATORIOS 1000 A=RND_ Resultando = O< Aa 1000 A=INT(N=RND)+1 Resultando ISASN Antero 1000N=A+(B-AWRND —Resultando = AX THEN PRINT "NAS BAJO" : GOTO 150 200 PRIKT 210 PRINT "ENHORABUENA. ACERTASTE” 220 PRINT "DESPUES DE";1;"INTENTOS" 230 PRINT 260 PRINT "QUIERES VOLVER A JUGAR (8/N)1" 250 GET R$: IF RS="" THEN 250 260 IF R§<>"3" AND RS<>"N" TREN 250 270 IF RG="s" THEN 120 280 ( BORRAR LA PANTALLA ) 290 PRINT "ADIOS" 300 END . CARRETERA La figura inferior muestra la simulacién de una carretera con eurvas: el coche es la «V» que, pulsando Ia tecla Q se desplaza un lugar hacia la izquierda, y pulsando la P un lugar hacia la derecha, Cuando el coche se sale de la carretera ‘se termina la partida. @RADO DE DIFICULTAD 1-37 3 HAS RECORRIDG 1.3 KM SIN ACCIDENTES La variable X indica Ja posicién del comienzo de la cadena que es la ca~ rretera, y la variable Y, la posicién del coche. La X se mueve a uno u otro lado aleatoriamente, segiin lo ordene Ia linea 150. Si se va a llegar a uno de los bordes laterales de la pantalla, se hace que la carretera «rebote» (Iineas 160 y 170) En la linea 120 se utilizan las funciones LEFT y RIGHTS para imprimir cada vez la carretera y en ella el coche. Es la Tinea 130 la que contiene la condicién de que si el coche se sale de la carretera, se termina el juego Fijate en la variable AG en ls linea 50: necesita un espacio en blanco 2 cada lado. Observa también Ia linea 130. {Por qué utiliza el signo < =, ¥ ‘no pone simplemente =1 Puedes probar a modificarlo y veras los errores en que se incurre 31 |e 10 REM CARRETERA 20 (-BORRAR LA PANTALLA ) 30 PRINT : PRINT : PRINT 40 INPUT "GRADO DE DIFICULTAD 1-3";¢ 50 Age" a 60 X=16 : Y=20 i: 70 K=0 80 FOR I=1 TO 30*¢ : NEXT T 90 GET 3g 100 IF B§="Q" THEN Y=Y-1 110 IF B§="P" THEN YeY+1 120 PRINT TAB(X) ;LEFTS(A$,Y-X) ;"V" RIGHTS$(A$,X+8-¥) 130 IF Y-X<=1 OR Y-X>=7 THEN 190 | 140 K=K+1 150 KeX+INT(3#RND)~1 160 IF X=0 THEN x=2 170 IF X=32 THEN x=30 180 GoTo 60 190 PRINT : PRINT : PRINT 200 PRINT "HAS RECORRIDO ";K/10;" KM SIN ACCIDENTES" 210 END Para utilizar este programa en tu microordenador probablemente tendris (que hucer algunas variaciones. —Lineas 50 y 120: elegir para la carvetera y el coche los simbolos més | apropiados de entre los que disponga tu microordenador. — Lines 60: centrar la carretera en tu pantalla, Para ello el valor inicial de la X es: nS de espacios _ > 2 Centrar el coche en la carretera: Y =X + 4, Ajustar ef efecto de rebote por la derecha en Ia linea 170. Si A es el niimero de columnas de tu pantalla pondris: IF X=A—8 THEN X= A-10, —Linca 80: ajustar la expresion de Ia dificultad a la velocidad de eje- cucién de tu microordenador.’ i@BUENA SUERTE!!! 2 3. CARRERAS DE CABALLOS (7.12) Simular una carrera de once caballos numerados del 2 al 12, El avance de cada caballo se decide lanzando dos dados: la suma obtenida es el niimero del caballo que avanza un espacio. Se acaba la carrera cuando el primero llega a la meta. (Conviene representar el avance de los caballos por una especie de diagrama de barras.) 10 u 2 EL CABALLO GANADOR ES EL 7 ‘QUIERES PRESENCIAR OTRA CARRERA? (S/N) En primer lugar representaremos los caballos en Ia linea de salida dejando tun espacio entre ellos. Comenzamos la carrera lanzando los dos dados: X=INT(6*RND+1) Y=INT(6*RND+1) La suma de los puntos se recoge en la variable S: S=X+¥ A continuacién se suma una unidad al contador de espacios del caballo $: fs) S)41 33 Ahora tenemos que reflejar el avance del caballo S en Ja pantalla. Para ello situamos el cursor en el origen de la pantalla (rincén superior iquierdo) y descendemos hasta la linea de S, donde imprimimos, mediante la funcién TTAB, un cuadradito @ (0 bien, el signo +) en la posicisn correspondicate a C8). La carrera se acaba en el instante en que uno de los caballos haya avanzado 36 espacios. Por tanto, si CIS) es menor que 36, hay que volver a echar jos dados; en caso contrario se termina la carrera imprimierdo: EL CABALLO GANADOR ES EL S. Al final se pregunta si se quiere presenciar otra ca- rrera. En caso afirmativo, Ia instruccién RUN 20 de la linea 230 pone todas las variables a cero y el programa recomienza a partir de la linea 20. Si la respuesta es negativa, el programa termina La impresién final del programa que offecemos ocupa 23 lineas de 40 ca- racteres. Tienes que tener en cuenta las dimensiones de la pantalla de tu ordenador y modificar el programa segiin aquéllas. La téonice utilizada para representar el avance de los caballos puedes cempleacla para construit diagramas de barras. Una variante de esta téenien de representacién consiste on establecer las variables de cadena C4{S), donde puedes ir acumvlando los cuadraditos Bl para consiruir las bares: C$@)=CRS) ‘Al final imprimes las barras C§(S), para los distintos valores de S. 10 REM CARRERA DE CABALLOS 20 DIM 6(12) 30 ( BORRAR LA PANTALLA ) 40 FOR ro 12 50 PRINT : PRINT T 60 NEXT 1 WT (6*RND41) 80 YaINT(6*nND+1) +Y 100 ¢(8)=c(s)s1 110 ( CURSOR AL ORIGEN ) 120 FOR R=1 TO 2¥8-3 130. PRINT 140 NEXT K 150 PRINT TAB(C(S)+3);"—" 160 IF c(s)<36 THEN 70 170 ( CURSOR AL ORIGEN ) aM 180 190 200 210 220 230 240 250 260 FOR T#1 TO 21: PRINT : NEXT 1 PRINT "EL CABALLO GANADOR ES EL"3S PRINT "QUIERES PRESENGIAR OTRA CARRERAT (S/1)" GET RS IF R§<>"S" AND RG=500 THEN 290 100 N=INT(26*RND+65) 110 X§=CHRG(K) 120 BeINT(1O#*RND+1) 130 D=INTC40*RND) 140 cosuB 500 150 TI=TT 160 GET L$ 170 IF TI-T1>=75 THEN 90 180 IF L9<>x$ THEN 160 190 Geo+l 200 FOR 210 xg="" 220 GosUB 500 230 FOR I=1 To 20 ; NEXT 1 240 xg="_" 250 GosuB 500 10 3 260 FOR I=] TO 20 : NEXT I 270 NEXT K 280 GoTo 90 290 PRINT "HAS ROTO ";C; " PLATOS" 300 END 500 REM SUBRUTINA DE BSCRITURA 510 ( BORRAR LA PANTALLA ) 520 FOR I=] TO B: PRINT : NEXT I 530 PRINT TAB(D);x$ 540 RETURN 39 6. SUBMARINO INMOVIL (7.22) En un casillero 6 x 6 el ordenador sitia al azar un submarino, fuera del aleance de nuestra vista y del sénar. Vames lanzando cargas de profundidad en diversas casilla. Si una carga da al submarino, el ordenador contesta “HUNDIDO", Si da en una casilla contigua a la del submarino, el ordenador contestard “SUBMARINO CERCA". Sila carga da en otro lugar, la contesta- clin es “AGUA”. Al hundir ef submarino el ordenador ha de sacar en pantalla el mimero de cargas de profundidad wtilizadas, ast puede haber competicién entre varios jugadores, ganando quien consiga el hundimiento con el menor nero de ellas. (No es necesaria la representacién gréfica.) En las variables B1 y B2 estin colocadas al azar las coordenadas del submarino. Para ello hacemos uso de Ia funeién RND. En las variables X e Y estin colocadas las coordenadas del lugar en que cercemos nosotros que est situado ef submarino, Introducimos en la variable U la distancia entre esas dos casillas. Mejor dicho, introducimos, por comodt dad, Ia distancia al cuadrado. Si resulta ser 0, es que hemos HUNDIDO el submarino; si es mayor que 3, es “AGUA”. Por exclusién, si no es ninguno de los dos, se imprimirs “SUBMARINO CERCA”. INTRODUCE L@S COORDENADAS X.Y DE LA CARGA 222 EN LA CASILLA x= 2 Y= 2 AGUA INTRODUCE LAS COORDENADAS X,Y DE LA CARGA 225 EN LA CASILLA X= 2 Y= 5 AGUA INTRODUCE LAS COORDENADAS X,Y DE LA CARGA 282 EN LA CASILLA X= 5 Y= 2 AGUA INTRODUCE LAS COORDENADAS », DE La cARGA 25.5 EN LA CASILLA X= 5 Y= 5 SUBMARINO CERCA 49 i i | INTRODUCE LAS COORDENSDAS ',Y DE LA CARGA 28.4 EM LA CASILLA Y= 8 y= 4 AGUA INTRODUCE LAS COORDENADAS %,Y DE LA CARGA 24.68 EN LA CASILLA x= 4 Y= 6 HUNDIDO HAS NECESITADO & CARSAS 10 REM SUBMARINO INMOVIL 20 BisINT(6*RND)+1 30 B2INT(6#RND)+1 40 1-0 50 PRINT "INTRODUCE LAS COORDENADAS X,¥ DE LA c ARGA" 60 INPUT X,¥ 70 IF X>6 OR ¥>6 THEN PRINT "SL CASTLLERO ES 6 POR 6" : PRINT ; GOTO 50 80 r=t+1 90 U=(B1-x)T24(B2-¥) T2 100 IF U=0 THEN 160 110 IF U>3 THEN 140 120 PRINT "ER LA CASILLA X="3x; 0 cERcA* 130 coro 50 140 PRINT "EN LA CASTLLA x="5x;"¥="57; "AGUA" 150 GoTo 50 160 PRINT "EN LA CASILLA X="5x; "ve" 170 PRINT "HAS NECESITADO";13"CARCAS* 180 END 5¥5"SUBMARIN "HUNDIDO" 4 7, SUBMARIN En un casillero de 8 x 8 ef ordenador sitia al azar un submarina, fuera del daleance de nuestra vista. Vamos lanzando cargas de profundidad en diversas ca- sillas. Tras cada carga lanzada, el ordenador contesta con la distancia a la que se encuentra el submarino, medida en casillas horizontales y verticates. St 1a distancia es cero, contesta “HUNDIDO” y muestra la posicién del subma- rino (+). (Los buenos jugadores con tres cargas tienen suficiente para destruir el bugue.) LINEA, COLUMNA? 6,2, Enel programa que proponemos hemos establecido una subrutina (300-399) para dibujar el cuadro de batalla, Para ello hemos introducido en tres va- lables de cadena los siguientes motivos Mig = "12345678" M2§ = “MMMM” (10 cuadraditos negros) Mag =" WW" (B espacios con un cuadradito negro a cada lado) 2 i La impresion, en lineas sucesivas, de los motivos MI$, M2$, M3§ (ocho veces) y M2, poniendo delante de cada M3§ el nimero correspondiente, produce el recuadro de la figure. Con Ia funcién TAB se ajustan los motives y se centra el dibujo. En las lineas 110, 120 y 130 se cargan en la variable de indice D§(1) los caracteres *1,2,345,6,7.89A,B,CD,E, que van a marcar Is distancia D a I que se encuentra el submarino. Como para dicha marca sélo disponemos de un espacio, las distancias 10,11,12,13 y 14 son representadas por las le- tras ABCD y E. Comienza el juego a partir de la Tinea 140, que remite a la subrutina 300 de representacién gratia. ff En la linea 150 el ordenador clige al azar las coordenadas de! submarino. Las lineas 160, 170 y 180 sirven para situar el cursor en la zona inferior 4e la pantalla, y preguntar alli las coordenadas de la zona del dispar. Desde la 190 2 la 220 se calcula la distancia D, y se imprime en Ia casilla correspondiente. En la 230, si la distancia no es cero, se repte el disparo, y st 3 cero, se imprime “HUNDIDO”, borrando previamente con espacios la linea en Ia que hemos estado poniendo las coordenadas. Y el juego finaliza 10 REM LA CAZA DEL SUBMARINO 20 cosuE 300 30 PRINT : PRINT "ESTO ES LA CAZA DEL SUBMARTNO" 40 PRINT : PRINT "SE LANZA UNA CARGA DE PROFUNDI Dap" 50 PRINT "ESCRIBIENDO EL NUMBRO DE LINEA Y EL DE COLUMNA SEPARADOS POR COMA" 60 PRINT : PRINT "EN LA ZONA CORRESPONDIENTE APA RECE" 70 PRINT "LA DISTANCTA A LA QUE SE HALLA EL" 80 PRINT "SUBMARINO MEDIDA EN CUADRADITOS HORIZ ONTALES ¥ VERTICALES" 90 PRINT : PRINT "PARA EMPEZAR TL JUEGO PULSA UN A TECLAY 100 GBT AS : IF Ag="" THEN 100 110 DIM DS(14) 120 FOR I=0 TO 14 : READ D$(L) ; NEXT I 130 DATA *,1,2,3,4,5,6,7,8,9,A,B,0,D,8 140 cosus 300 150 X=INT(B*RND+1) + 160 ( CURSOR AL ORIGEN ) NT(8*RND+1) eB 170 180 190 200 210 220 230 240 250 260 270 300 310 320 330 340 350 360 370 380 390 395 399 FOR T#1 70 20 : PRINT : NEXT T INPUT "LINEA, COLUMNA";L,C D=ABS(X-L)+ABS(Y-C) ( CURSOR AL ORIGEN ) FOR T=1 70 L411 PRINT : NEXT PRINT TAB(C+12);D$(D) IP D<>0 THEN 160 (cursor AL oRrcen ) FOR Tel 70 20 ; PRINT : WERT T PRINT " HUNDIDO" END REM SUBRUTINA DE REPRESENTACION GRAFICA w1g="12345678 42 9-" M3 $=" ( BORRAR LA PANTALLA ) PRINT TAB(13) 3H18 PRINT TAB(12) 3225 vOR T=1 70 8 PRINT TAB(9) 535 TAB(12) 543§ NEXT I PRINT TAB(12) 3425 RETURY 8. JUEGO DEL SUBMARINO MOVIL (7.23) Variante del juego anterior en un casillero de 10x 10. Después de cada carga Janzada la maquina contesta la distancia en casillas y, si la distancia es cero. responde “HUNDIDO EN 7 INTENTOS”, por ejemplo. Pero en esta variante el submarino se mueve: cada ver que lanzamos una carga se desplaza aleato- Fiamente una casilla. (Si va hacia los bordes, rebotard en ellos.) Igual que antes, se trata de hundir el submarino con el menor nimero posible de cargas. En las primeras lineas, hasta la 130, se representa el “campo de batalla”, arriba nimetos y a Ia izquierda letras. Las letras de la Aa la J tienen los o6- digos 65 a 74, rfolatalsfelafsl ofr a 3 dh ot try | SRN a a o ZVLIS xX | 1 | | CLO | DONDE DISPARAS (PRIMERO LA LETRA? C2 Después se sitda el submarino, pero no se saca en la pantalla. Entonces cl ordenador pregunta donde disparamos. Es necesario un bucle previo, Ii nea 190, para que la pregunta se formule siempre abajo, sin estropear el dibujo. Supongamos que nuestra respuesta es C,2, y que el submarino esta en F.6. En este juego se mide fa suma de la distancia en horizontal y on vertical, 45 {| cen este caso 7 (linea 220). Queremos que salga en Ja pantalla un 7 en la posicién C,2. Es lo que hacen las lineas 230 a 250. La variable K contabiliza e} nimero de cargas lanzadas. Si la distancia D es cero, hemos hundido el submarino en K cargas. Si nio, el submarino se ‘mueve una casilla al azar, como muestra el dibujo, Puede también quedarse cn el mismo sitio. El movimiento corre a cargo de las lineas 280 y 290, con las condiciones posteriores de que el submarino no se salga de la cuadricula. 10 REM SURMARTNO MOVIL 20 ( BORRAR LA PANTALLA ) 30 REM DIBUJO DE LAS COORDENADAS 40 PRINT SPC(5); 50 FOR I=1 TO 10 60 PRINT Is 70 WEXT T 80 ( CURSOR AL ORIGEN ) 90 PRINT : K=O 100 FOR 1=65 TO 74 110 PRINT 120 PRINT SPC(4);CHRE(T) 130 NEXT 1 140 REM COORDENADAS DEL SUBMARINO 150 XeINT(1O*RND)+1 160 Y*INT(10*RND)+1 170 REM CARGA DE PROFUNDIDAD 180 ( CURSOR AL ORICEN ) 190 FOR To 22 ; PRINT : NEXT 1 200 INPUT "DONDE DISPARAS (PRIMERO LA LETRA)";A$,™ 210 B=ASC(A$)~64 220 DmABS(M-X)+ABS(N-Y) 230 ( CURSOR AL ORIGEN ) 240 YOR I=1 TO 24N : PRINT ; NEXT T 250 PRINT SPC(2+3*M) ;D 260 K=K41 270 IF D=0 TEEN 350 280 X=x+1NT(3#RND)~1 290 YeveTwr(A4RND)=1 300 IF X=0 TREN 310 IF K«ll THEN x=9 320 IF Y=0 THEN Y=2 330 IF Yell THEN Y=9 340 GoTo 170 350 ( CURSOR AL ORIGEN ) 360 FOR I=1 10 23 : PRINT : NEXT 1 370 PRINT "HUNDIDO EN ";K;"INTENTOS" 380 EXD 6 RULETA (6.25) Haz un programa de simulacién de wna ruleta: tiene 36 mimeros a los que se puede apostar. y el 0. Si sale el 0, todas las apuestas son para la casa, Si lactertas el nimero, el premio es sw apuesta multiplicada por 36. Ademds, los 36 mix imeros se elasifican en pares 0 impares, y pasa (19 0 mayor) o falta; si ganas ‘en estos casos, el premio es tu jugada multiplicada por dos. Empieza el juego con P pts. y ve haciendo apuestas. El ordenador debe decir cuanto dinero te queda, 1y no permitirte apostar més de lo que tienes. El juego se acaba si te quedas sin dinero. En la variable Y se deposita el dinero que se apuesta a nimero;en la YI se deposita el dinero que se apuesta a par o impar y en la Y2 se deposita ef dinero que se apuesta a pasa o falta. En X se coloca el niimero que sale en la ruleta y en Z el niimero al que apostamos; en A§, si es par o impar; y en BG, si pasa o falta Si el mimero X es par, entonces en K§ se coloca una P y si es impar, se coloca una I. Si el némero X cs igual a 19 o mayor, en H§ se coloca una P y sies menor que 19, una F. Para que un jugedor no pueda aposter en cada caso mis dinero del que tiene en ese momento, hemos recurrido a lo siguiente: en las liness 110, 180, yy 250 se resta al dinero disponible el dinero que se pretends apostar. A con- timuacién comprobames silo que quedé es positivo o nulo, En caso contrario fs que el jugador pretendia engafiar a la ruleta. Le sacamos un mensaje ¥ yolvemos a poner en la variable Pel dinero que tenia, para que haga una nueva apuesta ‘A continuacién, con diversas bifurcaciones condicionales, vamos conside- rando todas las posibles alternativas que nos indica el enunciado del problema. La iinica que parece algo exirafia es aquella en que nadie acierta, ni los jugadores nila banca. Para este caso hemos recurrido a un contador, de forma que si en dl hay un 3, entonces perdemos todo lo apostado. En cuanto ¢ la terminacién del juego, hemos considerado el caso de no tener mas dinero; pero si queremos finalizar el juego sin haberlo agotado, tendremos que pulsar la tecla RUN/STOP. ” Si no quieres apostar a alguna de las cosas, pon cero en Ia cantidad que te juegas. Presentacién en pantall CON QUE CANTIOAD ENTRAS AL CASINO 2 19880 A GUE NUMERO APUESTAS 724 cueNTO DINERO 7 500 AFUESTAS A PARES 0 IMPARES(P/I> a1 CuaNTO DINERO 2 3000 APUESTAS A PASA 0 FALTACP/FD oF CURNTO DINERO 2 S500 HA SALIUO EL NUMERG HAS GanaDo seoa TIENES, POR TANTO 18000 10 REM SIMULACION DE RULETA 20 PRINT “CON QUE CANTIDAD ENTRAS AL CASINO” So INPUT P 4 Pi=P 50 PRINT : X=INTI37«RND) : 120 @ (F P=0 THEN PRINT "SE ACABO EL JUEGO, NO TIENES DINERO” GOTO 460, 7 PRINT “A QUE NUMERO APUESTAS” 80 INPUT Z. 90 PRINT “CUANTO DINERO” 100 INPUT ¥ HO P=P-Y :IF P> m0 THEN 120 10 PRINT “NO PUEDES APOSTAR MAS DINERO DEL QUE TIENES" 130 P=P4Y : GOTO 99 14) PRINT “APUESTAS A PARES © IMPARES(P/I™ 150 INPUT Ag 160 PRINT “CUANTO DINERO 170 INPUT. Yi 180 PaP-YI IF PS =0 THEN 210 190 PRINT "NO PUEDES APOSTAR MAS DINERO DEL QUE TIENES” 200 P=P+YI = GOTO 160 210 PRINT “APUESTAS A PASA © FALTA(P/FY 200 INPUT BS. 230 PRINT “CUANTO DINERO" 240 INPUT ¥2 48 250 P=P-Y2 : IF P>=0 THEN 280 260 PRINT “NO PUEDES APOSTAR MAS DINERO DEL QUE TIENES* 27) PuP+¥2 : GOTO 230 280 PRINT “HA SALIDO.EL_NUMERO"X BO Ih Xz ni8 THEN tifa" COTO Bio 300 HS =" 310 IF X2=INT(S/2) THEN K§=“P* : GOTO 330 300 K 330 IF X=0 THEN PRINT “HA GANADO LA BANCA™ - GOO 450 340 IF XeZ THEN P=P437-¥ / GOTO 360 350 f=i41 30 IF Abax$ THEN PaPs2e¥1 = GoTO 530 Fi = IF Bhi THEN P=P+a42 GoTo 400 0 IF tv THEN PRINT * NO HAS GANADO NADA™ -GorO 450 410 L=P-PI 400 IF L=0 THEN 13 GoTO 400 40 IF <0 THEN PRINT “HAS PERDIDO™;~L + GOTO 450 440 PRINT “HAS GANADO" 450 PRINT : PRINT “TIENES, POR TANTO"P : GOTO 40 460 END ” 10. OGROS Estds en poder de wna tribu de ogros que habita un laberinto de cuevas (aunque ti no lo sabes, son unos bromistas impenitentes, y excima vegetarianos ). Hoy celebran su Fiesta de! Quede; en ella comunican a sus prisioneros que sserdn devorados a la matiana siguiente y luego, disimuladamente, les dejan posibie lidad de escapar, distribuyéndose ellos por las cuevas segiin indican las iniciales de sus nombres. fad a Antes de huir haces wn saquito con tus pantalones 3 robas monedas de oro, diamantes, brazaletes amuletas. Luego huyes ..jHas de saber que inmediata- mente ve encontrards con Ia enorme Arsaminiia, que se fingiré m cémplice y te entregard un pesado amulero y cinco grandes brazaletes, empujéndote a seguir. Bacilonrio te preguntaré la edad y te dard un diamante mds de los aiios que tienes, haciéndote también seguir; ya tambaledndote por el peso legarts a Carcajundia quien te dard tantas monedas como brazaleies lleves. quitdndote tantos diamantes como amuletos rengas. 30 Démenciano cuenta ei nimero de amuletos y diamances que levas y te envia por un tiiel que te devuelve a Carcajundia, si tienes menos amuletos que dia- ‘antes 3, en caso contrarlo, por otro que lleva a Eufemismondro. Eufemismondro te da tres amuletos, pero no te deja descansar ni un momento, Festibonia te enviard hacia Jocosondrdn si tienes 10 amuletos @ més: si tienes menos de cinco, a Guasononda; y en los demés casos a Hisiericundia, Guasononda te quita tantos brazaletes como amuletos tienes y te hace huir por un corredor que conduce a Irrisondro. Histericundia te da dos monedas y se pone'a gritar como su nombre indica, con lo que te largas sin més. Irrisondro te entrega un diamante por cada moneda que levas, pero antes te ha quitado todos los diamantes que llevabas. Jocosondrén te quita todos los amuletos, brazaletes, monedas y un diamante “que « Tos ogros nos da suerte”, quardéndolos para la siguiente Fiesta, y de un empelién te deouelve a la libertad! Hemos de programar esta epopeya, con comentarios de los protagonistas ‘mencionados, de forma que conozeamos la situactén de nuestro tesoro en cada momento. Podemos prescindir de un diagrama de flujo formal, papel que puede desempear el plano de las cuevas. El programa pedido puede quedar asi 10 REM OGROS 20 (BORRAR LA PANTALLA) 30 PRINT “PUEDES HUIR DE LOS OGROS” -PRINT “HACES UN SACO CON LO 5S PANTALONES” 40 PRINT : INPUT “CUANTOS AMULETOS COGES™AM, 50 PRINT : INPUT “CUANTAS MONEDAS DE ORO COGES"MO 60 PRINT : INPUT “CUANTOS DIAMANTES": 70 PRINT : INPUT “CUANTOS BRAZALETES™-BR 80 (BORRAR LA PANTALLA) 50 PRINT : PRINT : PRINT "ESCAPAS CON * : PRINT 100 PRINT TAB(I2;AM," AMULETOS™ : PRINT 110 PRINT TABI2;MO™ MONEDAS DE ORO" : PRINT 120 PRINT TAB(I2);DI" DIAMANTES” : PRINT 130 PRINT TABUI2VBR:" BRAZALETES” : PRINT 1a GET AS "IF A§=*" THEN 140 150 (BORRAR LA PANTALLA) 1@) PRINT" TE ENCUENTRAS CON ARSAMININA QUE TE DA CINCO G RANDES 170 PRINT “BRAZALETES Y TE CUELGA DEL CUELLO UN AMULETO CON UN PEDRUSCO QUE”: 18) PRINT “PARECE UN ADOQUIN™ 190 BR~BRs5 > AM=AM +1 = GOSUB 2000 200 PRINT = ME LLAMAN BACILONDRIO.” : PRINT 219 INPUT " CUANTOS ANOS TIENES, PEDAZO DE COSA PEQUERATA.: P. RINT st 22, PRINT ‘ CON QUE TIENES":AYAROS, EH? PUES TOMA “A+1*DIAMANTE SY VETE "s 330 PRINT “ANTES DE QUE CAMBIE DE OPINION" 24) Die DI+Ay1 + GOSUB 2000, 350 PRINT = PRINT SOY CARCATUNDIA” < PRINT 360 PRINT" DEIAME VER CUANTOS BRAZALETES TIENES Y TE DARE MON EDAS" » PRINT 268 BR=6 270 PRINT ‘TIENES"SR"BRAZALETES” : PRINT 280 PRINT “TOMA":BR"MONEDAS Y TE QUITO": 290 IF Dic =AM THEN PRINT "TODOS LOS “: : Dl=0 : GOTO 310 4300 PRINT AM: : Dl=DI-aM 310 PRINT “DIAMANTES™ : MO=MO«-BR 320 GosUB 2000 330 PRINT : PRINT “A MI ME LLAMAN DEMENCIANO, JUA, JUA ” : PRINT 340 PRINT = POR NADA'EN PARTICULAR .. " : PRINT 4380 PRINT TABIIZ)"— JUA, JUA ..” : PRINT pat pat "A VER CUANTOS AMULETOS Y DIAMANTES TIENE MI CHOU 370 LF AM> =DI THEN 440 380 PRINT’: PRINT." |” SOLO™:AM*AMULETOS Y\DI:"DIAMANTES” : PRINT 380 PRINT ~ NO CREES EN LAS SUPERSTICIONES, EH 1" : PRINT 400 PRINT TAR)". SUA, JUA .. ESO ME GUSTA.. : PRINT 0 pany “VE POW EL CAMINO DE LA TIZQUIERDA Y SALDRAS DE LA 420 GOSUB 2000 430 GoTo 250 440 PRINT * VEO QUE ERES INTELIGENTE Y LLEVAS MAS AMULETOS Q UE DIAMANTES™ 450 PRINT TABI)". JUA, JUA — ESO ME GUST.” : PRINT MQ PRINT ~ “VE POR EF CAMINO DE LA'DERECHA Y SALDRAS DE LA C 90 GOSUB 2000 4880 PRINT : PRINT ~ YO SOY EUFEMISMONDRO ... NO TEMAS.” : PRINT 490 PRINT“ ENSENAME LO QUE LLEVAS EN EL SAQUITO™ : PRINT. 500 PRINT * _.. SOLO" AMAMULETOS. ~" ¢ PRINT. SiO PRINT * TOMA ESTOS QUE SON BIEN GRANDES " : PRINT : AM=AM43 520 PRINT ~ LOS MEJORES AMULETOS SON LOS QUE MAS PESAN" : PRINT 580 PRINT : PRINT : PRINT” -. Y AHORA...” : PRINT 50 PRINT * TRCORRE! 1 CORRE IF 550 GosUa 2000 S60 PRINT " HOLA SER DEL EXTERIOR, SOY FESTIBONIA. ME RECUERDAS 7° PRINT 500 PRINT * VEO QUE“TIENES": : IF AM-<5 THEN 650 S80 PRINT ~ DEIAME CONTAR "IF AMS=10 THEN PRINT * DIEZ“: : G0 580 PRINT AM: AMULETOS” : PRINT faa PRINT “NO SE COMO TE’ HAS ENTERADO, PERO ESE ES EL NUMERO Q IN 610 PRINT “MEJOR SUERTE.” : PRINT 620 PRINT SIGUE POR'EL CAMINO DE LA DERECHA Y" : PRINT “PODRA, 5 ESCAPAR™ 630 GOSUB. 2000 640 GOTO 860 630 PRINT “AMULETOS™ : PRINT 660 PRINT “IESE ES EL NUMERO QUE PERMITE LA HUIDA'® : PRINT 610 PRINT VE POR EL CORREDOR CENTRAL” 680 GOSUE 2000 2 680 GOTO 750 4900 PRINT TARO;AMMAMULETOS . MALA COSA.” = PRINT FiO PRINT “SAL POR EL CAMINO DE LA IZQUIERDA” : PRINT 720 PRINT." "ES MUY PELIGROSO, PERO LOS OTROS SON MORTALES. 730 GOSUB 2000 140 GOTO 1029 450 PRINT “ASL QUE FESTIBONIA TE DUO QUE POR AQUI SE SALE“: 4960 PRINT “s, JEJE" + PRINT 770 PRINT *"Y LLEVAS"AM:AMULETOS, EH * : PRINT 730 PRINT TABS)STE DAN SUERTE 7 7) PRINT “ PUEDES QUEDARTELOS, PERO DAME “: 800 IF BR<=AM THEN PRINT “TODOS LOS BRAZALETES" : BR=0 : GOTO 820 Si) PRINT AM;BRAZALETES.” : BR=BR-AM 820 PRINT PRINT : PRINT" SIGUE POR ESE CAMINO Y LLEGARAS A LA GRAN VIA" 830 PRINT : PRINT © Nga, JAJA ME 840 GOsUB 2000 350 GOTO 940 86) PRINT "SOY HISTERICUNDIA™ : PRINT = PRINT 7 PRINT * TOMA DOS MONEDAS DE ORO Y VETE ~ 880 PRINT “ DE AQUI QUE ME PONES NERVOSA.” : MO 890 FOR T=1 TO s00:NEXTT oO: 900 PRINT PRINT ;PRINT:PRINT:PRINT "11! QUE TE VAYAS !iP 510 FOR T= TO 30) = NEXT T 520 PRINT : PRINT : PRINT" Il! AAAAAAAAAAAAAAAA (1117 930 Gosue 2000 940 PRINT : PRINT ~ YO SOY IRRISONDRO™ = PRINT. 950 PRINT = TRAE TODOS ESOS DIAMANTES Y MONEDA” » PRINT 96) PRINT LOS DIAMANTES POR AHORA SON MIOS ..” : DI=0 97) PRINT "A VER CUANTAS MONEDAS TIENES ? PRINT SO PRINT. + PRINT TABIS)MO 0" 580 PRINT “PUES TOMA “:MOcDIAMANTES Y" = PRINT “SIGUE POR ESE CAM INO” 1000 Di=MO = GOsuB 2000 10 GOTO 230 103) PRINT" PRINT" _ | MARAVILLATE ANTE JOCOSONDRO 1080 FOR T=1 TO 300: NEXT T [odo PRINT | PRINT"! EL SUBLIME GUARDIAN 1050 FOR T-=1 TO 800 : NEXT T 1080 PRINT: PRINT. : PRINT TABQ20|".QUE SOY YO. 910 FOR T=1 TO 800 : NEXT T. 1080 PRINT | PRINT: PRINT = PRINT- PUEDES SALIR, PERO ANTES DEJA E sos 0 PRINT : PRINT * BRAZALETES, MONEDAS Y AMULETOS, ¥ ~ (0) PRINT * TAMBIEN ESE DIAMANTE QUE A LOS OGROS’ IO PRINT " NOS TRAE SUERTE” 1120 FOR T=1 TO 2500 : NEXT T 3) PRINT | PRINT: PRINT” SIGUE POR ESE CAMINO Y LLEGARAS A” 1190 PRINT ~ UNA PARADA DE AUTOBUS. PASA CADA 10" 1130 PRINT * MINUTOS: M60 FOR T=1 TO 1800 : NEXT T 1170 PRINT = PRINT: PRINT * 1 AH ! 1180 PRINT TABNOSOTROS SOMOS VEGETARIANOS: 1190 Di=DI=1 : MO=0 = AM=O : BR. 1200 GOSUB 2000 1210 END 2000 GET AG = IP Af=" THEN 2000 42010 PRINT = PRINT - PRINTAHORA TIENES" : PRINT 3 2020 PRINT TABLI2¢AM:* AMULETOS” : PRINT 3030 PRINT TABII2).MO" MONEDAS DE ORO” : PRINT S000 PRINT TABII2;DI:" DIAMANTES” ; PRINT 3030 PRINT TABI2):B8:" BRAZALETES: 200 GET A$ : IF A$=" THEN 2060, 42070 (BORRAR LA PANTALLA) 3080 RETURN 11. MASTER MIND ordenador va a elegir al azar cuatro colores de entre estos seis: amarillo, blanco, marrén, negro, ojo y verde. Til tienes que adivinar qué colores son y qué posiciin ocupan. Les colores pueden repetirse. La representacion de cada color se hace con su inicial, Supongamos que el ordenador elige la sucesion de colores BAVV, a la que llamamos palabra solucién y representamos por S§, Supongamos también que tit propones la pala- bra AMNY, que representamos por P§. En este caso, aciertas el color y posi- cin de la V; también aciertas el color, pero no la posicion, de la A. Por cada acierto en color y posicién, el ordenador escribir un 1; y por cada color acertado, que no esté bien colocado, eseribiré un 0. Veimoslo ‘mejor en estos supuestos: S$ = BAVV P§ = AMNV 10 P§ = BVAV 1100 El programa que proponemos esta dividido en cinco partes 1) Presentacién del juego. En las tineas 100-150 damos unas breves explicaciones del juego, 2) Generacién de la palabra solucién. En las lineas 200-220 generamos aleatoriamente la palabra solucién S$, de la siguiente manera: Fn Ia Tinea 210 establecemos la cadena de caracteres: PAL$=“ABMNRY” formada por los colores disponibles. La variable PAL$ es como la paleta de un pintor en Ia que el ordenador va a mojar aleatoriamenie. En efecto, en Ja linea 220 se generan cuatro nlimeros aleatorios del | al 6. Segiin sea el niimero generado, el ordenador escoge de la paleta el color correspondiente, 55 segiin el orden que ocupa en ella, y forma la palabra §. Asi, por ejemplo, si los cuatro ntimeros extraidos son 2, 1, 6, 6, la palabra solucién es, pre- cisamente, S$ = BAVV. 3) Toma de palabra. Las liteas 300-395 constituyen la tercera parte del programa, donde, me- disste INPUT, el ordentador toma nuestra palabra PG, al tiempo que controla su longitud y los errores de pulsaci6n. Si ha habido equivocaciones, nos saca tin itensaje de error y vuelve a pedirnos la palabra. Si la palabra es licita, afiade | al contador de intentos E, 4) Comparacién de palabras. En Ia cuarta patte, lineas 400-495, se compara la palabra solucién $$ con 1a palabra propuesta por nosotros PS. En Ia linea 420 se hace el desguace de ambas palabras en las letras co- srespondientes La palabra S$~ BAVV, da origen a S§(1) =B, S§(2)-=A, $$(3)=V, S94) =. La palabra P§=AMNY, da origen a P§(I)=A, PGQ)=M, P§3)=N, PS En las lineas 430-450, utilizando un ciclo FOR-NEXT, se cuentan las coincidencias en color y posicién. El contador C se encarga de ello. Al mismo tieinpo, en él caso de coincidencia, se cambian las letras coincidentes, por * en S4d) y por + en P$(D, al objeto de evitar que se puedan contar como colores iguales en el recuento que sigue Las coincidencies en color, pero no en posicién, se anoten en las Ii eas 460-495 utilizando un doble ciclo FOR-NEXT. La variable T es su con- tador. Cuando haya una coincidencia en color, es nevesario cambiar por + 1a letra correspondiente de P§(), para evitar contaria més de una vez. Partimos de: 1234 S$ BA VY P§:AMNV % eae sti cA ae maar Después del primer recuento, la situacién es ésta: S$: BA V+ PSA MN + Después del segundo recuento, tenemos: S$ BA Vo P§: + MN + 3) Calificacién de la jugada. En esta ltima parte, lincas 500-590, se forma la palabra Plf, a base de Ly 0,y se imprime al lado de P§. En el caso de que C sea 4, hemos acertado, y el juego finaliza. Si no, se nos pide otra palabra PG. 100 REM MASTER MIND 110 PRINT TAB(9);"M A$ TER MIND": PRINT 120 PRINT "BLIJA’4 COLORES DE ENTRE LOS SIGUIENTES:" PRINT 130 PRINT "A=AMARTLLO B=BLANCO —-N=MARRON" 140 PRINT "NR=NEGRO R=ROJO VeVERDE" : PRINT 150 PRINT "GALIFICACION:1 COLOR ¥ POSICION, 0 COLOR PRINT 200 REM ¥#*GENERACION DE LA PALABRA SOLUCTON**# 210 PALS="ABMNRV" : S$="" : E=0 220 FOR K=1 TO 4 : X=INT(6¥RND+I) : S$=S$+NIDS(PALS,X, 1): NEXT K 300 REM ###*TOMA DE PALABRA*** 310 INPUT P$ 320 IF LEN(P$)<>4 THEN 370 330 FOR I=1 TO 4 340 PS§(x)=MID$(P§,1,1) 350 IF PS(1)="A" OR PS(1)="B" OR P9(I)="N" THEN 390 360 IF PS(1)="N" OR PS(I)="R" OR PS(1)="V" THEN 390 370 ( CURSOR A LA LINEA ANTERIOR ); 380 PRINT TAB(7);"SE EQUIVOCO. VUELVA A ESCRIBIR": GOT © 310 390 NEXT T 395 BsE+1 400 REN***COMPARACION DE PALABRAS##* 410 C=O : T=0 420 FOR K=1 TO 4 ; S$(K)=MEDS(S$,K,1) : PS(K)=NIDS(PS, K,1) : NEXT K i i | se FOR I=1 TO 4 IP $§(1)=P$(1) THEN C=C+1 WEXT 1 FOR T=1 TO 4 FOR J=1 TO 4 IF S$(1)=P$(J) THEN T=T+1 : Pg(I)="4" : GOTO 495 sg(r)amer ppg (ramet BEXT J WEXT I REME**GALIFICAGION DE LA JUGADA** cAg="" : IF C=O THEN 530 FOR TOC: CASSCAS#"1" : NEXT K IF TREN 550 FOR K=1 TO T : CAS=CAS+"0" : NEXT K ( CURSOR & LA LINEA ANTERTOR )} PRINT TAB(7) 5CA$ IP C<>4 THEN 310 PRINT : PRINT "ACERTO VD, DESPUES DE*;E;"INTENTOS" END i 4 | 12, LAS SIETE Y MEDIA (7.16) Haz un programa para jugar a las siete y media contra el ordenador. Suponemos conocidas las reglas del juego. El programa tiene tres partes 12 Reparto de cartas a los jugadores, Por lo menos uno de los dos no se ha plantado todavia. Ocupa hasta la linea 370. 24 Las subrutinas: a) Subrutina 700: extraccién de una carta. ) Subrutina 800: sume de las cartas de un jugador. ©) Subrutina 1000: escritura en pantalla de las cartas 32 Cuando ya se han plantado los dos jugadores. El ordenador “ensoia” sus cartas, que tenia “tapadas”, y analiza quién es ef ganador. Ocupa desde la linea 380 hasta las subrutinas. 1! PARTE: REPARTO DE CARTAS La variable $ indica quién sale, quién recibe la primera carta. Es decisiva ala hora del recuento: si hay empate gana el que sea mano. La primera ver se pregunta mediante una instruccién INPUT quién sale; después el ordenador va alternando las salidas. Esto lo hace en la tinea 640: S=ABS(INTIS— 15) +1 SiS valia 1, pasa a valer 2, y viceversa, por lo que cambia el jugador que sale, Las variables Z1 y 22 valen 0 mientras el jugador respective pide cartas, y valen 1 cuando el jugador se planta. Entonces sélo se dan cartas al otro jugador, hasta que también se plante y se pase al recuento final. 2° PARTE: LAS SUBRUTINAS 4a) Subrutina 700, de extraccién de una carta. Se ha imaginado la baraja ‘como una tabla A(10,4) donde la primera cifta es el niimero de la carta y la segunda el palo. Asi (8,2) es la Sota de Copas. 38 Al principio, la tabla A(10.4) esté Ilena de ceros. Cada ver que el ordenador saca una carta, coloca un I en el lugar correspondiente de la tabla, y cuando lo hace el usuario, un 2. Esto sirve en primer lugar pare no dar cartas repetidas. Si ya ha salido fa Sota de Copas, no puede volver a salir {es Ia linea 720). Por otra parte esos valores, 1 y 2, se utilizan en la subru- tine 1000. 8) Subrutina 800, de suma de las cartas de un jugador. Ahorra memoria ya que en el programa se acude a ella en cuatro ocasiones. Va guardando en las variables T(1) y T(2) ta suma de las cartas del ordenador y del usuario respectivamente. Antes de cada jugada el ordenador consulta la variable T(t), y sies T() > 5, se planta (ineas 220 y 230). ) Subrutina 1000, de escritura en pantalla de las cartas. El ordenador ho mos ensefla sus cartes, pero si las muestras cada vez que nos toca. Asi sabremos las cartas que tenemos y decidimos si seguimos 0 nos plantamos. Al final, en ef recuento de cartas para analizar el ganador, se presentan en pantalla todas nuestras cartas y todas las cartas del ordenador. 3+ PARTE: RECUENTO FINAL Y GANADOR Se llega este punto cuando los dos jugadores se han plantado. La mé- quina ensefia primero todas las cartas del usuario (subratina 1000) y al final su suma (variable T(2)). A continuacién hace lo mismo con las suyas, que tenia tapadas. Luego scfiala el ganador, con todos los casos posibles (empate si los, dos se han pasado, tiene en cuenta quién ha salido si las cartas dan la misma suma, etc). La linea 600 muestra en pantalla 1a puntuaci6n hasta el momento. 10 REM SIRTE ¥ MEDIA 20 ( BORRAR LA PANTALLA ) 30 DIN (10,4) ,7(2) 40 Pleo: P2=0 50 INPUT "QUIEN SALE: TU (1) 0 Yo (2) 60 zi=0 = Z: 1190 : T(2)"0 70 FOR Tel TO 10 : FOR J=1 To & 80 A(T, J)=0 90 NEXT J : NEXT I 100 IF S=1 THEN 150 110 PRINT "YO COJO UNA CARTA" : Kel 120 GosUB 700 130 GosuB 800 0 140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 300 310 320 330 340 350 360 370 380 390 400 410 420 430 440 450 460 470 480 490 500 510 520 530 540 550 560 570 580 590 600 IF S=1 THEN 200 PRINT "TOMA UNA CARTA costs 700 cosuE 800 GosuB 1000 IF S#1 THEN 110 IF Kel OR Zi=1 THEN 270 REM JUEGA LA MAQUINA IF T(K)<5 THEN 240 Z1=1 : PRINT "ME PLANTO" : GOTO 270 PRINT "YO COJO OTRA CARTA™ cosus 700 Gosus 800 REM JUECA EL USUARIO IF Z2=1 THEN 310 INPUT "QUIERES CARTA (1) 0 TE PLANTAS (2)"3¥ IF W=2 THEN 22-1 IF ZI=1 AND Z2=1 THEN 380 IF Z2=1 THEN 210 PRINT "TOMA OTRA CARTAN : K=2 costs 700 Gosus 800 Gosus 1000 GOTO 200 REM PRESENTACION Y COMPUTO PINAL PRINT "TUS CARTAS" : K=2 FOR I=1 70 10 : FOR J=1 TO 4 IF A(1,J) OK THEN 430 cosus 1000 NEXT J: NEXT I PRINT : PRINT "SUMAN"; 7(K) IF Kel THEN 490 IF 1(2)>7.5 THEN PRINT "TE NAS PASADO" PRINT : PRINT : PRINT "MIS CARTAS" : K=1 Goro 400 IF T(1)>7.5 THEN PRINT "ME PASE” IF T(1)97.5 AND T(2)>7.5 TREN 590 IF T(1)<8 AND 1(2)<8 THEN 550 IF T(1)>7.5 THEN 540 PRINT ” TE GANO" : Pl=PI+1 : COTO 600 PRINT “ ME GANAS" ; P2=P2+1 ; COTO 600 IF T(1)>7(2) THEN 330 IF T(2)>7(1) THEN 540 PRINT "POR LA MANO"; ON § GOTO 540,530 PRINT "TABLAS" PRINT ; PRINT "PUNTUACION: YO" ;PL "EU" 5P2 ole 610 INPUT "OTRA PARTIDA (8/N)"3A$ 620 IF A$="N" THEN END 630 ( BORRAR LA PANTALLA ) 640 S=ABS(INT(S~1.5))+1 : GOTO 60 700 REM EXTRACCION DE UNA CARTA 710 TeENT(10#RND)+1 ; J=INTC4*RND) +1 720 IF A(1,3)<>0 THEN 710 730 A(T,J)=K 740 RETURK 800 REM PUNTUACTON DE CADA JUCADOR 810 IF [<8 THEN T(K)@n(K) +r 820 IF I>=8 THEN T(K)=T(K)+.5 830 RETURN 1000 REM ESCRITURA DB LA CARTA 1010 IF I=1 THEN Ag="as" : GoTO 1070 1020 IF I<8 THEN A§=STRS(I) : GOTO 1070 1030 ON 1-7 GOTO 1040,1050,1060 1040 AS="soTA" : GoTo 1070 : GOTO 1070 1070 ON J GOTO 1080,1090,1100,1110 DE OROS" : GOTO 1120 DE CoPAS" : GOTO 1120 DE ESPADAS" : GOTO 1120 DE BasToSs" 1120 PRINT AS+B$ 1130 RETURN a 2. SIMULACIONES 13. LOTERIA '(6.24) Simula la extraccién de los tres primeros premios de la Loteria Nacional (nimmeros desde el 00000 al $9999). A um mismo mimero no le pueden tocar dos premios. El programa es muy sencillo. Consiste en obtener un nimero aleatorio A comprendido entre 0 y $9999, que seré el del primer premio, A continuacidn se extrae otro niimero B, para el segundo premio. Se com- para Boon A, y si son iguales, se efectia otra extraccién para B. Si no lo son, se pasa a extraer el tercer niimero C, que a su vez se compara con los anteriores. En el caso de coincidencias, se efectiia una nueva extraccién; y si no las hay, se past a imprimir los tres néimeros. 10 REM LOTERIA 20 ( BORRAR LA PANTALLA ) 30 A=INT(60000*RND) 40 BeINT(60000*RND) 50 IF B=A THEN 40 60 CHINT(60000*RND) 70 IF C=A OR THEN 60 80 PRINT "EL PRIMER PREMIO ES "3A 90 PRINT 100 PRINT "EL SEGUNDO PREMIO ES "3B 110 PRINT 120 PRINT "EL TERCER PREMIO BS "5C 130 END 65 14. LANZAMIENTO DE UNA MONEDA (6.16) Simular el lanzamiento le una moneda N veces. Al final interesa saber el mimero de lanzamientos y el nimero de caras y cruces. Durante los lanza- rmientos puedes hacer que cada vez que salga “cara” aparezca en la pantalla wn cardeter (C por ejemplo) y por cada “cruz” un signo +. ‘Simulamos la moneda mediante Ia funcién RND. En la linea 70 generamos aleatoriamente 0 6 1; segin salga uno u otro, imprimimos C 6 +. Hemos establecido un contador de caras en la segunda instruceién de la linea 80. 10 REM LANZAMIENTO DE UNA MONEDA 20 (-BORRAR LA PANTALLA ) 30 K=0 40 INPUT "NUMERO DE LANZAMIENTOS" ;N 50 ( BORRAR LA PANTALLA ) 60 FOR I=1 TO W 70 A=INT(2*RND) 80 IF A=O THEN PRINT "Cc" 90 PRINT "+"5 100 NEXT 1 110 FOR T=1 To 5 : PRINT : NEXT T 120 PRINT "NUMERO DE LANZAMIENTOS";N 130 PRINT "NUMERO DE CARAS" ;K 140 PRINT "NUMERO DE CRUCES";N-K 150 END K=K+1 : GOTO 100 15. {QUE QUINIELA! Obtén los 14 signos de una quiniela de fiitbol, teniendo en cuenta una pro- babilidad del 50% para el signo 1, del 30% para el signo X y del 20% para el signo 2. La solucion es equivalente al lanzamiento de un dado que tuviera diez caras. E] signo |, tiene una probabilidad de 5/10, el signo X de 3/10 y el signo 2 de 2/10. Por tanto, los valores del 1 al 5 son para el 1, del 6 al & para la X ye 9 y el 10 para el 2 Presentacion en pantalla: PeRTIOR 1 - SIGNO 1 PARTIDO 2 - SIGNO 1 PARTIDO 3 - SIGNO ¥ PARTIDO 4 - SIGNO 1 PARTION 5 - SIGNO x PARTIDO 6 - SIGNO x PARTIDO 7 - SIGNO 2 PARTIDO @ - SIGNO 1 PARTIDA 9 - SIGNO x PARTIOO 10 - SIGNO 1 PARTIDO 11 ~ SIGND 1 PARTING 12 - SIGNO 1 PARTIDO 13 - SIGNO 1 PARTIGO 14 - SIGNO 1 10 REM ! QUE QUINIELA | 20 REM LOS CATORCE PARTIDOS 30 FOR I™1 TO 14 4O REM LANZAMIENTO DEL DADO DE 10 CARAS 50 U*INT(LO*RND)+1 60 TF U<=5 THEN PRINT "PARTIDO";I;"~ sIcNO 1” JO IF U>5 AND U<9 THEN PRINT "PARTIDO";1;"- SIGNO X" 80 IF U28 AND U<=10 THEN PRINT "PARTIDO";T;"~ SIGNO 2 90 NEXT I 100 END 67 te QUINIELA MILLONARIA. ‘Obtén los 14 signos de una quiniela de fitbol, tentendo en cuenta una pro- abilidad igual para cada uno de los signos 1, X y 2. La solucién, en este caso, se nos presenta como el lanzamiento de un dado de tres caras. [dentificamos los niimeros con los signos de la siguiente ‘manera: el uno es el signo X, el dos es el signo 1 y el tres es el signo 2. Presentacién en pantall PARTIDO 1 - SiGNO 2 PARTIDG @ - SIGNO 1 PARTIDO 3 - SIGNO x 7 PARTIDO 4 - SIGNO x PARTIOD S - SIGNO x PARTIOD 6 - SIGNO 2 PARTION 7 ~ SIGNO 1 PARTIDO @ - SIGNO 2 FaRTIOO 9 ~ SIGN x PARTIDO 1@ - SIGNO x PARTIDO 11 - SIGNO 2 PARTIDO 12 - SIGNO 2 PARTIDO 13 - SIGNO 2 PARTIDO 14 - SIGNO 2 10 REM QUINTELA MILLONARIA 20 REM LOS CATORCE PARTIDOS 30 FOR I=1 To 14 40 REM LANZANIENTO DEL DADO DE 3 CARAS 50 U=INT(3*RND) +1 60 ON U GoTo 70,9 70 PRINT "PARTIDO! siGNo x” 80 GoTo 120 90 PRINT "PARTIDO";1;"~ szGNo 1 100 Goto 120 110 PRINT "PARTIDO";1;"- srcNo 2" 120 NEXT 1 130 END 68 17, LA BANERA (4.9) Una baiera tiene grifo y sumidero. Su capacidad es de L litros, el grifo echa G litvos por minuto y el sumidero desagua S en el mismo tiempo, Si con- sideramos el proceso desde que la bafiera tiene Lo litros, ceudnto tiempo tarda en vaciarse o lenarse? (Si G y $ son iguales ha de salir un aviso en pantalla.) Hemos de hacer un programa que nos dé Ia situacién del sistema minuto a mi- muta. ‘Unas de las posibilidades nuevas que oftecen los ordenadores es la de simular, répida y sencillamente, situaciones reales en condiciones ventajoses. Resulta sencillo realizar este experimento midiendo el volumen de la bafera ¥ el caudal del grifo, pero es problematica le alteracién a voluntad del caudal del desagiie, Para esta simulacién empleamos el siguiente algoritmo 1. Inicializar of tiempo, T 2. Hacer Entrada de datos hasta que Gy S sean distintos hhaper, mientras tanto, Escribir mensaje de aviso Fin de Hacer 3. Mientras 0 < Ly

También podría gustarte