PROGRAMA WINLOGO Guía realizada por: Marisa Carro Rubiera Dpto. de Tecnologías I.E.S. “Elisa y Luis Villamil” (Vegadeo) CURSO 2008-2009 TECNOLOGÍAS 4º E.S.O. ÍNDICE: 1. LENGUAJES DE PROGRAMACIÓN 2 2. ENTORNO DE WINLOGO 2 3. TRABAJAR CON PRIMITIVAS 3 ACTIVIDAD 1: REALIZAR FIGURAS 8 8 4. PROCEDIMIENTOS ACTIVIDAD 2: PROCEDIMIENTOS 11 ACTIVIDAD 3: UTILIZAR NUEVAS DIAPOSITIVAS 12 5. MODULARIDAD 13 6. VARIABLES GLOBALES 14 7. RECURSIVIDAD 16 8. SENTENCIA CONDICIONAL 16 ACTIVIDAD 4: REPASO 17 Esta guía resume los aspectos más significativos relacionados con Logo, tomados del curso "Del clavo al ordenador" impartido de forma interactiva en el servidor del Plan de Nuevas Tecnologías de la Información y la Comunicación. Dpto. de Tecnologías I.E.S. “Elisa y Luis Villamil” (Vegadeo) 1 TECNOLOGÍAS 4º E.S.O. PROGRAMACIÓN CON WINLOGO 1. LENGUAJES DE PROGRAMACIÓN: Se define como lenguaje de programación a un conjunto de símbolos y reglas que sirven para realizar programas de ordenador. Un programa es un conjunto de instrucciones, expresadas de manera algorítmica (de manera que estén encadenadas) que deben ser entendidas y ejecutadas por un ordenador. Existen multitud de lenguajes de programación para realizar distintos tipos de programas, algunos de los más utilizados son: Lenguaje máquina, son las instrucciones que realmente entiende el microprocesador de un ordenador, son instrucciones muy sencillas, pero resulta muy complicado realizar programas con dicho lenguaje. Basic, Pascal, Cobol, Fortran, C. Lenguajes utilizados desde hace tiempo para realizar muchos tipos de programas. Las versiones más modernas y empleadas de algunos de ellos son Visual Basic y Visual C. SQL, lenguaje empleado para manejar bases de datos. HTML, lenguaje en el que se codifica una página Web. Lenguajes Script, son lenguajes que pueden incrustarse en el código de una página Web. Algunos de los más empleados son Java-script, ASP, PHP. Win-logo, lenguaje diseñado para la educación, permite programar controladoras con la que se pueden hacer funcionar diferentes elementos: brazos robots, proyectos realizados en el taller, etc. 2. ENTORNO DE WINLOGO: El interfaz de WinLogo presenta varias ventanas o áreas de trabajo que pueden ser utilizadas para determinadas tareas. Estas ventanas son: Gráficos, Textos, Trabajo, Formas, Edición, Trazado, Variables. Dpto. de Tecnologías I.E.S. “Elisa y Luis Villamil” (Vegadeo) 2 TECNOLOGÍAS 4º E.S.O. Cuando iniciamos el programa la ventana de la aplicación aparece dividida en otras tres ventanas o áreas de trabajo que son: la ventana correspondiente a la ventana de Trabajo (zona en la que el usuario escribe las primitivas), la ventana de Gráficos (en ella aparece una tortuga que se desplazará según las primitivas que hayamos escrito en la ventana de trabajo), la ventana de Textos (zona en la que Logo muestra información referida a errores de programación, resultado de algunas primitivas, etc). Por tanto, las órdenes se escriben en la ventana de Trabajo, Logo muestra sus mensajes y textos en la ventana de Textos, sus gráficos los representa en la ventana de Gráficos. Dpto. de Tecnologías I.E.S. “Elisa y Luis Villamil” (Vegadeo) 3 TECNOLOGÍAS 4º E.S.O. 3. TRABAJAR CON PRIMITIVAS: Las órdenes que se aplican en WinLogo se llaman primitivas. Para ejecutarlas debes escribirlas en la ventana de trabajo. Cuando el objetivo de la primitiva sea dibujar, sus resultados se muestran en la ventana de gráficos y, por el contrario, aparecen en la ventana de textos cuando la primitiva tiene por objeto un texto. Veamos un ejemplo: 1. Activa la ventana de trabajo; para ello se sitúa el puntero del ratón sobre algún punto de la la misma y después se hace "clic" en ella con el ratón. 2. Escribe en ella: AVANZA 50 y se pulsa [INTRO] En la ventana de gráficos, verás como la tortuga dibujará una recta de cincuenta unidades de longitud en la ventana GRÁFICOS. (FIGURA 1) 3. Escribe ahora en la ventana de trabajo: BP Puedes comprobar como se borra el dibujo que haya en la ventana de gráficos y la tortuga vuelve a su posición inicial. (BP es la abreviatura de BORRA PANTALLA). Dpto. de Tecnologías I.E.S. “Elisa y Luis Villamil” (Vegadeo) 4 TECNOLOGÍAS 4º E.S.O. FIGURA 1 Si se comete un error al escribir una primitiva Logo envía su mensaje de error a través de la ventana de TEXTOS. Para comprobarlo teclea: AVVANZA 50; la palabra escribe se ha escrito con dos uves; el ordenador en este caso emitirá un mensaje de error en la ventana de TEXTOS. El mensaje de error que va a parecer es: Dpto. de Tecnologías I.E.S. “Elisa y Luis Villamil” (Vegadeo) 5 TECNOLOGÍAS 4º E.S.O. PRIMERAS PRIMITIVAS PRIMITIVA (ABREVIATURA) ACCIÓN AVANZA (AV) La tortuga dibujará una recta con la longitud que se indique a continuación de la primitiva. RETROCEDE (RE) La tortuga se desplaza las unidades que se indica a continuación de la primitiva hacia atrás. GIRAIZQUIERDA (GI) La tortuga gira a la izquierda el nº de grados que se indica a continuación de la primitiva. GIRADERECHA (GD) La tortuga gira a la derecha el nº de grados que se indica a continuación de la primitiva. ESCRIBE “X (ES “X) El ordenador escribe en la pantalla de texto la palabra situada detrás de las comillas. ESCRIBE [XX XX] (ES [XX XX]) El ordenador escribe en la pantalla de texto la frase situada entre los dos corchetes. BORRAPANTALLA (BP) Se borra el dibujo que haya en la ventana de gráficos y la tortuga vuelve a su posición inicial. SUBELAPIZ (SL) Eleva el lápiz de la tortuga activa para que SL no deje trazo al moverse. BAJALAPIZ (BL) Activa el lápiz de la tortuga y dibuja un trazo a lo largo de su trayectoria. REPITE Repite el número de veces indicado la acción situada entre corchetes. CENTRO Sitúa las tortugas activas en el centro del gráfico. En su desplazamiento al centro, las tortugas dejan rastro o no, dependiendo de si su posición es bajalapiz o subelapiz. Dpto. de Tecnologías I.E.S. “Elisa y Luis Villamil” (Vegadeo) 6 TECNOLOGÍAS 4º E.S.O. 1. Dibuja un cuadrado de 60 unidades: AV 60 GI 90 AV 60 GI 90 AV 60 GI 90 AV 60 2. Dibuja un triángulo equilátero de 100 unidades: AV 100 GI 120 AV 100 GI 120 AV 100 PRIMITIVA: REPITE Esta primitiva no tiene abreviatura; su sintaxis es: REPITE n[acciones] Es muy interesante para la representación de figuras en las que se repite las primitivas, en el mismo orden, varias veces; esto nos permite simplificar el programa. o Realiza los siguientes ejemplos: Es ACTIVIDAD GUIADA 1. Dibuja un cuadrado de 70 unidades: REPITE 4[AV 70 GD 90] 2. Dibuja un hexágono de 50 unidades: REPITE 6 [AV 50 GD 60] Dpto. de Tecnologías I.E.S. “Elisa y Luis Villamil” (Vegadeo) 7 TECNOLOGÍAS 4º E.S.O. ACTIVIDAD 1. REALIZAR FIGURAS (utilizando la primitiva REPITE, si es posible). 1. Dibuja un triángulo equilátero de 75 unidades. 2. Realiza el dibujo de un hexágono de 50 unidades de lado. 3. Realiza el dibujo de un polígono de 9 lados y 30 unidades cada lado. 4. Realiza el dibujo de un polígono de 7 lados y 20 unidades cada lado. 4. PROCEDIMIENTOS: El lenguaje Logo permite programar en modo procedimental. Esto consiste en enseñar procedimientos al ordenador que, una vez asimilados, interprete como si fueran nuevas primitivas. Se inician con la primitiva PARA, seguida del nombre del procedimiento; a continuación, se introducen las instrucciones y se finaliza con la primitiva FIN. Procedimiento para dibujar un cuadrado: PARA CUADRADO :L REPITE 4[AV :L GD 90] FIN Procedimiento para dibujar un triángulo equilátero: PARA TRIANGULO :L GD 30 REPITE 3[AV :L GD 120] GI 30 FIN Procedimiento para dibujar un polígono regular: ( N= número de lados, L = longitud del lado) PARA POLIGONO :N :L REPITE :N[AV :L GD 360/:N] FIN Dpto. de Tecnologías I.E.S. “Elisa y Luis Villamil” (Vegadeo) 8 TECNOLOGÍAS 4º E.S.O. Procedimiento para dibujar una circunferencia: PARA CIRCUNFERENCIA :R REPITE 360[AV 2*PI*:R/360 GD 360/360] FIN LOS PROCEDIMIENTOS RECIÉN DEFINIDOS PUEDEN EJECUTARSE MIENTRAS NO SE SALGA DEL PROGRAMA. PARA NO PERDER LOS PROCEDIMIENTOS QUE SE ENCUENTRAN VISIBLES EN LA PANTALLA SE DEBEN REALIZAR LOS SIGUIENTES PASOS: 1. Escribe el procedimiento en la ventana TRABAJO. 2. Selecciona, en la barra de menú, Procedimientos/Variables dentro de Utilidades. 3. En la ventana de diálogo, puedes ver el nombre del procedimiento que acabas de realizar, selecciónalo para que se activen los botones de la derecha: trabajo, borrar, imprimir… Dpto. de Tecnologías I.E.S. “Elisa y Luis Villamil” (Vegadeo) 9 TECNOLOGÍAS 4º E.S.O. 4. Selecciona GUARDAR. Dpto. de Tecnologías I.E.S. “Elisa y Luis Villamil” (Vegadeo) 10 TECNOLOGÍAS 4º E.S.O. 5. Selecciona dentro de VÍA la carpeta donde quieres guardar el procedimiento. 6. En FICHERO: escribe el nombre con el que quieres guardar el procedimiento. 7. Haz clic en CONFIRMAR. ACTIVIDAD 2. REALIZAR PROCEDIMIENTOS (utilizando variables). 1. Crea el procedimiento HEXÁGONO. 2. Crea el procedimiento OCTOGONO. 3. Crea el procedimiento PENTAGONO. 4. Crea el procedimiento RECTÁNGULO, utilizando las variables base y altura. 5. Crea un procedimiento para construir una CASA. 6. Crea el procedimiento para dibujar una escalera de 10 peldaños y cada peldaño de 30 por 30. Dpto. de Tecnologías I.E.S. “Elisa y Luis Villamil” (Vegadeo) 11 TECNOLOGÍAS 4º E.S.O. MÁS PRIMITIVAS PRIMITIVA (ABREVIATURA) OCULTATORTUGA (OT) MUESTRATORTUGA (MT) PONGROSOR (PONG NUM) PONCOLORLAPIZ (PONCL NUM) GOMA (GOMA) ACCIÓN Oculta la tortuga mientras esté activa esta primitiva. Muestra la tortuga. Primitiva utilizada después de aplicar la anterior. Cambia el grosor de la línea. Cambia el color de la línea dibujada. Borra la línea elegida RELLENA (RELLENA) Rellena una figura cerrada del color de la tortuga siempre que ésta esté dentro de la figura. PONPOS (PONPOS) Ubica la tortuga activa en el punto cuyas coordenadas se indican en coordenadas. ACTIVIDAD 3. UTILIZAR NUEVAS PRIMITIVAS (TABLA SUPERIOR). 1. Realiza el dibujo de un cuadrado de 60 de lado. Cada lado debe tener un color y un grosor diferente. 2. Realiza el dibujo de un rectángulo de 100 por 50. Cada lado debe tener un color y un grosor diferente. 3. Realiza el dibujo de un triángulo equilátero de 75 de lado. Cada lado debe tener un color y un grosor diferente. 4. Efectúa un procedimiento para dibujar una escalera de X peldaños y de Z x Z cada peldaño. 5. Efectúa un procedimiento para dibujar una escalera de X peldaños y de Y x Z cada peldaño. Dpto. de Tecnologías I.E.S. “Elisa y Luis Villamil” (Vegadeo) 12 TECNOLOGÍAS 4º E.S.O. 6. Efectúa un procedimiento llamado NUMEROMULT con un parámetro llamado número, de tal manera que ese procedimiento escribe el número en pantalla si el número es igual a 10 o escribe el número multiplicado por 2 en caso contrario. 7. Realiza un procedimiento llamado NUMEROSUM con un parámetro llamado número de tal manera que ese procedimiento escriba en pantalla el número más 5 si el número es menor que 10 o el número menos 5 en caso contrario. 8. Crea el procedimiento FIGURAS, que te permita dibujar la siguiente secuencia: B 2B B A B B 2A 2A 5. MODULARIDAD. LOGO ofrece la posibilidad de dividir un programa en otros más pequeños y fáciles de diseñar que pueden dividirse en otros, esta característica se denomina MODULARIDAD. En el árbol de procedimientos podemos ver los diferentes subprocedimientos que se han utilizado para la realización de un procedimiento complejo. Dpto. de Tecnologías I.E.S. “Elisa y Luis Villamil” (Vegadeo) 13 TECNOLOGÍAS 4º E.S.O. 6. LAS VARIABLES GLOBALES. Las variables globales pueden existir durante todo el tiempo en el que LOGO esté activo, cosa que no ocurre con las variables locales. Por tanto, el programador debe tener cuidado de no definir a dos variables con el mismo nombre. Las variables globales se crean con la primitiva HAZ. HAZ “NOMBRE contenido El contenido de la variable puede ser: El nombre que se da a la variable debe ser un conjunto de caracteres sin espacios en blanco y debe ir procedido de comillas. Un número. El resultado de una operación. Una palabra que irá precedida de comillas. Una lista entre corchetes. Una serie de datos introducidos desde el teclado durante la ejecución del programa por medio de ciertas primitivas. El contenido de una variable aparece cuando se escribe precedida por el símbolo: nombre No es posible crear una variable global ni en la primera línea de procedimiento ni en la última. PARA LADOTRIAN ES [Escribe la longitud del lado de un triángulo equilátero] HAZ “LADO LEEPALABRA REPITE 3[AV :LADO GD 120] FIN PARA SALUDO ES [¿Cómo te llamas?] HAZ “NOMBRE LEEPALABRA ES FRASE [Encantado de conocerte] :NOMBRE FIN Dpto. de Tecnologías I.E.S. “Elisa y Luis Villamil” (Vegadeo) 14 TECNOLOGÍAS 4º E.S.O. MÁS PRIMITIVAS PRIMITIVA (ABREVIATURA) ACCIÓN HAZ “nombre objeto Asigna el valor indicado en objeto a la variable llamada nombre. LEECAR (LC) Lee el primer carácter de un archivo o la primera pulsación desde el teclado sin necesidad de pulsar INTRO. LEECARS num (LCS num) Lee los números primeros caracteres pulsados desde el teclado o leídos desde un archivo. LEELISTA (LL) Lee una lista de caracteres introducidos desde el teclado o leídos desde un archivo. LEEPALABRA (LP) Lee la primera palabra introducida desde el teclado o leídos desde un archivo. EJEMPLO: PARA CUBO ES [CALCULA EL CUBO] ES [ESCRIBE CIFRA] HAZ "CIFRA LP (ES [EL CUBO ES] :CIFRA*:CIFRA*:CIFRA) FIN Dpto. de Tecnologías I.E.S. “Elisa y Luis Villamil” (Vegadeo) 15 TECNOLOGÍAS 4º E.S.O. 7. RECURSIVIDAD. Se llama recursividad a la posibilidad que ofrece un programa diseñado en LOGO de llamarse a si mismo en un bucle sin fin. EJEMPLO: PARA CIRCUNFERENCIA AV 1 GD 1 CIRCUNFERENCIA FIN La forma de abandonar su ejecución infinita de procedimiento se puede realizar mediante la primitiva TECLA? en una condición. PARA CIRCUNFERENCIA SI TECLA? [ALTO] AV 1 GD 1 CIRCUNFERENCIA FIN 8. SENTENCIA CONDICIONAL. La sentencia condicional se expresa con la primitiva SI y tiene varias sintaxis; las más usuales son: SI CONDICION [ACCIÓN 1] [ACCIÓN 2] Si se cumple la condición, se ejecutan las acciones contenidas en el primer corchete y, en caso contrario, los incluidos en el segundo. SI CONDICION [ACCIÓN ] Si se cumple la condición, se ejecutan las acciones contenidas en el corchete; después el programa pasa a la línea siguiente; si no se cumple la condición, el programa pasa a la línea siguiente. Las estructuras recursivas se utilizan muy a menudo en los programas de robótica. En gran cantidad de ocasiones las máquinas, además de ejecutar acciones habituales, están abiertas ante cualquier cambio que pueda producirse gracias a su programación. Dpto. de Tecnologías I.E.S. “Elisa y Luis Villamil” (Vegadeo) 16 TECNOLOGÍAS 4º E.S.O. Control de recursividad por medio de un contador: PARA CONTADOR :N SI :N<0 [ESCRIBE “FIN ALTO] ES :N CONTADOR :N-1 FIN ACTIVIDAD 4. REPASO 1. Escribe un procedimiento llamado LEYDEOHM que pida el valor de la resistencia y de la intensidad y dé cómo resultado el voltaje. Nota: Recuerda que la ley de Ohm establece que el voltaje es igual al producto de la resistencia por la intensidad. No olvides mostrar las unidades. 2. Escribe un procedimiento que permite representar un arco de 30º. 3. Escribe un procedimiento que permita representar un arco de 60º. 4. Escribe un procedimiento que permita representar un arco de 90º. 5. Desarrolla un programa que lea la longitud de los catetos de un triángulo rectángulo y que calcule y muestre el área del triángulo y la longitud de la hipotenusa. 6. Realiza un programa que calcule el área de un círculo. El valor del radio se debe pedir al usuario del programa y el resultado se mostrará en pantalla. 7. Realizar un procedimiento que decida si un número es cero o no lo es. 8. Realizar un procedimiento que decide si la edad no es suficiente para poder entrar en la discoteca. 9. Procedimiento que indica si la temperatura es agradable (18º C -25º C). 10. Crea un procedimiento que dibuje un cuadro negro. 11. Crea un procedimiento que dibuje un cuadro rojo. 12. Crea un procedimiento que provoque una intermitencia entre uno y otro de 2 segundos. 13. Crea un contador con dos variables, el nº de inicio y el descenso. Dpto. de Tecnologías I.E.S. “Elisa y Luis Villamil” (Vegadeo) 17