Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa Próxima revisiónAmbos lados, revisión siguiente | ||
tutorial_de_aventuras_en_basic [2022/01/25 20:38] – peron | tutorial_de_aventuras_en_basic [2022/03/12 04:53] – [GOTO] peron | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
====== Tutorial de BASIC: "Crea tu propia aventura" | ====== Tutorial de BASIC: "Crea tu propia aventura" | ||
- | Este tutorial sencillo te presenta generalidades del [[basic|lenguaje de programación BASIC]] | + | Este tutorial sencillo te presenta generalidades del [[basic|lenguaje de programación BASIC]] para realizar |
===== Introducción ===== | ===== Introducción ===== | ||
+ | ¿Alguna vez has leído uno de esos libros de cuentos de "Sigue tu propia aventura"? | ||
- | ¿Alguna vez has leído uno de esos libros de cuentos de "Sigue tu propia aventura"? | + | === Propuesta === |
+ | El microprograma [[historia.bas]] que abordaremos en este tutorial presentan | ||
- | El programa que abordaremos | + | ==== ¡A programar! ==== |
+ | Para iniciar, abre el intérprete | ||
- | Para comenzar, podrás pegar o tipear estas primeras veintiocho líneas del programa | + | < |
+ | bwbasic | ||
+ | </ | ||
+ | |||
+ | Para comenzar | ||
+ | > 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 == |
+ | < | ||
10 REM ************************************************************* | 10 REM ************************************************************* | ||
20 REM * HISTORIA | 20 REM * HISTORIA | ||
Línea 45: | Línea 54: | ||
===== Comentarios ===== | ===== Comentarios ===== | ||
- | |||
Observa las líneas 10 a 40. REM es una declaración de BASIC que no hace nada, significa " | Observa las líneas 10 a 40. REM es una declaración de BASIC que no hace nada, significa " | ||
Línea 54: | Línea 62: | ||
- | ==== 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 // | 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 // | ||
Línea 93: | Línea 101: | ||
Para explorar cómo BASIC maneja las variables enteras, intente ingresarle a la variable varios números, tanto enteros como fraccionales, | Para explorar cómo BASIC maneja las variables enteras, intente ingresarle a la variable varios números, tanto enteros como fraccionales, | ||
- | < | + | < |
10 PRINT " | 10 PRINT " | ||
20 INPUT OPCION% | 20 INPUT OPCION% | ||
Línea 113: | Línea 121: | ||
> 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. | > 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. | ||
- | === Ejemplos de Variables === | ||
- | |||
- | |||
- | Study these example of variables to check your understanding. | ||
- | |||
- | 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 ===== | ||
Línea 145: | Línea 137: | ||
- | < | + | < |
280 IF OPCION% = 2 THEN CLS ELSE PRINT "Ok! Perfecto!" | 280 IF OPCION% = 2 THEN CLS ELSE PRINT "Ok! Perfecto!" | ||
</ | </ | ||
Línea 170: | Línea 162: | ||
La última parte de la instrucción IF-THEN-ELSE no siempre es necesaria. El ELSE puede omitirse junto con la segunda alternativa. Esto nos dejaría con un tren de instrucciones mucho más sencillo: IF-THEN. Podrías escribir la línea 280 como: | La última parte de la instrucción IF-THEN-ELSE no siempre es necesaria. El ELSE puede omitirse junto con la segunda alternativa. Esto nos dejaría con un tren de instrucciones mucho más sencillo: IF-THEN. Podrías escribir la línea 280 como: | ||
- | < | + | < |
280 IF OPCION% = 2 THEN GOTO 600 | 280 IF OPCION% = 2 THEN GOTO 600 | ||
</ | </ | ||
Línea 190: | Línea 182: | ||
- | < | + | < |
280 IF OPCION% = 2 THEN GOTO 600 ELSE GOTO 300 | 280 IF OPCION% = 2 THEN GOTO 600 ELSE GOTO 300 | ||
290 IF OPCION% <> 2 THEN GOTO 300 ELSE GOTO 600 | 290 IF OPCION% <> 2 THEN GOTO 300 ELSE GOTO 600 | ||
Línea 219: | Línea 211: | ||
Afortunadamente, | Afortunadamente, | ||
- | < | + | < |
280 IF OPCION% = 2 THEN GOTO 600 ELSE GOTO 300 | 280 IF OPCION% = 2 THEN GOTO 600 ELSE GOTO 300 | ||
</ | </ | ||
Línea 227: | Línea 219: | ||
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ón, | 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ón, | ||
- | < | + | < |
10 PRINT "Esta es la línea 10" | 10 PRINT "Esta es la línea 10" | ||
20 GOTO 50 | 20 GOTO 50 | ||
Línea 241: | Línea 233: | ||
Cuando el programita corra, se ejecutará siguiendo este orden: | Cuando el programita corra, se ejecutará siguiendo este orden: | ||
- | < | + | < |
- | 10 PRINT "This is line 10" | + | 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 | ||
Línea 253: | Línea 245: | ||
Si has cometido un error al ingresar este programa, es posible que haya dado con algo llamado BUCLE (" | Si has cometido un error al ingresar este programa, es posible que haya dado con algo llamado BUCLE (" | ||
- | < | + | < |
10 PRINT "Hola Humanoide!" | 10 PRINT "Hola Humanoide!" | ||
20 GOTO 10 | 20 GOTO 10 | ||
</ | </ | ||
- | La línea 10 se ejecutará una y otra vez. De hecho, debe presionar las teclas **CTRL-c** para interrumpir la interpretación y ejecución del programa. En este ejemplo, el motivo del bucle es evidente. La 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". | + | La línea 10 se ejecutará una y otra vez. De hecho, debe presionar las teclas **CTRL-c** para interrumpir la interpretación y ejecución del programa. En este ejemplo, el motivo del bucle es evidente. La 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. |
- | Desafortunadamente, | + | Desafortunadamente, |
> 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! | > 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ínea 270: | Línea 262: | ||
Considere la línea 280 una vez más: | Considere la línea 280 una vez más: | ||
- | < | + | < |
280 IF OPCION% = 2 THEN GOTO 600 ELSE GOTO 300 | 280 IF OPCION% = 2 THEN GOTO 600 ELSE GOTO 300 | ||
</ | </ | ||
Línea 281: | Línea 273: | ||
- | < | + | < |
280 IF OPCION% = 2 THEN GOTO 600 | 280 IF OPCION% = 2 THEN GOTO 600 | ||
281 IF OPCION% = 1 THEN GOTO 300 | 281 IF OPCION% = 1 THEN GOTO 300 | ||
Línea 290: | Línea 282: | ||
No hay nada de malo en usar estas líneas adicionales en el programa HISTORIA. Es cuestión de gustos. La 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 original. Sin embargo, puedes hacer tu voluntad. | No hay nada de malo en usar estas líneas adicionales en el programa HISTORIA. Es cuestión de gustos. La 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 original. Sin embargo, puedes hacer tu voluntad. | ||
- | > Ten en cuenta | + | > Ten en cuenta |
Al planificar tus programas, no solo debe tener cuidado con los humanos, sino que también debe pensar como una computadora. Tal como has visto, tu ordenador hará lo que le digan que haga. ¡Créeme! Normalmente no será esto lo que quieres que haga! Como humano, es fácil entender que " | Al planificar tus programas, no solo debe tener cuidado con los humanos, sino que también debe pensar como una computadora. Tal como has visto, tu ordenador hará lo que le digan que haga. ¡Créeme! Normalmente no será esto lo que quieres que haga! Como humano, es fácil entender que " | ||
Línea 296: | Línea 288: | ||
Considere este ejemplo: | Considere este ejemplo: | ||
- | < | + | < |
280 IF OPCION% < 1 THEN GOTO 500 | 280 IF OPCION% < 1 THEN GOTO 500 | ||
290 IF OPCION% > 1 THEN GOTO 700 | 290 IF OPCION% > 1 THEN GOTO 700 | ||
Línea 314: | Línea 306: | ||
- | < | + | < |
300 REM ***** PANTALLA 1A ***** | 300 REM ***** PANTALLA 1A ***** | ||
310 CLS | 310 CLS |