tutorial_de_aventuras_en_basic

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
tutorial_de_aventuras_en_basic [2022/01/25 18:10] – creado perontutorial_de_aventuras_en_basic [2022/08/01 23:14] (actual) – [Conclusión] peron
Línea 1: Línea 1:
 ====== Tutorial de BASIC: "Crea tu propia aventura" ====== ====== Tutorial de BASIC: "Crea tu propia aventura" ======
  
-Este tutorial te presenta generalidades, pero está pensado siguiendo el dialecto GW-BASIC. Puedes usar [[PC-BASIC]].+Este tutorial sencillo te presenta generalidades del [[basic|lenguaje de programación BASIC]] para realizar un microprograma [[HISTORIA.BAS]]. Con ello podrás realizar un  [[aventuras de texto|juego de aventura de texto]] sencilloUtilizarás uno de nuestros [[interpretes_de_basic|intérpretes de BASIC]].
  
-¿Alguna vez has leído uno de esos libros de cuentos de "Sigue tu propia aventura"? En ellos leías algunos párrafos y luego debías tomar una decisión por el personaje principal. Luego pasas a otra página del libro y continuabas la historia. Podías interactuar así con las aventuras que seguía el personaje. Este tipo de libros son divertidos. Lo que es aún más divertido es escribir tu propio programa BASIC para hacer lo mismo.+===== Introducción =====
  
-El programa que abordaremos en este tutorial presentan una pantalla llena de historias y luego se te pide que tomes una decisión. Tu decisión hará que aparezca otra pantalla de la historia. En el caminoaprenderemos algunas declaraciones BÁSICAS más. Verá cómo se toman las decisiones en un programa de computadora y cómo la ejecución puede saltarse dentro de un programa.+¿Alguna vez has leído uno de esos libros de cuentos de "Sigue tu propia aventura"? En ellos leías algunos párrafos y luego debías tomar una decisión por el personaje principalLuego pasas a otra página del libro y continuabas la historia. Podías interactuar así con las aventuras predeterminadas que podía Seguir el personaje. Este tipo de libros son divertidosy lo que es aún más divertido aún es escribir tu propio relato y tu propio programa de BASIC capaz de "darle vida".
  
-Para comenzaringrese estas primeras veintiocho líneas del programa exactamente como están escritasAsegúrese de presionar ENTER después de cada línea. Una pista: después de escribir la línea 70 y presionar ENTER, puede mover el cursor hacia atrás hasta el número de líneacambiarlo a 80 presionar ENTER nuevamente. Esto ahorra mucho escribir. Use LIST con frecuencia para verificar su progreso.+=== Propuesta === 
 +El microprograma [[historia.bas]] que abordaremos en este tutorial presentan una pantalla el relatoy te solicitará que tomes la decisiónTu decisión hará que aparezca una segunda pantalla con la continuación de relato de la historia. En el caminoaprenderemos algunas órdenes declaraciones de BASIC; verás cómo se toman las decisiones en un programa de computadora y cómo la ejecución saltar dentro de un programa.
  
 +==== ¡A programar! ====
 +Para iniciar, abre el intérprete en tu [[emulador_de_terminal|terminal]]. Podrás utilizar [[bwbasic]]. Introduce el comando:
  
-<code basic>+<code
 +bwbasic 
 +</code> 
 + 
 +Para comenzar podrías tipear estas primeras veintiocho líneas del código BASIC exactamente como están escritas en tu intérprete de BASIC (por ejemplo, [[bwbasic|BwBASIC]])... ¡pero esto es engorroso! Simplemente //copia y pega//. Asegúrese de presionar **Intro** después de cada línea.  
 + 
 +> Si deseas teclear el código BASIC, te doy una ayuda para ahorrar tiempo: luego de escribir la línea 70 y presionar **Intro**, puedes mover el cursor hacia atrás hasta el número de línea, cambiarlo a 80 y presionar Intro nuevamente. Esto ahorra mucho escribir. Ingresa el comando **LIST** con frecuencia para verificar tu progreso. 
 + 
 +== Primera parte del código fuente en BASIC == 
 +<code freebasic>
 10  REM ************************************************************* 10  REM *************************************************************
 20  REM *  HISTORIA                                                 * 20  REM *  HISTORIA                                                 *
Línea 41: Línea 53:
 </code> </code>
  
-===== REMARKS =====+===== Comentarios =====
  
 +Observa las líneas 10 a 40. ''REM'' es una declaración de BASIC que no hace nada, significa "comentario". El propósito de ''REM'' es agregarle comentarios al programa. Estos comentarios ayudan al programador a comprender cómo funciona el programa. Las palabras a continuación de ''REM'' no se imprimen en pantalla durante la ejecución. Solo son visibles listando el código fuente.
  
-Observe las líneas 10 a 40. REM es una declaración de BASIC que no hace nada. Significa "comentario". El propósito de REM es agregarle comentarios al programa. Estos comentarios ayudan al programador a comprender cómo funciona el programa. Las palabras a continuación de REM no se imprimen en pantalla durante la ejecución. Solo son visibles listando el código fuente. +> Los comentarios son importantes. Cuando termines de escribir tu programa, probablemente comprendas todo de él. Sin embargo, transcurridos unas semanas te resultará irreconocible Los comentarios ayudan. A diferencia de la era del [[DTSS|BASIC de Darthmouth]], hoy la memoria es prácticamente gratuita! Por lo tanto ¡Usa ''REM'' generosamente!
- +
-> Los comentarios son importantes. Cuando termines de escribir tu programa, probablemente comprendas todo de él. Sin embargo, transcurridos unas semanas te resultará irreconocible Los comentarios ayudan. A diferencia de la era del [[DTSS|BASIC de Darthmouth]], hoy la memoria es prácticamente gratuita! Por lo tanto ¡Usa REM generosamente!+
  
 El pequeño rectángulo hecho de asteriscos se llamaba //caja de flores//. Se acostumbraba colocar el nombre del programa, en este caso, //HISTORIA//, junto con una breve descripción del cometido del programa. Generealmente la caja de flores solía tener 40 caracteres de ancho. De hecho, algunos programas contenían más comentarios que describen el programa que líneas de instrucciones de BASIC a interpretar. Los asteriscos no tienen relevancia alguna en este caso. Podrás utilizar cualquier carácter. El propósito es únicamente proporcionar un atractivo cartelón informativo. El pequeño rectángulo hecho de asteriscos se llamaba //caja de flores//. Se acostumbraba colocar el nombre del programa, en este caso, //HISTORIA//, junto con una breve descripción del cometido del programa. Generealmente la caja de flores solía tener 40 caracteres de ancho. De hecho, algunos programas contenían más comentarios que describen el programa que líneas de instrucciones de BASIC a interpretar. Los asteriscos no tienen relevancia alguna en este caso. Podrás utilizar cualquier carácter. El propósito es únicamente proporcionar un atractivo cartelón informativo.
  
  
