Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1. INGRESA A WINLOGO
Para entrar a WINLOGO haz doble clic en el cono que tienes en el Escritorio de Windows. Si no te funciona entra a travs del botn Inicio de Windows.
2.
ENTORNO DE WINLOGO
La ventana de la aplicacin aparece dividida en otras tres cuyo nombre puedes localizar en la barra de ttulo de cada una de ellas, estas son: Grficos, Trabajo y Textos. Ventana de trabajo: en ella escribiremos las primitivas que realizarn diferentes operaciones Ventana de grficos: en el centro de la misma aparece una tortuga que se desplazar dejando un rastro en funcin de las primitivas que hayamos escrito en la ventana de trabajo. Ventana de textos: esta ventana la utiliza el programa para mostrar diferentes tipos de informacin (no conoce alguna primitiva que le escribamos, no sabe cmo hacer algo, o el resultado de algunas primitivas cuando estas dan valores de tipo texto o numrico).
3.
INGRESAR INSTRUCCIONES
En el rea de trabajo puedes escribir instrucciones (se llaman primitivas) para que LOGO las ejecute. Aqu tienes una lista de primitivas para que la pruebes. PRIMITIVA AVANZA N RETROCEDE N GIRADERECHA N GIRAIZQUIERDA N CENTRO BORRAPANTALLA BAJALAPIZ SUBELAPIZ OCULTATORTUGA BP BL SL OT ABREVIATURA AV N RE N GD N GI N QU HACE La tortuga avanza hacia delante N puntos. La tortuga retrocede N puntos. La tortuga gira a la derecha N grados. La tortuga gira a la izquierda N grados. Sita a la tortuga en el centro de la pantalla. Borra la pantalla grfica. El lpiz se sita sobre el papel. Si luego se mueve la tortuga se marcar su recorrido sobre la pantalla. El lpiz se levanta del papel. Aunque la tortuga se mueva no marcar su recorrido sobre la pantalla. La tortuga desaparece de la pantalla (pero sigue dibujando). La tortuga vuelve a aparecer en la pantalla La tortuga pinta de color N (N puede valer cualquier nmero entre 1 y 256). Modifica el grosor del trazo de la tortuga (N puede valer cualquier nmero entre 1 y 10). EJEMPLO AVANZA 100 RETROCEDE 25 GD 90 GI 30 CENTRO BORRAPANTALLA BAJALAPIZ SUBELAPIZ OT MT PONCOLOR 200 PONGROSOR 5
Escribe en la pantalla de textos la palabra puesta ESCRIBE "Hola detrs de las comillas.
ES [N N N . ]
Escribe en la pantalla de textos las palabras puestas entre corchetes. Repite N veces la accin (cualquier primitiva) o acciones puestas entre corchetes.
4.
90 90 90 90
Habrs observado como la primitiva AVANZA hace avanzar a la tortuga 60 unidades al tiempo que va dibujando una lnea, mientras que la primitiva GIRADERECHA le hace girar sobre si misma y a la derecha tantos grados como indica el nmero que lleva a continucacin. Busca en la ayuda informacin sobre estas dos primitivas para irte familiarizando con el modo en que se describen stas en el programa. Las dos primitivas anteriores pueden escribirse tambin como AV (AVANZA) y GD (GIRADERECHA). Esribe ahora otra primitiva en la ventana de trabajo:
BP
Como has podido comprobar se borra cualquier dibujo que haya sobre la ventana de grficos y la tortuga vuelve a su posicin inicial. La primitiva BP es la forma abreviada de BORRAPANTALLA. Busca informacin en la ayuda sobre las primitivas RETROCEDE (RE) Y GIRAIZQUIERDA (GI) e intenta dibujar una silla, una F, un ngulo recto, polgonos regulares de 3, 5, 6, 7, 8, 9 y 10 lados (el ngulo que habr de girar la tortuga para dibujar un polgono de n lados es igual a 360/n). Procura que la tortuga siempre quede en la posicin y en la direccin que tena al principio.
Iteracin.
Al escribir las primitivas para dibujar los polgonos regulares habrs comprobado que hay secuencias que se repiten. Para estos casos WinLogo me ofrece la primitiva REPITE. Busca informacin en la ayuda para conocer cmo funciona. Intenta dibujar con ayuda de la primitiva repite un cuadrado. Si no lo consigues prueba lo siguiente
Escribe las rdenes necesarias para dibujar un polgono regular de 360 lados avanzando una unidad para cada lado, ten en cuenta lo dicho anteriormente respecto del ngulo que ha de girar la tortuga para dibujar un polgono de n lados. Se parece a una circunferencia? Escribe lo siguiente:
REPITE 90 [AV 1 GD 1]
Se parece a un arco de circunferencia? Cuntos grados abarca?
5.
HACER PROGRAMAS
Procedimientos fijos. Hasta ahora ejecutabamos procedimientos primitivos o primitivas (acciones que ya sabe hacer WinLogo). Ahora le vamos a ensear a hacer cosas que no sabe mediante procedimientos. Definicin de Procedimientos Cuando se define un procedimiento a travs de la primitiva PARA, WinLogo entra en modo definicin de procedimiento, y permanece as hasta que se pulse INTRO en el Fin del procedimiento. Adems, la lnea de estado presenta tambin el nombre del procedimiento que est definiendo. Cada vez que desplace el cursor por encima de un procedimiento definido, podr ver que su nombre aparecer dentro del recuadro. Nuestros procedimientos comenzarn con la primitiva PARA y separado de esta mediante un espacio escribiremos el nombre del procedimiento. Este nombre no podr coincidir con el de una primitiva ni contener smbolos propios del lenguaje (+, =, etc). En la siguiente lnea comenzaremos a escribir las diferentes rdenes que queremos que ejecute el procedimiento y terminaremos el procedimento con la primitiva FIN. Al pulsar Intro sobre esta ltima lnea me aparecer en la ventana de textos Acabas de definir ... (Nombre que le hemos dado al procedimiento). En caso de realizar cualquier modificacin sobre un procedimiento debo ir a la lnea que tiene la primitiva fin y pulsar Intro para que el ordenador reconozca los cambios realizados.
Por ejemplo, si queremos definir un procedimiento que dibuje tringulos equilteros podramos hacer lo siguiente
TRIANGULO
El programa me dibujar un tringulo. Busca ms informacin sobre estas 2 primitivas (PARA y FIN) en la ayuda de WinLogo. Busca informacin sobre los polgonos estrellados e intenta definir procedimientos que dibujen polgonos estrellados. Procedimientos variables. De 1 entrada. Hasta ahora el procedimiento defina el tamao de las figuras que venimos haciendo. Si quera modificar el tamao deba editar el procedimiento y realizar las modificaciones pertinentes. Lo que vamos a hacer ahora es crear procedimientos que llevan implcitos, en la lnea de llamada a los mismos, ciertos valores para utilizarlos en la ejecucin del mismo. Veamos un ejemplo
PARA HEXAGONO :LADO REPITE 6 [AV :LADO GD 60] FIN Cuando escriba HEXAGONO 60 HEXAGONO 70 HEXAGONO 80
WinLogo dibujar hexgonos de lado 60, 70 y 80 respectivamente. Escribe procedimientos con una variable para el lado del resto de los polgonos regulares. Ejecuta el siguiente procedimiento
De varias entradas. Vista la flexibilidad que me ofrece podramos pensar en introducirle junto con el nombre del procedimiento ms de un valor. La forma de hacerlo es similar. Prueba lo siguiente 4
PARA RECTANGULO :LADO1 :LADO2 REPITE 2[AV :LADO1 GD 90 AV :LADO2 GD 90] FIN
Crea un procedimiento de nombre POLIGONO :LADO :ANGULO que dibuje polgonos dado el lado y el ngulo de giro. Crea un procedimiento de nombre POLIGONO :LADO :LADOS que dibuje polgonos en funcin del lado y del nmero de lados. Prueba lo siguiente
PARA ROMBO :LADO1 :LADO2 :ANGULO REPITE 2[AV :LADO1 GD :ANGULO AV :LADO2 GD 180-:ANGULO] FIN
Creacin de variables y operaciones con variables. Busca informacin sobre la primitiva HAZ. Prueba lo siguiente:
PARA ESPIRALCUADRADA :LADO REPITE 60[AV :LADO GD 90 HAZ LADO :LADO+1] FIN ESPIRALCUADRADA 5
Como habrs observado, el valor introducido para la variable :LADO es un valor de inicio que vamos incrementando a lo largo de la ejecucin del procedimiento. Escribe el procedimiento de nombre ESPIRALCIRCULAR :LADO que dibuje espirales circulares. Procedimientos que llaman a otros procedimientos. Lo bueno de los procedimientos no es solo que nos permiten ejecutarlos escribiendo solamente el nombre, adems puedo llamarlos desde otros procedimientos haciendo ms sencilla y rpida la programacin. Veamos un ejemplo
PARA CUADRADO :LADO REPITE 4[AV :LADO GD 90] FIN PARA DIBUJO REPITE 6 [AV 20 GD 60 CUADRADO 75] FIN
Como habrs observado, el procedimiento dibujo llama al procedimiento cuadrado. Haz pruebas variando el polgono dibujado, el nmero de veces que se repite y la posicin que toma antes de dibujar el polgono. Recursin. Hasta ahora controlbamos el nmero de ciclos que se ejecutaba una serie de ordenes mediante la primitiva REPITE, pero a veces necesitamos que el programa est ejecutndolas de forma permanente. En estas situaciones podemos hacer que el procedimiento se llame a si mismo. A esto se le llama recursin. Vemoslo con un ejemplo que ya debes conocer
SI TECLA? [ALTO]
en cualquier sitio dentro del ciclo de recursividad. Modularizacin. Conforme vamos aprendiendo ms cosas sobre la programacin con WinLogo vamos exigindonos ms y nos planteamos problemas ms complejos. Cuando esto ocurre resulta necesario ver si podemos descomponer el problema complejo en una serie de problemas sencillos o mdulos. Un ejemplo quizs nos ayude a entender esto. Si deseamos realizar la figura que se muestra (un ejemplo que an est a nuestro alcance) la podemos descomponer en procedimientos que me dibujen figuras ms sencillas y realizar despus un procedimiento que integre los pequeos mdulos en que hemos descompuesto nuestro problema. El programa podra consistir en una serie de procedimientos como los que se muestran a continuacin
PARA FIGURA REPITE 4 [BANDERA] FIN PARA BANDERA CUADRADO 20 MASTIL FIN PARA MASTIL GI 90 AV 50 FIN PARA CUADRADO :LADO REPITE 4[AV :LADO GD 90] FIN FIGURA
Si desesemos dibujar un tablero de ajedrez podramos descomponer el dibujo en otros ms sencillos. Podramos empezar definiendo procedimientos que me dibujasen un cuadrado blanco y otro negro. Continuaramos definiendo un procedimiento que me dibujase un cuadrado blanco junto a uno negro, a continuacin definiramos el procedimiento que completase una fila y seguiramos hasta completar el tablero. No es fcil pero si no empiezas no terminas. Te atreves?
SI TECLA? [ALTO]
La primitiva SI es de la forma
Ejecuta la lista de instrucciones indicada en rdenes en caso de que pred sea CIERTO. Si se indica una segunda lista, rdenes2, ejecutar la misma en caso de que pred sea FALSO. Si se omite la lista rdenes2, se debe pulsar INTRO despus de la lista rdenes, de lo contrario se producir un mensaje de error. Para aclarar ideas probemos estos 2 procedimientos
PARA EDAD :EDAD SI :EDAD<18 [ESCRIBE [MENOR DE EDAD]][ESCRIBE "MAYOR] FIN EDAD 17 PARA NUMERO :NUMERO SI :NUMERO<0 [ESCRIBE "NEGATIVO] FIN NUMERO 17
Busca en la ayuda informacin sobre la primitiva AZAR e intenta averiguar qu hara el siguiente procedimiento
PARA CONTADOR_HASTA :NUMERO HAZ "CUENTA 0 INCREMENTO FIN PARA INCREMENTO ES :CUENTA SI :CUENTA=:NUMERO [ALTO] HAZ "CUENTA :CUENTA+1 INCREMENTO FIN CONTADOR_HASTA 10
Intenta escribir el procedimiento de nombre CUENTA_ATRS :NUMERO que escriba valores desde :NUMERO hasta 0.
6.
EJEMPLOS DE PROCEDIMIENTOS
Los programas en logo se construyen utilizando procedimientos, que son una secuencia de primitivas (rdenes bsicas que le damos al ordenador). Los procedimientos en logo comienzan por PARA y terminan con FIN y en medio de estas dos palabras escribimos las rdenes que queremos que tenga el programa. Para construir un procedimiento seguiremos los siguientes pasos: 1.- Pulsamos el botn Edicin de la barra de botones de arriba. 2.- Escribimos el programa en la ventana de edicin que aparece. 3.- Pulsamos el botn Interpretar para que logo interprete el programa. 4.- Ejecutamos el programa escribiendo su nombre en la ventana de Trabajo.
PARA Pentagono Borrapantalla Escribe [Cunto quieres que mida el lado del Pentgono?] Haz "lado LeePalabra Repite 5 [AV :lado GD 360/5] FIN
Ejemplo 4. Escribe hola, ms tu nombre
PARA saludo Escribe [Cmo te llamas?] Haz "nombre leepalabra (escribe "hola :nombre) FIN
Ejemplo 5. Dibuja rectngulo con una altura y ancho dado
PARA Rectangulo Borrapantalla LimpiaVentana TEXTOS Escribe [Dime la altura del rectngulo] Haz "altura LeePalabra
8
Escribe [Dime el ancho del rectngulo] Haz "ancho LeePalabra av :altura gd 90 av :ancho gd 90 av :altura gd 90 av :ancho FIN
Ejemplo 6. Calculadora
PARA Calculadora Borrapantalla LimpiaVentana TEXTOS Escribe [Dime un nmero] Haz "a LeePalabra Escribe [Dime otro nmero] Haz "b LeePalabra Haz suma (:a + :b) (Escribe La suma de :a ms :b es :suma) Haz resta (:a - :b) (Escribe La resta de :a menos :b es :resta) Haz mult (:a * :b) (Escribe La multiplicacin de :a por :b es :mult) Haz div (:a / :b) (Escribe La divisin de :a entre :b es :div) FIN
Ejemplo 7. Decide por una alternativa
PARA averigua escribe [Cual crees que es el secreto?] haz "intento leepalabra si :intento=fuego [escribe [has acertado]] [escribe [has fallado]] si :intento=fuego [alto] [averigua] FIN
Ejemplo 8. Nota media
PARA notamedia escribe [Dime la nota del primer examen] haz "a leepalabra escribe [Dime la nota del segundo examen] haz "b leepalabra escribe [Dime la nota del tercer examen] haz "c leepalabra escribe [Dime la nota del cuarto examen] haz "d leepalabra escribe [Dime la nota del quinto examen] haz "e leepalabra haz "media (:a+:b+:c+:d+:e)/5
9
(escribe "Tu "notamedia "es :media) si :media<5 [escribe [Has suspendido]] [escribe [Has aprobado]] FIN
Ejemplo 9. Al azar
PARA moneda escribe [Qu eliges: cara o cruz?] haz "eleccion leepalabra haz "sorteo azar 10 si :sorteo>4 [haz "resultado "cara] [haz "resultado "cruz] si :resultado=:eleccion [escribe [Has ganado]] [escribe [Has perdido]] FIN
Ejemplo 10. Solucin a ecuacin
PARA ecuacion escribe [dime el coeficiente a] haz "a leepalabra escribe [dime el coeficiente b] haz "b leepalabra escribe [dime el coeficiente c] haz "c leepalabra haz "radicando :b*:b-4*:a*:c si :radicando<0 [escribe [No hay solucin real]] [haz "numerador1 -:b+RC :radicando haz "numerador2 -:b-RC :radicando haz "denominador 2*:a haz "x1 :numerador1/:denominador haz "x2 :numerador2/:denominador (escribe "La "primera "solucin "es :x1) (escribe "La "segunda "solucin "es :x2)] FIN
10