|
|
DEL
CLAVO AL ORDENADOR CON LOGO
Parte VII.
Para fomentar la creatividad a partir del funcionamiento de un objeto cercano, se ha considerado que transformar la pantalla del ordenador en una luz de color para usarla de semáforo puede ser un ejercicio instructivo. Como la base del trabajo de alumnos y alumnas será conseguir que aparezca un determinado color de pantalla gráfica a través del uso de la primitiva PONF, lo primero que deben plantearse es descubrir cuáles son los números que colorean la pantalla de color rojo, amarillo y verde. Antes de que los alumnos empiecen con un tanteo, les conviene hacer un programa que vaya presentando los colores sucesivamente (COLORES1). Posiblemente los alumnos, ya avezados en la recursividad, encuentren soluciones mejores; de todos modos, no vendrá mal animarlos en la búsqueda de mejoras como:
Una vez conseguido el número correspondiente a la totalidad de los colores y realizadas estas prácticas recursivas, se entra en propuestas aplicadas el semáforo que se quiere diseñar. No hay por qué forzar al alumno con ideas concretas, se puede esperar a que sean sus propios intereses los que les lleven a realizar ejercicios similares a los que aquí se recogen. Pensemos que el semáforo es un objeto que se conoce muy bien y los conocimientos previos de programación que son necesarios para crear el programa de control han quedado asentados a lo largo de las sesiones anteriores. Las propuestas que se ofrecen son, por tanto, más orientativas que nunca y pretenden mostrar una gradación en su dificultad que permita valorar el grado de aprendizaje que el alumno está logrando:
Donde más claramente se van a percibir las limitaciones de esta opción respecto a la programación en robótica, será cuando haya que confeccionar un programa recursivo que, a partir de un semáforo intermitente y en color ámbar, tenga que dar paso a un peatón, pare la circulación de la carretera y ponga el semáforo, al cabo de un tiempo prudencial, en estado intermitente y color ámbar. Es evidente la necesidad de establecer un sistema de control del fluido del programa a través de un sensor ya que, si no es así, la única forma de salir de este programa recursivo sería pulsar la tecla [ESC].
Aplicación de un cronómetro. Como trabajo final, puede planteársele al alumno la realización de un programa sin poner más condiciones que la de procurar poner en práctica los conocimientos adquiridos sobre LOGO hasta el momento. También se le puede sugerir un tema que, planteado de una forma genérica, pueda ser desarrollado de formas muy distintas. Aquí se va a proponer y desarrollar una opción tan válida como cualquier otra. Una propuesta como la de dibujar un cronómetro, puede ser una forma de recopilar muchas de las primitivas manejadas en las unidades de este curso que, además, plantea la necesidad de hacer uso de la recursividad, la modularidad y las variables globales. Los valores de la propuesta pueden ser una provocación suficiente para que los alumnos realicen un trabajo laborioso, creativo y bien presentado, (ROLEX). Comentaremos el programa para aclarar algunas decisiones que se han incluido por tanteo. El programa ROLEX es modular y va llamando sucesivamente al programa SAETA y al programa ESFERA, que llama a la vez al módulo NUM. Como más adelante se verá, NUM es un programa recursivo que contiene una variable global que sirve de control, ya que actúa como un contador y debe crearse fuera del bucle, en el programa que contiene dicho bucle. (ESFERA) (L1) Coloca la tortuga en la posición adecuada para que dibuje la circunferencia alrededor del centro. El ajuste de 3º evita el desajuste que se produce cuando se dan giros de 6º, y responde a la misma idea que en programas anteriores llevó a marcar ajustes de 5º cuando los giros que se pedían eran de 10º. (L2) Dibuja la circunferencia en función del radio. Se ha elegido un polígono de 60 lados en lugar del de 36 porque para cada paso, se ha diseñado un aborioso proceso que permite dibujar las 60 marcas que indican los intervalos 6º en los que queda dividida la circunferencia. (L3) Reajusta la posición de la tortuga para volver a llevarla al centro. Podrían conseguirse los mismos resultados con la orden CENTRO unida a PONRUMBO 0, ya que en WIN LOGO para Windows se mantiene el rumbo4 de la tortuga anterior a la orden que centra la tortuga en la pantalla. (L4) Crea e inicializa la variable global «ANG que más tarde se utilizará en el programa al que se hace referencia en la línea siguiente. (L5) Llama al programa NUM que es el que rotula los números de la esfera.
(NUM) El programa tiene una variable local que parte con un contenido inicial=1; contenido que recibe en el programa que lo ha llamado. Es recursivo y en cada paso por el bucle le da un incremento de 1 a la variable local «ANG. (L1) Hace de control a través de un contador hasta alcanzar el número 12, momento en el que se produce un ALTO para la alternativa Cierto. (L2) Procura el ajuste entre la numeración y la esfera dibujada anteriormente. Ubica a la tortuga en una posición algo retrasada y a la izquierda del centro de la pantalla, lugar que hasta ahora ha servido de referencia como centro de la esfera del reloj. El ajuste indicado es necesario porque aunque los desplazamientos para rotular se realizarán a la misma distancia, 20 unidades menos que la esfera, LOGO siempre rotula encima y a la derecha del lugar donde se encuentra la tortuga. El centro se ha desplazado en sentido contrario por tanteo, lo que hace que, dependiendo del tamaño de los caracteres que pudieran usarse en el futuro, deberá cambiarse ese centro para que los números queden centrados. (L3) Posiblemente ésta sea la línea más engorrosa de todo el programa. Transmite un giro a la tortuga para que se coloque frente al lugar en el que debe rotular, pero a diferencia de los radios que harán de saeta, la tortuga tiene que devolverse siempre al centro, por lo que el giro será diferente y proporcional al contabilizado en cada momento: ANG*30. El ajuste de 5º está en función del tamaño de las letras. El giro final GD 90-:ANG*30, sirve para colocar la tortuga siempre en posición horizontal; de este modo se contrarresta el ángulo que se le da a la tortuga cada vez que sale desde el centro. El resto de las funciones de esta línea corresponde a la rotulación del número que el contador indica en cada bucle. (L4) Lleva la tortuga al centro de la forma más rápida posible y la mantiene siempre mirando al norte tal como se ha explicado anteriormente, dadas las características de WIN LOGO para Windows. (L5) Línea recursiva que modula el contador.
(SAETA)
(L1) Línea de control que sirve para interrumpir el bucle indefinido. Esta línea permite abandonar definitivamente el programa. (L2) Dibuja una línea con una velocidad adecuada para que el curso de su trazado sea visualizable. (L3) Hace desaparecer a la saeta y coloca la tortuga en la posición adecuada para que dibuje la siguiente saeta a continuación de la que acaba de ser borrada. (L4) Línea recursiva ilimitada. Se considera importante señalar la distinción que existe entre la orden ALTO incluida en la primera línea del programa NUM y la misma orden incluida en el programa SAETA. Mientras en este último caso la orden ALTO rompe definitivamente el flujo del programa por tener tras de sí la línea FIN de ROLEX, la primera no paraliza el programa sino que devuelve el control al programa ESFERA al que sólo le falta por realizar la línea FIN, por lo que este programa ESFERA, devolverá el control al programa ROLEX en el punto donde aún falta que se ejecute el programa SAETA. |
|||||||||||||||||||
|
|