-==== VARIABLES ====+==== Variables ====
  
-La línea 270 es una instrucción **INPUT**. INPUT detiene el programa y espera la entrada del teclado. Lo ingresado con el teclado, en la línea 270, se almacenará en una //variable// denominada //OPCION%//. Dado que las variables juegan rol importante en la programación, debemos examinarlas en detalle.+La línea 270 es una instrucción **INPUT**. ''INPUT'' detiene el programa y espera la entrada del teclado. Lo ingresado con el teclado, en la línea 270, se almacenará en una //variable// denominada ''OPCION%''. Dado que las variables juegan rol importante en la programación, debemos examinarlas en detalle.
  
-=== NOMBRES DE VARIABLES ===+=== Nombres de Variables ===
  
-Los nombres de variables deben crearse de acuerdo con ciertas reglas en BASIC. Por ejemplo, los nombres de variables deben comenzar con una letra del alfabeto y no puede tener más de cuarenta caracteres. El nombre puede incluir números. Estas son las reglas de BASIC, y no son muy estrictas. ¡Pero es igual de importante inventar nombres de variables que sean significativos para los seres humanos! Después de todo, BASIC funciona igual de bien con una variable llamada TKBRYIOPESFG% que con una llamada OPCION%. Pero, ¿cuál crees que sería más fácil de entender?+Los nombres de variables deben crearse de acuerdo con ciertas reglas en BASIC. Por ejemplo, los nombres de variables deben comenzar con una letra del alfabeto y no puede tener más de cuarenta caracteres. El nombre puede incluir números. Estas son las reglas de BASIC, y no son muy estrictas. ¡Pero es igual de importante inventar nombres de variables que sean significativos para los seres humanos! Después de todo, BASIC funciona igual de bien con una variable llamada ''TKBRYIOPESFG%'' que con una llamada ''OPCION%''. Pero, ¿cuál crees que sería más fácil de entender?
  
-La elección de los nombres de las variables es importante ya que un programa puede tener muchas de ellas. Si usas nombres son confusos, podrías confundir accidentalmente una variable con otra. Por demás, resiste la tentación de inventar nombres de variables lindos e ingeniosos. Nombres como RENGO$ y PORDIOSERA$ son divertidos de imaginar pero difíciles para seguir. Un buen programa debe ser fácil de entender, por lo cual emplea nombres de variables obvios. NOMBRE$ no puede sonar muy épico, pero al menos es evidente qué datos incorpora.+La elección de los nombres de las variables es importante ya que un programa puede tener muchas de ellas. Si usas nombres son confusos, podrías confundir accidentalmente una variable con otra. Por demás, resiste la tentación de inventar nombres de variables lindos e ingeniosos. Nombres como ''RENGO$'' ''PORDIOSERA$'' son divertidos de imaginar pero difíciles para seguir. Un buen programa debe ser fácil de entender, por lo cual emplea nombres de variables obvios. ''NOMBRE$'' no puede sonar muy épico, pero al menos es evidente qué datos incorpora.
  
-Ciertas palabras no se pueden utilizar como nombres de variables. Estas se llaman PALABRAS RESERVADAS e incluyen todos los comandos de BASIC. Por ejemplo, sabemos que PRINT y CLS son instrucciones de BASIC. Por lo tanto, no podrás utilizarlos también como nombres de variables ya que confundirían al intérprete computarizado. La lista de palabras reservadas es bastante larga. Entre estas palabras se incluyen palabras como NAME y PRINT. Si bien no es posible duplicar exactamente estas palabras como nombres de variables, puede usar nombres que incluyan la palabra reservada, por ejemplo NAMES o PRINTER, que podrían utilizarse perfectamente.+Ciertas palabras no se pueden utilizar como nombres de variables. Estas se llaman PALABRAS RESERVADAS e incluyen todos los comandos de BASIC. Por ejemplo, sabemos que ''PRINT'' ''CLS'' son instrucciones de BASIC. Por lo tanto, no podrás utilizarlos también como nombres de variables ya que confundirían al intérprete computarizado. La lista de palabras reservadas es bastante larga. Entre estas palabras se incluyen palabras como ''NAME'' ''PRINT''. Si bien no es posible duplicar exactamente estas palabras como nombres de variables, puede usar nombres que incluyan la palabra reservada, por ejemplo ''NAMES'' ''PRINTER'', que podrían utilizarse perfectamente.
  
-Aunque BASIC tiene una larga lista de palabras reservadas, es probable que solo unas pocas sean molestas. La mayoría son declaraciones bastante extrañas que no serían muy útiles como nombres de variables. Asegúrese de revisar el apéndice. Cuando se utiliza una palabra reservada como nombre de variable, BASIC emitirá un mensaje de error de sintaxis. A menudo, este tipo de errores son desconcertantes. La línea de BASIC parece correcta en todos los aspectos. BASIC ni siquiera insinúa que haya usado una palabra reservada. BASIC solo sabe que su programa ha usado un comando BASIC incorrectamente. Pruebe un programa con la declaración INPUT DATE$ para ver cómo se ve este error.+Aunque BASIC consta de una larga lista de palabras reservadas para el idioma inglés, es probable casi ninguna sea molesta en castellano. La mayoría son declaraciones bastante extrañas que no serían muy útiles como nombres de variables. Cuando utilices una palabra reservada como nombre de variable, BASIC emitirá su inefable error de sintaxis "**SYNTAX ERROR**". A menudo, este tipo de errores son desconcertantes. La línea de BASIC podría parecer correcta en todos los sentidos. BASIC ni siquiera insinúa que has utilizado una palabra reservada. BASIC solo entiende que tu programa ha estipulado un comando BASIC incorrectamente. Prueba un programa con la declaración ''INPUT DATE$'' para comprender cómo se ve este error.
  
-Aquí hay una lista de las reglas para nombrar variables:+Aquí hay una lista de las reglas para tu nombre de variable:
  
 +  *     No uses mas de 40 caracteres.
 +  *     El nombre de variable debe comenzar con una letra.
 +  *     El nombre de variable puede contener letras y números.
 +  *     Un nombre de variable no puede contener espacios.
 +  *     El nombre no puede ser un comando de BASIC.
  
-  *     Use no more than 40 character. +=== Tipos de Variable ===
-  *     The variable name must start with a letter of the alphabet. +
-  *     The name may contain both letters and numbers. +
-  *     A variable name may not contain blank spaces. +
-  *     The name cannot be a reserved word.+
  
