|
|
DEL
CLAVO AL ORDENADOR CON LOGO
Parte IV. PROGRAMAS ESTRUCTURADOS 1. PROGRAMACIÓN
Un programa, estará formado por un conjunto de procedimientos que se van ejecutando según el orden que hayamos establecido y que en un principio sería el mismo que llevamos al leer o escribir en Castellano, de izquierda a derecha y de arriba abajo, a no ser que en cualquier línea del programa se nos mande a otro o, como veremos cuando hablemos de la recursividad, a sí mismo. Habrá momentos en que el camino a seguir no será único, aparecerán bifurcaciones. En esos casos, el paso de un procedimiento a otro, vendrá determinado por el cumplimiento o no de una serie de alternativas que habremos incluido en unas sentencias condicionales dentro de los propios procedimientos. Vimos que uno de los puntos claves de los programas está en la capacidad de LOGO de distinguir entre varias opciones en función de unos condicionantes. Éste va a ser el contenido final del tema, pero para poder introducirlo a nuestro alumnado con una base que les permita realizar ejercicios variados y creativos, deberemos previamente mostrar una serie de nuevas primitivas del micromundo de la tortuga: Manejo de variables, Primitivas de control del entorno, mensajes de logo hacia el usuario etc. que vamos a ir presentando previamente a las sentencias condicionales. Tal como se ha ido viendo en el video, la forma de presentar la estructura de estas primitivas que comienzan con un SI...... será la de que el alumnado asuma que en nuestra vida corriente, estamos tomando decisiones continuamente en función de alternativas y que nuestra elección pasa previamente por un conocimiento de las mismas y unos condicionantes que nos hacen elegir una u otra según se acomoden o no a nuestros deseos previos. Para dar una idea de uso de las sentencias condicionales que determinan el camino que sigue el desarrollo del programa, podríamos proponer el análisis del problema ACABAR_JORNADA. El profesor, previo el trabajo por grupos, deberá dejar claro que el objetivo consiste en reflejar la sucesión de acciones que realiza un alumno desde que suena el timbre de finalización de clase hasta que se acuesta. Dejaremos bien claro que, dependiendo de una serie de condicionantes: día de la semana, responsabilidad de aula etc, las acciones de un día no son iguales a las de otro. No se pasará a la fase de trabajo de grupo, hasta que todo el alumnado haya comprendido ambos conceptos: Serie de órdenes, sentencias condicionales. La realización de determinadas tareas requerirá la confección de procedimientos que las desarrollen, procedimientos que serán llamados por el programa principal o iniciador. En determinados momentos, el programa planteará una opción o seguir el principal y en otros, propondrán elegir entre dos, si no se cumple la primera deberá ejecutarse la segunda, pero siempre volviendo al programa principal que, tal como hemos explicado anteriormente, seguirá el orden natural de nuestra lectura y escritura. PARA ACABAR_JORNADA recoger mesa SI soy responsable [RECOGER_AULA] salir del instituto ir a casa merendar SI tengo clase de inglés [INGLÉS] SI tengo tareas [DEBERES] [ESTUDIO] cenar dormir FIN PARA RECOGER_AULA borrar pizarra cerrar ventana esperar al último cerrar puerta FIN PARA INGLÉS recoger libro tomar casette en inglés ir a academia FIN PARA DEBERES preparar cuadernos realizar ejercicios FIN PARA ESTUDIO comprobar horario estudiar los tems FIN Será también una buena ocasión para introducir a nuestro alumnado en la representación gráfica del árbol de procedimientos, de cara a que la estructura de los que posteriormente diseñen, sea lo más clara posible y les permita realizar correcciones o mostrarla a otros para que les ayuden a realizarlas.
2. LAS VARIABLES Para introducir el concepto de variables, nos apoyaremos en los conocimientos matemáticos que nuestros alumnos y alumnas habrán desarrollado en el área de matemáticas, cuando trabajaron los conceptos de función y ecuación. Sólo tendrán transformar mentalmente la imagen de una x o una y por :l o «r. 2.1. VARIABLES LOCALES Las variable locales: -Se generan en la línea de creación del programa. -Su declaración va precedida del signo :, por lo que la primera línea tiene la siguiente sintaxis PARA NOMBRE :VARIABLE -Cuando se quiere hacer referencia a su contenido, debe ir también precedido del signo : -Su contenido sólo tiene existencia mientras se ejecuta el procedimiento que la genera. -Otros procedimientos podrían generar variables locales con el mismo nombre. -Pueden generarse más de una variable por procedimiento, pero todas deben declararse en la primera línea del programa. -Cuando se va a ejecutar un procedimiento que contiene en su definición una o varias variables locales, el nombre del procedimiento debe ir acompañado del contenido de cada una separándolos por medio de espacios. 2.2. VARIABLES GLOBALES Las variables globales: -Se generan en cualquier línea interior del programa. -Su declaración se consigue con la primitiva HAZ «nombre seguida del contenido que se le quiere dar -Cuando se quiere hacer referencia a su contenido, el nombre de la variable debe ir precedido del signo : -Su contenido tiene existencia mientras se trabaja en área. -Si se crearan otros procedimientos con variables con el mismo nombre, se interferirían tomando el último contenido asignado. -La forma de evitar estas interferencias es declararlas previamente y localizarlas por medio de la primitiva LOCAL [VAR1, VAR2,...] seguida de los nombres de las variables que se quieren generar posteriormente. Su contenido tendrá valor dentro del procedimiento que las genera y todos aquellos que lo llamen o sean llamados por él. -Puede generarse más de una variable por procedimiento. -Hay que distinguir claramente la expresión «variable que supone la creación de una variable de :variable que hace referencia al contenido de la variable definida con ese nombre. -Cuando el contenido de una variable es una palabra, irá precedido de comillas y cuando sea una lista, irá entre corchetes. La clarificación de estos conceptos debe ser el objetivo de las sesiones dedicadas al tema de las variables, pero para poder sacar provecho de las mismas en cualquier tipo de ejercicios que propongamos o mostremos a nuestro alumnado, deberá ir acompañada de la presentación de otras primitivas que iremos presentando prácticamente a la par. 2.3. METODOLOGÍA PARA LA PRESENTACIÓN DE LAS VARIABLES LOCALES Tal como ya hemos expuesto en otros apartados, la mejor motivación
para estos conceptos es la de crear la necesidad de utilizarlos, que sea
el propio alumnado quien las pida. No vamos a pretender que obliguemos al
grupo a realizar cuadrados de todas las medidas para que, aburridos de
repetir cambiando un número pidan a gritos un sistema más cómo y
racional para hacerlo, sobre todo cuando el concepto de variable, ya forma
parte de su Convendrá, de todos modos, forzar la necesidad de tener un procedimiento que manteniendo unas características generales, pueda admitir una medida variable que le permita adaptarse más que a una figura, a un concepto. El trabajo sobre el cuadrado, tal como se explicó en el Anexo I, puede ser llevado ante los alumnos prácticamente siguiendo los mismos pasos. Para presentar una variación en este apartado, proponemos como objeto tipo, a la circunferencia. 1º Creación de un programa que dibuje una circunferencia única (polígono de 36 lados, puesto que para la definición de la pantalla no hay que acercarse más al infinito). (La parte geométrica de CIR). Hacer ver que, para realizar otra circunferencia hay que modificar sólo el avance, pero seguiremos creando una circunferencia concreta. 2º Creación de un procedimiento que permita dibujar distintas circunferencias en función del avance que de la tortuga en cada uno de sus 36 pasos. (La parte geométrica de CIRVAR :D). Plantearemos un símil comentando que es como si la tortuga tuviera un bolsillo con una etiqueta por fuera. En la primera línea es donde se crea el bolsillo dándole un nombre a la etiqueta, en este caso :D. Conforme diseñamos el procedimiento, se puede hacer mención del contenido del bolsillo para que opere con él, ya escribiéndolo, rotulándolo, usándolo como argumento, operando con él, etc, en este caso como argumento de la primitiva AVANZA. Siempre que se hace mención del contenido del bolsillo, se escribe :nombre, aquí :D. Cuando ejecutemos el procedimiento que contiene el bolsillo, debemos darle un contenido, de otro modo advertiría que le faltan datos, como un argumento de algunas primitivas, aquí CIRVAR 12. Cuando la tortuga está ejecutando un procedimiento que contiene una variable, ejecuta las órdenes una tras otra, pero cuando llega a una expresión donde escribimos que avanzara, girara, o escribiera :nombre, mira su bolsillo y escribe, gira o avanza el contenido allí guardado, en este caso AVANZA 12. 3º Ejecutar el procedimiento CIRVAR varias veces cambiando el argumento. 4º Mostrar en modo directo las primitivas ROTULA y ESCRIBE haciendo notar donde se ejecuta cada una de ellas y la necesidad de acompañar sus argumentos con comillas o corchetes según se trate de palabras o frases. Presentar también en modo directo la primitiva FRASE como una operación de suma de dos sumandos. 5º Completar los procedimientos CIR y CIRVAR :D con la rotulación en la pantalla de gráficos. 6º Realización de modificaciones al programa anterior para introducirle más variables como colores, grosores, fondos, además de la longitud ya mencionada. Explicar qu la tortuga puede tener varios bolsillos a la vez con diferentes etiquetas, que pueden ser usados del modo expuesto anteriormente. En su ejecución, debemos llenarlos en el orden que los hemos definido. Como ejemplo puede servir CUAVARIA :C :G :F del Anexo I. 7º Diseño de un programa que introduzca la posibilidad de crear cualquier tipo de polígonos teniendo en cuenta el viaje total y la capacidad operativa de LOGO (POLIN :N de Anexo I). 8º Crear un programa que dibuje una circunferencia a partir de un punto de ella y que nos pueda servir de modulo para otros procedimientos, es decir que no empiece marcando las condiciones generales en que deba trabajar, tan solo que dibuje a partir de donde se encuentre y en la posición en que estaba. (CIRLAT :MODUL). 9º Crear procedimientos que contengan variables locales y que realicen formas distintas a base de repetir circunferencias de distintos tamaños y moverse después por medio de avances o giros. (ROSA :M, TUBULAR :T, ESTREL : MODUL). 10º Confeccionar un procedimiento que dibuje una circunferencia en función de su radio, partiendo y dejando a la tortuga en el centro.(CIRRAD :RADIO). Antes de realizar esta propuesta, pondremos a disposición del alumnado la primitiva PI, para lo que usaremos simplemente el modo directo : ES PI. Tanto en este procedimiento como en CIRLAT, que serán usados como módulos para otros, al alumnado no se le ocurrirá dar el giro de 5º antes y después del REPITE, pues la figura es correcta sin ellos. Su presencia se hace necesaria en otros procedimientos que comentaremos posteriormente y que requieren de ajustes finos con otras figuras. 11º Diseñar procedimientos que requieran la presencia de variables locales y que jueguen con la repetición de circunferencias centradas de distintas dimensiones junto con desplazamientos y giros.(TABA :TUB). Las aplicaciones de estos programas como desarrollo y profundización de conceptos geométricos se pueden trabajar con propuestas de diseño de procedimientos que realicen circunferencias inscritas o circunscritas a polígonos regulares. Para ello, deberán diseñar primero, procedimientos que dibujen un cuadrado y un hexágono en función de su lado (CUAV :L, EXAV :L). 12º Crear procedimientos con variables locales que, llamando a un cuadrado o un hexágono, los inscriban o circunscriban a una circunferencia. (CUACIR :R, CUAINS :R EXACIR :R, EXAINS :R). Para poder realizar esta propuesta, deberemos presentar, también en modo directo, la primitiva RC: ES RC 16. A pesar de ello, antes de entrar en el diseño de estos procedimientos, nos aseguraremos que los cálculos matemáticos que los posibilitan están claros en la mente de nuestros alumnos y alumnas. 13º Mejorar estos procedimientos cambiando sus colores, coloreando su interior con la primitiva RELLENA, dibujando con colores sus distintos elementos como radios, apotemas etc., o realizando el cálculo de sus superficies. 2.4. METODOLOGÍA PARA LA PRESENTACIÓN DE LAS VARIABLES GLOBALES Seguiremos usando el símil que utilizábamos para introducir las
variables locales a base de relacionar la creación de variables que
tienen un nombre y un contenido con unos bolsillos con etiqueta externa.
Las diferencias están en que su creación se realiza en cualquier línea
del programa (excepto la Deberemos presentar previamente las primitivas LeeCarácter y LeePalabra, para ello elaboraremos programas sencillos que muestren cómo ambas requieren la actuación del usuario con la diferencia de que la primera actúa con la primer pulsación y la otra necesita la confirmación por medio de la tecla [INTRO]. (PULSA) (INTRO). Aprovecharemos el segundo para explicar que la sintaxis de la primitiva FRASE se simplifica al englobar dentro de un paréntesis tanto a ella como a los textos que manipula y las variables que queramos unir. Explicaremos que en PULSA diseñamos un programa que con la máxima simplicidad, limpia la pantalla de textos, muestra el mensaje en la pantalla de textos y devuelve en la misma pantalla la pulsación que ha reaizado el usuario unida a otro texto por medio de la conocida primitiva FRASE. Aprovecharemos el programa INTRO, para explicar la utilidad de la primitiva ESPERA, que nos sirve para dar tiempo fijo a la lectura. La diferencia entre LC y LP se hará evidente en la ejecución de uno y otro, por lo que sólo nos quedará insistir en la utilidad del paréntesis al usar la primitiva FRASE. En el primer programa (CIRGLO1), propondremos crear un procedimiento que dibuje una circunferencia de radio variable, pero que, a diferencia de CIRVAR, indique al usuario los pasos que debe seguir por medio de mensajes en la pantalla de textos. Una vez introducido el dato requerido, el programa lo introducirá en una variable y actuará como en CIRVAR. El siguiente paso será conseguir que el programa realice la circunferencia variable y centrada en función del radio, como CIRRAD, pero realizando y presentando el cálculo de la longitud de la circunferencia (CIRCEN1). Como rápidamente apreciarán el parecido de las líneas de actuación de la tortuga con las que tienen CIRLAT y CIRRAD, las siguientes propuestas de ejercicios consistirán en realizar procedimientos que, llamando a los procedimientos anteriores, efectúen las acciones que estos realizaban con la mejora que supone el que, por medio de mensajes que el programa envía al usuario, éste va siguiendo las instrucciones y, sin necesidad de conocer el programa, lo pone en marcha dándole los datos necesarios para su ejecución. (CIRGLOBAL CIRCENTRAL). Así mismo, servirán para manejar las nuevas primitivas LC y LP y las distintas formas de comunicación entre LOGO y el usuario ESCRIBE y ROTULA. Mostraremos cómo el contenido de las variables sigue existiendo después de la ejecución de estos programas con órdenes directas como Escribe :mod o Rotula :CIRCUM. La presentación de la primitiva ENTERO puede hacerse por medio de un sencillo programa diseñado con una variable local que combine LP y esta primitiva. |
|
|
|