-=== VARIABLE TYPES === 
  
 +Compara la declaración ''INPUT'' en la línea 270 con la declaración ''INPUT'' del capítulo uno. Observe los nombres de las variables utilizadas en cada programa. En el primer programa usamos el nombre QUIEN$. En la línea 270 tenemos ''OPCION%''. Ambos nombres son variables. Sin embargo, son diferentes. ''QUIEN$'' y ''OPCION%'' son ejemplos de dos //tipos diferentes de variables// utilizadas en BASIC.
  
-Compare the INPUT statement on line 270 with the INPUT statement from chapter one. Notice the variable names used in each programIn the first program we used the name WHO$On line 270 we have CHOICE%Both of these names are variablesHoweverthey are differentWHOand CHOICEare examples of two of the different TYPES of variables used in BASIC.+Anteriormente definimos un nombre de variable como un casilla de correoDisponíamos de varios tipos de buzonesDos números de esperaEl otro tiene caracteres y númerosPor lo tantocuando se define una variable, debes decidir qué tipo de buzón será. El tipo de variable está determinado por el último carácter del nombre de la variableEsto explica la diferencia entre ''QUIEN$'' y ''OPCION%''.
  
-Earlier we defined a variable name as a mailbox. We have several kinds of mailboxes. Two hold numbers. The other holds characters and numerals. Thus, when a variable is defined, you must decide which kind of mailbox it will be. The variable type is determined by the last character of the variable name. This explains the difference between WHO$ and CHOICE%. +Un nombre de variable terminado con signo de porcentaje (''%''se denomina **variable entera**Este tipo de variable solo puede contener números enterosEsto significa que ''OPCION%'' solo puede contener números tales como 2, 45, 611 10451. No puede contener números fraccionales como 2,25,75. Por lo tantoal programar con la instrucción ''INPUT OPCION%''el usuario solo podrá ingresar un número enteroSi ingresase letras, BASIC emitiría el mensaje:
- +
-A variable name which ends with a percent sign (%) is called an INTEGER variable. This type of variable may only hold whole numbersThis means that CHOICEmay only contain numbers such as 2, 45, 611, or 10451. It cannot hold fractional numbers such as 2.or 25.75. Thuswhen you write INPUT CHOICE%, the person using the program should only enter a whole numberIf letters are entered, BASIC will issue the message:+
  
 <code> <code>
Línea 87: Línea 97:
 </code> </code>
  
-and the program will not continue until they enter numbersOn the other handif a person enters a number, but the number is not a whole number, BASIC will round it to the nearest whole numberFor exampleif 23.6 is entered for INPUT CHOICE%, BASIC will put 24 into the variable. No error message is issuedInteger variables may hold numbers no larger than 32,767, and no smaller than -32,768. To explore how BASIC handles integer variables, try replying with several numbers, whole and fractional, as well as letters in response to this simple program:+...y el programa no continuaría sino hasta que ingresase números enteros. Por otro ladosi el usuario ingresa un número que no es entero, BASIC lo redondeará al entero más cercanoPor ejemplosi se ingresa ''23.6'' al pedido de ''OPCION%'', BASIC asignará ''24'' a dicha variable, sin emitir mensaje de error algunoLas variables enteras no pueden contener números no mayores de ''32.767'' ni menores de ''-32.768''
  
-<code> +Para explorar cómo BASIC maneja las variables enteras, intente ingresarle a la variable varios números, tanto enteros como fraccionales, así como con letras. a este sencillo programa: 
-10 PRINT "Enter something+ 
-20 INPUT CHOICE+<code freebasic
-30 PRINT CHOICE%+10 PRINT "Ingresa algo:
 +20 INPUT OPCION
 +30 PRINT OPCION%
 </code> </code>
  
-variable name which ends with an exclamation point (!) can hold fractional numbers such as 35.9 or 3.14159, as well as whole numbersThis type of variable is called a SINGLE PRECISION variableIt can hold most any value that we will need in our programs. Since a single precision variable may contain whole numbers the same way as integer variables, you might wonder why integer variables would be usefulThere are two reasonsFirstprograms written using integer variables run somewhat faster than those using single precision variables. Secondlyand more importantly, it is easier to write program that uses only whole numbers. This will become apparent as we learn more about programming.+Un segundo tipo de variable se denomina **Variable de Precisión**, y van terminadas en un signo de exclamación (!). Estas puede contener números fraccionarios como ''35,9'' o ''3,14159''así como números enterosPodrá contener casi cualquier valor que necesitemos en nuestros programasDado que la variable de precisión puede contener números enteros al igual que las variables enterascabría preguntarse para qué usaríamos las variables enteras... nomás para molestar. Pero existen dos razones. En primer lugarlos programas escritos con variables enteras se interpretaban más velozmente que aquellos que utilizaban variables de precisión simpleEn segundo lugares más fácil escribir un programa que utilice unicamente números enteros. Esto se hará evidente medida que aprendamos más sobre la programación.
  
-Here is a good rule of thumbuse integer variables whenever possible.+Sigue esta reglausa variables enteras toda vez que puedas. Usa variables de precisión sólo cuando debas.
  
-The final type of variable that we will explore is the STRING variableA string variable name ends with a dollar sign ($). WHOis a string variable. String variables hold characters rather than numbersA single string variable can hold up to 255 charactersThese characters can be anything on your keyboardincluding spaces and numerals. Here is a chance for confusion.+El último tipo de variable que exploraremos es la **Variable de Cadena** (STRING)El nombre de una variable de cadena termina con un signo peso (''$''). ''QUIÉN$'' es una variable de cadenaEstas variables de cadena contienen caracteres en lugar de númerosUna sola variable de cadena puede contener hasta 255 caracteresEstos caracteres pueden ser cualquiera de caracteres alfanuméricosincluidos espacios y números (sin incluir letras acentuadas ni eñes)
  
-Numerals, not numbers, may be characters. Consider the difference between numerals and numbers. The Roman numeral V, the word five, and the numeral 5, all represent the same number. Each is just a different way of writing. Whenever a numeral is stored in a string variable, it is just a NAME for a number. This becomes important when we learn how to do arithmetic with variables. We may take two integer variables, for example, and add them together. If we try this with string variables, BASIC issues an error message. BASIC cannot do arithmetic with string variables even if these variables hold numerals that look like numbers.+He aquí una pequeña posibilidad de confusión que debes atender.
  
-This sounds more complicated than it isJust rememberif you need a variable to hold charactersuse a string variableIfinsteadyou need to perform a calculationuse either an integer or a single precision variable. +Los caracteres pueden ser cifras, no numéricas. Considera la diferencia entre numerales y númerosEl numeral romano ''V''la palabra ''cinco'' y el número ''5'' representan el mismo número. Sólo se diferencian en la manara de escribirlo. Cada vez que almacenas un //número// como una //variable de cadena//__será solo un //NOMBRE//__ para dicho númeroEsto será importante al hacer aritmética con variables. Podrías tomar dos variables enteraspor ejemploy sumarlas. Si intentases esto con variables de cadenaBASIC emitirá un mensaje de error. BASIC está imposibilitado de hacer aritmética con variables de cadena incluso si estas variables contienen nombres de números.
-EXAMPLES OF VARIABLES+
  
-Study these example of variables to check your understanding.+Suena más complicado de lo que es en realidad. 
 + 
 +> Recuerda: si necesita una variable que contenga caracteres, use una variable de cadena. Si, en cambio, necesita realizar un cálculo, usa un número entero o una sola variable de precisión.
  
-Name Contents Description 
-Team1$ Hokies Horrect. 
-DATE$   Incorrect. DATE$ is a reserved word. 
-NUMBER% 123 Correct. 
-STREET% 10 downing incorrect. Integer variables can only contain a number. 
-STREET$ 10 Downing correct 
-1STPLACE$   Incorrect. Variable names must begin with a letter. 
-COUNT% 45321 Incorrect. Numbers larger than 32,767 cannot be held in an integer variable. 
-GASLEFT! 855.66 Correct. 
-TONE% 600.8 BASIC will round TONE% to 601. 
-WHO$ Elmer P. Fudd Correct. 
  
 ===== IF - THEN - ELSE ===== ===== IF - THEN - ELSE =====
  
-At line 280 we finally arrive at the real power of programmingthe ability to make decisions. BASIC uses the IF-THEN-ELSE statement to make choices, and even change the way the program runs depending on certain conditionsSince the result depends on conditionsthe IF statement is called a conditional instructionContrast line 280 with all the lines that are listed before itIn every case, BASIC will carry out whatever the instruction asksBut at line 280, BASIC is testing our integer variable CHOICEto see if it holds the number twoIf it doesone result happensIf it does notanother action is taken.+En la línea 280 llegamos finalmente al verdadero poder de la programaciónla capacidad de tomar decisiones. BASIC usa la declaración ''IF''-''THEN''-''ELSE'' para tomar decisiones e incluso cambiar la forma en que se ejecuta el programa dependiendo de ciertas condicionesComo el resultado depende de las condicionesla instrucción ''IF'' se denomina //instrucción condicional//Observa la línea 280 y compárala con las líneas que se enumeradas anteriormenteEn todos los casos, BASIC ejecutará lo ordenado por la instrucciónPero al dar con la línea 280, BASIC evaluará la variable entera ''OPCION%'' para determinar si contiene el número dosSi la tieneocurrirá un resultadoSi no es asírealizará otra acción.
  
-The IF statement has three parts:+La declaración ''IF'' consta de tres partes:
  
-IF condition THEN alternative 1 ELSE alternative 2+<code freebasic> 
 +IF condición THEN alternativa1 ELSE alteranativa2 
 +</code>
  
-The three parts are the conditionalternative 1, and alternative 2The condition is some relationship that BASIC tests to see if it is trueOn line 280, the conditional test is whether CHOICEequals 2. Alternative 1 and alternative 2 are the two choices BASIC can makeIf the condition is truethen alternative 1 is executedIf the condition is not truethen alternative 2 is executedIn other wordsif the person running our STORY program enters a in response to line 270, then the condition is true, and GOTO 600 is executed (Don't worry about what GOTO means, we'll cover it soon). If the person enters anything other than a 2, GOTO 300 is executed.+Las tres partes son la //condición//la //alternativa1// y la //alternativa2//La condición es una relación que BASIC evalúa para determinar su validezEn la línea 280, la evaluación condicional delimita si ''OPCION%'' es igual a ''2''La //alternativa1// y la //alternativa2// son las dos opciones que BASIC puede correrSi la condición es verdaderaentonces ejecutará la //alternativa1//Si la condición no es verdaderaentonces se ejecuta la //alternativa2//En otras palabrassi el usuario de nuestro programa HISTORIA ingresa ''2'' como respuesta a la línea 270, entonces la condición será verdadera y se ejecuta ''GOTO 600'' para ir la línea 600. Si la persona ingresa algo que no sea un ''2''se ejecutará GOTO 300.
  
-The two alternatives listed inside of the IF statement can be any ordinary BASIC commandsIn this caseboth are GOTO statementsThey could just as readily be PRINT or CLS commandsFor example:+Ambas //alternativas// enumeradas dentro de la declaración ''IF'' podrían ser cualquier comando BASIC ordinarioEn este casoambas son instrucciones ''GOTO''Podrían ser fácilmente comandos ''PRINT'' o ''CLS''Por ejemplo:
  
-<code> 
-280 IF CHOICE% = 2 THEN CLS ELSE PRINT "Hey Cool" 
-</code> 
  
-In our example, CHOICE% is a integer variable. Other variable types may also be used. We could change CHOICE% to CHOICE! and still see if it equalled 2. String variables can likewise be tested. +<code freebasic
- +280 IF OPCION% THEN CLS ELSE PRINT "Ok! Perfecto!"
-<code> +
-280 IF WHO$ "Brian" THEN PRINT "Hi" ELSE PRINT "Who are you?"+
 </code> </code>
  
-Notice that the character string Brian is enclosed in quotation marksRemember our discussion of the PRINT statement from chapter oneQuotation marks tell BASIC to use the characters exactly as we have written them. If Brian were not in quotation marks, BASIC would try to use it as variable nameWhen the program runs, the person at the keyboard does not have to enter quotation marks.+En nuestro ejemplo, ''OPCION%'' es una variable enteraTambién es posible utilizar los otros tipos de variables¡Podríamos cambiar ''OPCION%'' ''OPCION''! y todavía ver si es igual a ''2''También podríamos probar las variables de cadena.
  
-One further note about testing string variables: computers are dumb. They only do exactly what you tell them to do. If you ran the above line of BASIC and entered brian or BRIAN, the program would print 
  
-<code> +<code freebasic
-Who are you?+280 IF QUIEN$ = "Laura" THEN PRINT "Hola" ELSE PRINT "Quien eres tu?"
 </code> </code>
  
-BRIAN is not the same as BrianA character string inside of quotation marks must EXACTLY match the contents of the variable. The letterscapitalization, even the number of blank spaces, if any, must exactly match. This can be very challenging to a programmer.+Observa que la cadena de caracteres ''Laura'' está entre comillasLas comillas instruyen a BASIC que use los caracteres exactamente tal como los has escrito. Si ''Laura'' no estuviera entre comillas, BASIC intentaría usarla como un //nombre de variable//Al ejecutar el programala persona en el teclado no debe que ingresar comillas.
  
-The last part of the IF-THEN-ELSE statement is not always requiredThe ELSE may be omitted along with the second alternative. This would leave us with an IF-THEN command. We could write line 280 as:+> las computadoras solo cumplen exactamente lo que les instruye que hagan 
 + 
 +Si corres la línea anterior de BASIC e ingresas ''laura'' o ''LAURA'' en lugar de ''Laura'' ¡el programa no sabría quién eres e indicaría:
  
 <code> <code>
-280 IF CHOICE% = 2 THEN GOTO 600+Quien eres tu?
 </code> </code>
  
-If CHOICE% does not equal twothen the first alternative would not be executedInsteadBASIC would continue with the next line after 280. If that line happened to be line 300 the two IF statements would produce the same result! Thusevery IF statement has an ELSE even if the ELSE is not written as part of the instruction.+Para el intérprete de BASIC''LAURA'' no es lo mismo que ''Laura''Una variable de cadena entrecomilladas indica que debe cumplirse __exactamente tal cual__ el contenido proporcionado de la variable: deben ser iguales todas las letraslas mayúsculasy la cantidad de eventuales espacios en caso que los hubiese. Esto puede ser desafiante para los programadores.
  
-In all of our examples so far, we have tested to see if a variable is equal to some valueOther tests can be usedWe can use all of the ordinary arithmetic comparisons such as greater than, less than, or not equalHere is how these OPERATORS, as they are called, are written:+La última parte de la instrucción ''IF''-''THEN''-''ELSE'' no siempre es necesariaEl ''ELSE'' puede omitirse junto con la segunda alternativaEsto nos dejaría con un tren de instrucciones mucho más sencillo: ''IF''-''THEN''Podrías escribir la línea 280 como:
  
-= equal to+<code freebasic> 
 +280 IF OPCION% 2 THEN GOTO 600 
 +</code>
  
-< less than+Si ''OPCION%'' no es igual a ''2'', entonces no se ejecutaría //alternativa1//. En cambio, BASIC continuaría con la siguiente línea después de la 280. Si esa línea fuese la línea 300, ¡las dos declaraciones ''IF'' producirían el mismo resultado! Por lo tanto, cada declaración ''IF'' tiene un ''ELSE'' incluso si ''ELSE'' forma parte de la instrucción.
  
-> greater than+En todos nuestros ejemplos hasta ahora, hemos probado para ver si una variable es igual a algún valor. Podrás utilizar otras comprobaciones. Usar todas las comparaciones aritméticas ordinarias, incluyendo //mayor que//, //menor que// o //no igual//. Estos **operadores** se escriben de la siguiente manera:
  
-<= less than or equal to+<code> 
 += Igual a 
 +< Menor que 
 +> Mayor que 
 +<= Igual o menor que 
 +=> Igual o Mayor que 
 +<> No igual a 
 +</code>
  
-=> greater than or equal to+Con la excepción del último, todos los operadores deberías estar familiarizado con estos operadores. Al utilizar operadores en BASIC los operadores que constan de más de un  (como''=>'') deben escribirse sin espacio entre los dos caracteres. He aquí algunos ejemplos de declaraciones ''IF''-''THEN''. Revise cada una para verificar su comprensión.
  
-<> not equal to 
  
-With the exception of the last, these operators should be familiar. When used in a BASIC program, the operators that have more than one character, such as =>, are written without a space between the two characters. Here are some sample IF-THEN statements.Review each one to check your understanding. +<code freebasic
- +280 IF OPCION% = 2 THEN GOTO 600 ELSE GOTO 300 
-<code basic+290 IF OPCION% <> 2 THEN GOTO 300 ELSE GOTO 600 
-280 IF CHOICE% = 2 THEN GOTO 600 ELSE GOTO 300 +300 IF ADIVINADO% = NUMERO% THEN GOTO 140 
-290 IF CHOICE% <> 2 THEN GOTO 300 ELSE GOTO 600 +310 IF ADIVINADO% > NUMERO% THEN PRINT "Muy alto
-300 IF GUESS% = NUMBER% THEN GOTO 140 +320 IF ADIVINADO% < NUMERO% THEN PRINT "Muy bajo"
-310 IF GUESS% > NUMBER% THEN PRINT "Too High+
-320 IF GUESS% < NUMBER% THEN PRINT "Too Low"+
 330 IF SUB! <= 0 THEN GOTO 500 330 IF SUB! <= 0 THEN GOTO 500
 340 IF SUB! => 4 THEN GOTO 500 340 IF SUB! => 4 THEN GOTO 500
-350 IF ANSWER$ = "y" THEN ANSWER$ = "Y+350 IF RESPUESTA$ = "s" THEN RESPUESTA$ = "S
-360 IF QUANTITY% - SUB% < 1 THEN GOTO 600 +360 IF CANTIDAD% - SUB% < 1 THEN GOTO 600 
-370 IF X% = 2 THEN TWOS% = TWOS% + 1+370 IF X% = 2 THEN DOS% = DOS% + 1
 </code> </code>
  
-These statements are not a real programDon't bother to enter them on your computerThey are for examples, onlyLet's discuss someLine 290 above is a different way of writing line 280 in our STORY programNote that it has exactly the same effectCompare the two lines.+Estas instrucciones no constituyen un programa real. No te molestes en ingresarlos en el [[interpretes_de_basic|intérprete de BASIC]]Solo son ejemplosHablemos de algunosLa línea 290 anterior es una forma distinta de escribir la línea 280 del programa HISTORIATen en cuenta que producirá exactamente el mismo efectoCompara ambas.
  
-In line 300, we compare two variables! Alsonote that line 300 does not use an ELSE commandLine 300, and the rest of the examples, are simple IF-THEN statementsLine 310 asks if the number contained in GUESSis greater than the number contained in NUMBER%. Line 320 tests if GUESSis less than NUMBER%.+¡En la línea 300, comparamos dos variables! Ademásten en cuenta que la línea 300 no usa una instrucción ''ELSE''La línea 300 y el resto de los ejemplos resultan ser declaraciones simples de ''IF''-''THEN''La línea 310 preguntará si el número contenido en ''ADIVINA%'' es mayor que el número contenido en ''NUMERO%''La línea 320 prueba si ''ADIVINA%'' es menor que ''NUMERO%''.
  
-Lines 330 and 340 use less than or equal to and greater than or equal to.+Las líneas 330 340 usan menor o igual que y mayor o igual que.
  
-Line 350 is interestingThis checks what is held inside string variable ANSWER$. If it is a lower case "ythen the program changes it to an upper case "Yinside the variable. Remember that the condition is tested firstand thenonly if true, will alternative 1 be executedThis is why the same variable nameANSWER$, can be used in the conditional test and then changed in the alternative.+La línea 350 es interesanteEsto verifica lo que se contiene dentro de la variable de cadena ''RESPUESTA$''Si es una "''s''minúscula, el programa la cambia a una "''S''mayúscula dentro de la variable. Recuerde que primero se prueba la condición y luegosolo si es verdaderase ejecutará la //alternativa1//Esta es la razón por la cual el mismo nombre de variable, ''RESPUESTA$''puede usarse en la prueba condicional y luego cambiarse en la alternativa.
  
-Line 360 is an advanced example. BASIC subtracts SUB% from QUANTITYand then checks to see if this number is less than oneWe will explore arithmetic more later. Just consider this example as one of the more powerful uses of the IF-THEN statement. +la Linea 360 ​​es un ejemplo avanzado. BASIC resta SUB% de CANTIDADy luego verifica si este número es menor a ''1''Solo considere este ejemplo como uno de los usos más poderosos de la instrucción ''IF''-''THEN''.
-GOTO+
  
-When we first looked at the IF-THEN-ELSE statement in line 280 of our STORY program, we saw that both alternative 1 and alternative 2 used GOTO statements. Now it is time to discuss GOTO.+==== GOTO ====
  
-Fortunately, GOTO is much simpler than IF-THEN-ELSE. When running a programthe BASIC interpreter usually executes statements in line number order. However, when a GOTO is discovered, execution BRANCHES to whatever line number is written as part of the GOTO statement. Line 280 contains two GOTO commands.+Cuando observamos por primera vez la sentencia ''IF''-''THEN''-''ELSE'' en la línea 280 de nuestro programa HISTORIAvimos que tanto la //alternativa1// como la //alternativa2// usaban sentencias GOTO.
  
-<code basic+Afortunadamente, ''GOTO'' es mucho más simple que ''IF''-''THEN''-''ELSE''. Cuando se ejecuta un programa, el intérprete BASIC generalmente ejecuta declaraciones en orden de número de línea recibido. Sin embargo, cuando se descubre un ''GOTO'', la ejecución se desplazará a cualquier número de línea que esté escrito como predicado de la instrucción ''GOTO''. La línea 280 contiene dos comandos ''GOTO''
-280 IF CHOICE% = 2 THEN GOTO 600 ELSE GOTO 300+ 
 +<code freebasic
 +280 IF OPCION% = 2 THEN GOTO 600 ELSE GOTO 300
 </code> </code>
  
-If CHOICEis then the next line to execute is line 600. If CHOICEis not 2, then the next line to execute is line 300.+Si ''OPCION%'' es ''2'', la siguiente línea a ejecutar será la línea 600. Si ''OPCION%'' no es ''2''la siguiente línea a ejecutar será la línea 300.
  
-The GOTO command is useful inside of an IF-THEN statementIt can also be used by itselfTo fully understand how this statement worksexperiment with the following program:+El comando ''GOTO'' cobra gran utilidad dentro de una instrucción ''IF''-''THEN''También se puede usar un solo ''GOTO''Para comprender cómo funciona esta declaraciónexperimenta con el siguiente programa:
  
-<code basic+<code freebasic
-10 PRINT "This is line 10"+10 PRINT "Esta es la línea 10"
 20 GOTO 50 20 GOTO 50
-30 PRINT "This is line 30"+30 PRINT "Esta es la línea 30"
 40 GOTO 70 40 GOTO 70
-50 PRINT "This is line 50"+50 PRINT "Esta es la línea 50"
 60 GOTO 30 60 GOTO 30
 70 END 70 END
 </code> </code>
  
-GOTO provides the ability to skip around in a programWhen our little program runs, it will execute the lines in this order:+GOTO te da la posibilidad de trampolinear dentro del programa
  
-<code> +Cuando el programita corra, se ejecutará siguiendo este orden: 
-10 PRINT "This is line 10"+ 
 +<code freebasic
 +10 PRINT "Esta es la linea 10"
 20 GOTO 50 20 GOTO 50
-50 PRINT "This is line 50"+50 PRINT "Esta es la linea 50"
 60 GOTO 30 60 GOTO 30
-30 PRINT "Esto es la línea 30"+30 PRINT "Esta es la línea 30"
 40 GOTO 70 40 GOTO 70
 70 END 70 END
 </code> </code>
  
-If you made a mistake in entering this programyou may have discovered something called a LOOP. A loop occurs when the program does not endExamine this program:+Si has cometido un error al ingresar este programaes posible que haya dado con algo llamado **bucle** ("loop"). Se produce un bucle cuando el programa no termina nuncaExamina este programa:
  
-10 PRINT "Esto es la línea 10"+<code freebasic> 
 +10 PRINT "Hola Humanoide!"
 20 GOTO 10 20 GOTO 10
 +</code>
  
-Line 10 will be executed over and overIndeedyou must press the CTRL-Break key to end the programIn this examplethe cause of the loop is clearLine 20 asks BASIC to execute line 10. Then BASIC executes line 20 again. BASIC does not know that it already executed line 20. Remember, your computer will only do exactly what you tell it to do.+La línea 10 se ejecutará una y otra vezDe hechodebe presionar las teclas **CTRL-c** para interrumpir la interpretación y ejecución del programaEn este ejemploel motivo del bucle es evidenteLa línea 20 le pide a BASIC que ejecute la línea 10. Luego, BASIC ejecuta la línea 20 nuevamente. BASIC no sabe que ya ejecutó la línea 20. Recuerda: "El ordenador cumplirá las órdenes que le han dado". ¡Asegúrate de correr tu propio código!. Usa software libre.
  
-Unfortunatelythe cause of loops is not always as clear as in this last exampleIn long programsmany GOTO statements might be used and it is difficult to see exactly how a loop was createdFor this reasontry to avoid using GOTO. Think carefully about your program and plan it so that a GOTO is used only when necessary. A program using many GOTOs is called SPAGHETTI CODE. Understanding spaghetti code is like following a noodle in a plate of spaghetti.+Desafortunadamentela causa de los bucles no siempre es tan evidente como en este último ejemploEs común usar muchas secuencias ''GOTO'' en programas largosy esto puede hacer difícil ver el sentido del buclePor este motivotrate de evitar el uso de ''GOTO''Piensa detenidamente en tu programa y planifícalo de manera que se use un ''GOTO'' solo cuando es absolutamente necesario.
  
-===== PROGRAM LOGIC =====+> Los programas que utilizaban muchas instrucciones ''GOTO'' recibían el apodo de CÓDIGO ESPAGUETI. ¡Dilucidar código espagueti era como seguir un fideo en un plato!
  
 +===== Lógica del Programa =====
  
-With the IF-THEN and GOTO statementswe introduced the ability to make decisions and change directionThese are powerful capabilitiesWe know thatalthough the computer is going to run one line after another, these statements may not necessarily run in line number orderBecause of this we must spend some effort thinking about the LOGIC of our programsThis is the part where clear thinking is needed.+Con las declaraciones ''IF''-''THEN'' y ''GOTO''introdujimos la capacidad de tomar decisiones y saltar a distintos sectores del programa BASIC¡Son capacidades poderosas!Aunque el ordenador ejecute una línea tras otrasabemos entonces que es muy posible las estas declaraciones no necesariamente se ejecuten en el orden estipulado por número de líneaPor tal motivo debes esforzarte en pensar en la __lógica de los programas__Esta es la parte donde se requiere un pensamiento preclaro.
  
-Consider line 280 once again:+Considere la línea 280 una vez más:
  
-<code basic+<code freebasic
-280 IF CHOICE% = 2 THEN GOTO 600 ELSE GOTO 300+280 IF OPCION% = 2 THEN GOTO 600 ELSE GOTO 300
 </code> </code>
  
-In our PRINT statements in lines 200 and 210, we asked the person running STORY to enter a or a 2. But in line 280 we only check to see if they entered a 2. Why?+En las instrucciones ''PRINT'' de las líneas 200 210, le pedimos al usuario de HISTORIA que ingrese un o un 2. Pero en la línea 280 solo verificamos si ingresaron un 2. ¿Por qué sucede esto?
  
-The reason: you cannot trust humansJust because we asked for a or does not mean people will enter a 1 or 2. What if they enter zero or threeWe are protectedhowever, because we built our program to handle any replyIn this casechoice is the default choiceIf they just press ENTERor enter any number other than 2, they will GOTO 300. A default is what happens when someone does not make a decision.+La razón es simple ¡Rebeldía humanaEl hecho de que hayas pedido un o un no significa que alguien vayan ingresar necesariamente un ''1'' o un ''2''¿Qué sucedería si ingresa un cero o un tres¿O un insulto enjundioso? Sin embargoestamos protegidos porque construimos nuestro programa para manejar cualquier respuestaEn este casola respuesta es la opción predeterminadaSi simplemente presionan la **tecla Intro**o ingresan cualquier número que no sea 2, se desplazará a la línea 300. El valor predeterminado es lo que sucede cuando el usuario no toma una decisión.
  
-When you write your IF-THEN and GOTO statementsalways plan for any inputDon't trust humansIf you ask for a 1, 2, or 3, you can be sure that someone will try a 4. If you do not want to plan for a default choiceyou might write an IF-THEN statement that traps the bad choices and simply asks the question againWe couldfor examplewrite:+Cuando escribas tus declaraciones ''IF''-''THEN'' y ''GOTO''siempre planifica para recibir cualquier entradaImagina lo peor y desconfía de los humanosSi pide un ''1''''2'' o ''3''puedes estar seguro de que alguien probará introducir un ''4''Si no desea planificar una opción predeterminadapodrías escribir una declaración ''IF''-''THEN'' que intercepte las respuestas indeseadas a ''OPCION%'' y simplemente vuelva a interrogar nuevamentePodríamospor ejemploescribir:
  
-<code> + 
-280 IF CHOICE% = 2 THEN GOTO 600 +<code freebasic
-281 IF CHOICE% = 1 THEN GOTO 300 +280 IF OPCION% = 2 THEN GOTO 600 
-282 IF CHOICE% < 1 THEN GOTO 50 +281 IF OPCION% = 1 THEN GOTO 300 
-283 IF CHOICE% >> 2 THEN GOTO 50+282 IF OPCION% < 1 THEN GOTO 50 
 +283 IF OPCION% >> 2 THEN GOTO 50
 </code> </code>
  
-There is nothing wrong with using these lines in our STORY programIt is a matter of tasteThe original line 280 handles all possible replies in only one line of BASIC codeThe above solution uses four lines and the purpose is not as clearNeverthelessdo what you think is bestKeep in mind our goal of writing understandable programs.+No hay nada de malo en usar estas líneas adicionales en el programa HISTORIAEs cuestión de gustosLa línea original 280 gestiona todas las respuestas posibles usando una única línea de código BASIC. La solución anterior usa cuatro líneas su propósito no resulta tan claro como el originalSin embargopuedes hacer tu voluntad.  
 + 
 +> Ten en cuenta las [[reglas_de_diseno_unix|reglas de diseño Unix]]Escribir programas comprensibles.
  
-When planning programs you not only have to watch out for humansyou must also think like a computerJust as we saw in the loopyour computer is going to do what you tell it to doThis may not be what you want it to doAs a humanit is easy to see that "Leonardo" is practically the same as "leonardo.But the computer is not practical+Al planificar tus programasno solo debe tener cuidado con los humanos, sino que también debe pensar como una computadoraTal como has vistotu ordenador hará lo que le digan que haga¡CréemeNormalmente no será esto lo que quieres que haga! Como humanoes fácil entender que "''Leonardo''es prácticamente lo mismo que "''leonardo''". Pero la computadora no es práctica.
  
-Consider this example:+Considere este ejemplo:
  
-<code basic+<code freebasic
-280 IF CHOICE% < 1 THEN GOTO 500 +280 IF OPCION% < 1 THEN GOTO 500 
-290 IF CHOICE% > 1 THEN GOTO 700+290 IF OPCION% > 1 THEN GOTO 700
 </code> </code>
  
-We might believe we are checking to see if someone is cheating on an INPUT statementBut what happens if someone enters a 1? Is the computer doing what we askedCertainlyIs it doing what we wantThat dependsWhenever your program misbehaves, it might help to carefully review each statement IN ORDER OF EXECUTIONOn a note pad, write down the names of the variables and keep track of what they should hold as you run the program step-by-step in your imagination.+Podríamos creer que estamos comprobando si alguien está haciendo trampa en una instrucción ''INPUT''Pero, ¿qué sucedería si alguien ingresa un ''1''¿La computadora está haciendo lo que le pedimosCiertamente¿Está haciendo lo que deseamosAhora no es tan clara la respuesta... ¡Depende!
  
-===== THE REST OF THE PROGRAM =====+Cada vez que tu programa se comporte mal, podría ser útil revisar cuidadosamente cada declaración __siguiendo su orden de ejecución__. 
  
 +> Se utilizaba tabular los nombres de las variables en un bloc de notas y realizar un seguimiento de lo que debían contener mientras ejecuta el programa paso a paso. A esto se llamaba "ejecución in mente".
  
-This chapter began with the promise of a program that would tell a story and allow you to create your own ending. Now that we have explored the new BASIC commands used in the first twenty eight lines, it is time to enter the rest of the program.+===== El resto del programa =====
  
-As you enter this program, try to type as little as possibleNotice that many lines are either identical or very much alike. For examplelines 60, 260, 320, and 520 are the same. After you press ENTER for line 60, just move the cursor up, change the line number, and press ENTER again. Use LIST to check your progress.+Este tutorial comenzó con la promesa de un programa que contaría una historia y te permitiría crear tu propio finalAhora que has explorado estos comandos BASIC utilizados en las primeras veintiocho líneases hora de ingresar al resto del programa.
  
-<code basic>+Al ingresarlo, intente escribir una historia simplona. Observe que muchas líneas son idénticas o muy parecidas. Por ejemplo, las líneas 60, 260, 320 y 520 son iguales. Después de presionar Intro para ingresar en línea 60, simplemente movías el cursor hacia arriba, cambiabas el número de línea y presionabas Intro de nuevo. Se utiliza el comando **LIST** para comprobar el listado. 
 + 
 + 
 +<code freebasic>
 300 REM *****  PANTALLA 1A  ***** 300 REM *****  PANTALLA 1A  *****
 310 CLS 310 CLS
Línea 302: Línea 321:
 420 PRINT "                                                       *" 420 PRINT "                                                       *"
 430 PRINT "                                                       *" 430 PRINT "                                                       *"
-440 PRINT "      Choose one:                                      *"+440 PRINT "      Elije otro:                                      *"
 450 PRINT "                                                       *" 450 PRINT "                                                       *"
-460 PRINT "        1 - if you want to go down one path            *" +460 PRINT "        1 - Quiero seguir un destino                   *" 
-470 PRINT "        2 - if you want to go another way              *"+470 PRINT "        2 - Quiero buscar otro destino                 *"
 480 PRINT "                                                       *" 480 PRINT "                                                       *"
 490 PRINT "                                                       *" 490 PRINT "                                                       *"
Línea 311: Línea 330:
 510 PRINT "                                                       *" 510 PRINT "                                                       *"
 520 PRINT "**********************************************************" 520 PRINT "**********************************************************"
-530 INPUT CHOICE+530 INPUT OPCION
-540 IF CHOICE% = 2 THEN GOTO 900 ELSE GOTO 1200+540 IF OPCION% = 2 THEN GOTO 900 ELSE GOTO 1200
 600 REM *****  PANTALLA 1B  ***** 600 REM *****  PANTALLA 1B  *****
 610 CLS 610 CLS
Línea 327: Línea 346:
 720 PRINT "                                                       *" 720 PRINT "                                                       *"
 730 PRINT "                                                       *" 730 PRINT "                                                       *"
-740 PRINT "      Choose one                                     *"+740 PRINT "      Elije otro mas                                 *"
 750 PRINT "                                                       *" 750 PRINT "                                                       *"
-760 PRINT "        1 - if you want to go down one path            *" +760 PRINT "        1 - Quiero seguir un destino                   *" 
-770 PRINT "        2 - if you want to go another way              *"+770 PRINT "        2 - Quiero buscar otro destino                 *"
 780 PRINT "                                                       *" 780 PRINT "                                                       *"
 790 PRINT "                                                       *" 790 PRINT "                                                       *"
Línea 336: Línea 355:
 810 PRINT "                                                       *" 810 PRINT "                                                       *"
 820 PRINT "**********************************************************" 820 PRINT "**********************************************************"
-830 INPUT CHOICE+830 INPUT OPCION
-840 IF CHOICE% = 2 THEN GOTO 1500 ELSE GOTO 1800+840 IF OPCION% = 2 THEN GOTO 1500 ELSE GOTO 1800
 900 END 900 END
 1200 END 1200 END
Línea 344: Línea 363:
 </code> </code>
  
-At long lastwe get to see where the GOTO 300 and GOTO 600 statements will take usCheck each IF-THEN and GOTO to insure you understand how the program worksA diagram of the branches might be usefulNote that the last four lines of the program introduce a new BASIC statementThat is END. Its purpose is obviousWhenever BASIC discovers an END statementit stops running the programThis happens even if the END is found in the middle of program.+Por finpodemos ver a dónde nos llevarán las declaraciones GOTO 300 GOTO 600. Marca cada ''IF''-''THEN'' y ''GOTO'' para asegurarse de que comprendes cómo funciona el programaPodría ser útil Un diagrama arboladoTen en cuenta que las últimas cuatro líneas del programa introducen una nueva instrucción BASIC. Se trata de **END**Su propósito es obvio, dar por finalizado el programaCada vez que BASIC llega a una instrucción ''END''deja de correrloEsto sucede incluso si encuentra ''END'' en medio de un programa. 
 + 
 +Este programa muestra una pantalla que inicia la historia y tiene otras dos como opciones. De estas otras dos se podría ramificar otras cuatro. Sin embargo, en lugar de enumerar un programa con muchas casillas vacías, podrás terminarlo por tu cuenta. Crea cuadros de historias adicionales que comiencen en las líneas 900, 1200, 1500 y 1800. Inventa tantos como necesites. Siéntete libre de completar una historia real en los recuadros. Simplemente realiza un listado de cada //caja de flores// (introduciendo el comando **LIST 320-520**, por ejemplo) y complétalo con tu historia. Recuerda presionar la **tecla Intro** después de cada línea. 
 + 
 +Finalmente, dado que este programa representa mucho trabajo duro, asegúrese de gauardarlo en un archivo de disco antes de ingresar al SISTEMA 
 + 
 +===== Conclusión =====
  
-This program displays one screen that starts the story and has two others as choices. From these others you could branch to another four. Howeverinstead of listing a program with many empty boxesI will let you finish itCreate additional story boxes that begin at lines 9001200, 1500, and 1800Use as many as you need. Feel free to fill in a real story in the boxes. Just list each flower box (LIST 320 - 520, for exampleand type in a story. Remember to press ENTER after each line.+En este tutorial aprendimos sobre las variables y las instrucciones BASIC REM''IF''-''THEN''-''ELSE''''GOTO'' y ''END''Con estos comandosdescubrimos cómo hacer elecciones en los programas y cómo desplazar el puntero de ejecución dentro del programaTambién comimos algunos fideos (de código).
  
-Finally, since this program represents a lot of hard work, be sure to SAVE it in a disk file before you enter SYSTEM. Also, if you have a printer, you may want to use the LLIST command to print out a copy on paper.+>¡Comparte tu ''[[historia.bas]]'' con el resto de la comunidad!
  
-In this tutorial we learned about variables and the BASIC REM, IF-THEN-ELSE, GOTO, and END statements. With these commands, we discovered how to make choices in programs and how to move execution around inside of a program. We also had some spaghetti (code, that is). The next chapter is just plain fun; it will be a reward for this effort.  
  • tutorial_de_aventuras_en_basic.1643134204.txt.gz
  • Última modificación: 2022/01/25 18:10
  • por peron