Aprendiendo con Logo Grafico

19 downloads 4100 Views 411KB Size Report
El Lenguaje LOGO fue desarrollado en el Laboratorio de Inteligencia Artificial ..... Un ejemplo de animación lo tenemos en los dibujos animados que se logran a ...
Aprendiendo con Logo Gráfico – Antueno - Luppi

Autores

Ing. Eduardo de ANTUENO Prof. Ignacio LUPPI

APRENDIENDO CON LOGO GRAFICO

®

Ideas y Animaciones - Edición Preliminar para InternetAcompañan a este libro material didáctico y programas

Edita y distribuye FUNDAUSTRAL Gavilanes 2116 – 1416 - Buenos Aires - Argentina Tel (01) 4581-2768 – [email protected] http://www.fundaustral.com.ar [email protected] http://www.igluppiweb.com.ar - Prohibida su reproducción parcial o total1

Aprendiendo con Logo Gráfico – Antueno - Luppi

© Las marcas y productos mencionados son propiedad de sus respectivos propietarios. WINDOWSTM es marca registrada por MICROSOFT® Copyriht © Microsoft Corporation 1985 - 1993

LOGO GRAFICO® es marca registrada Copyright 1984 by Carlos R. Grant Aprendiendo con Logo Gráfico - Ideas y Animaciones Copyright by FUNDAUSTRAL. Queda hecho el depósito que marca la Ley 11723. El soporte lógico y el material impreso están inscriptos en la Dirección Nacional de Derecho de Autor, Prop. Intelectual en trámite Prohibida la reproducción parcial o total tanto del soporte magnético como de este manual, por cualquier medio. Impreso en Argentina Printed and published in Argentina Imprimié et publié en Argentine Stampato e publicato nell' Argentina Impresso e editado na Argentina Segunda Edición en Febrero de 1997 ISBN 2

Aprendiendo con Logo Gráfico – Antueno - Luppi

Contenido Capítulo 1 PROGRAMEMOS NUESTROS PROPIOS DIBUJOS ANIMADOS Capítulo 2 USO DE VARIABLES Capítulo 3 INTRODUCCION AL USO DE LISTAS Y PALABRAS Capítulo 4 ALGUNAS CUENTAS Capítulo 5 LOGO Y LA PROBABILIDAD Capítulo 6 TRABAJANDO CON FORMAS Y DECORADOS Capítulo 7 ANIMACIÓN SIMULTÁNEA: OTRA FORMA DE HACER ANIMACIÓN Capítulo 8 CONVERSANDO CON LOGO Capítulo 9 TRABAJANDO CON LISTAS Capítilo 10 USO DE BOTONES Y CONTROLES Capítulo 11 PUERTO Y MANDOS

3

Aprendiendo con Logo Gráfico – Antueno - Luppi

INTRODUCCION

Breve síntesis acerca de LOGO El Lenguaje LOGO fue desarrollado en el Laboratorio de Inteligencia Artificial del Instituto Tecnológico de Massachusetts (MIT) en EEUU por Seymour Papert y fue difundido inicialmente en ese país, Inglaterra y Francia. Aunque LOGO fue pensado para usarse en educación, es de hacer notar que es un lenguaje derivado del LISP, que es usado para inteligencia artificial. El mismo lenguaje LOGO tiene versiones específicas que se usan para ese fin y derivados de éste que se usan para programar robots en fábricas. Asimismo un módulo lunar fue programado con una variante del lenguaje LOGO. Son poco conocidas por el público estas aplicaciones como también que la versión de LOGO Gráfico desarrollada en Argentina se usa en la Comisión de Energía Atómica para diseño de carga del reactor nuclear de Atucha. En la Univ. de California (Berkeley - EEUU) el famoso matemático Brian Harvey, dedico tres voluminosos tomos a la "Ciencia de la Computación al estilo Logo" en el que trata temas como sistemas de inferencia, rompecabezas lógicos, backtracking y otros temas vinculados a la Inteligencia Artificial.(1) LOGO no es solamente un lenguaje de computación o un software muy difundido en educación, sino que es también un conjunto de materiales disponibles para someter a prueba al usuario, ya sea niño, adolescente o adulto, sobre la coherencia - matemáticamente diríamos "consistencia" - de sus ideas al tratar de ordenar algo a la computadora. Como afirma el Dr. Seymour Papert en su libro "Desafío a la Mente" (2), LOGO representa una modalidad en el uso de las computadoras y un instrumento para la exploración de ideas. LOGO se apoya en una teoría de conocimiento basada en los estudios de Piaget y explicitada por Papert (MIT). El aspecto social del aprendizaje con LOGO, ha sido analizado por Gérard Bossuet, precursor en la introducción de la modalidad LOGO en Francia, el cual estudio el comportamiento de un grupo de trabajo colectivo compartiendo una computadora. Bossuet - de la Univ. de París VI diferencia su experiencia en Montpélier (Francia) con la idea de la "computadora-pelota-paracompartir" que se contrapone a la experiencia norteamericana con la "computadora-lápiz-deuso-individual" . Para este tema recomendamos leer La Computadora en la Escuela (3). El uso frecuente de LOGO pone en evidencia el proceso intelectual realizado por quien lo utiliza evidenciando sus errores y por ello facilitando la autocorrección de fallas de razonamiento lógico. En la terminología computacional se llama programación al proceso relativo a la comunicación con computadoras que produce un comportamiento particular. Para indicarle qué debe hacer la computadora debemos darle un conjunto de órdenes respetando determinada sintaxis. El lenguaje LOGO está constituído por conjuntos de palabras llamadas "primitivas" a través de las cuales damos órdenes. 4

Aprendiendo con Logo Gráfico – Antueno - Luppi

Al programar en LOGO se crean "palabras nuevas" llamadas procedimientos, con los cuales se manejan los materiales (recursos) incluidos en este lenguaje. Una vez creadas, estas nuevas palabras pasan a engrosar el vocabulario con el que nos comunicamos con la computadora y servirán para nombrar "procesos" creados por el usuario, el que las utilizará para graficar, resolver problemas, crear micromundos o juegos, etc. Esta es una característica de LOGO que se denomina extensibilidad del lenguaje.

¿Qué podemos hacer con LOGO? Los materiales de que disponemos con LOGO dependen de la versión utilizada. Elegiremos para enumerarlos la versión de Logo Gráfico: a- Un elemento graficador (tortuga) que construye dibujos desde una visión intrínseca, es decir con desplazamientos y giros. La tortuga, matemáticamente hablando, es un vector, pues en todo momento tiene ubicación, dirección y sentido. Al comandar la tortuga tratando de dibujar algo el operador debe descentrarse, ubicándose en el lugar de ésta, por lo que las líneas se construyen a partir de referencias concretas de su propio cuerpo. Es la llamada Geometría intrínseca. La geometría que se utiliza en las gráficas cartesianas es, por el contrario, referida a ejes, ubicándose el observador separado del elemento graficador. b- 20 actores o formas móviles (*) que permiten estudiar movimientos, simular animaciones para representar cualquier tipo de fenómeno o microcosmos material en la pantalla. (*) hasta 60 en la versión más moderna. c- Imágenes fijas de cualquier tamaño (llamadas bitmaps) que es posible visualizar en cualquier lugar de la pantalla. d- Sonidos grabados (digitalizados) previamente por medio de un micrófono o disponibles de una colección. e- Porciones de sonidos, músicas y videos realizados por otros programas y ejecutados desde LOGO. f- Dispositivos externos conectados a la computadora como interruptores, motores, sensores físicos, ópticos o térmicos, etc. g- Lugar donde almacenar la información a procesar. La forma en que LOGO guarda la información - y luego dispone de ella - es a través de objetos llamados "palabras" y conjuntos llamados "listas". El manejo de este tema es el que posibilita el real dominio del lenguaje. Actualmente el porcentaje de docentes que conoce este tema es muy bajo, lo que hace que sólo "arañen" la superficie del LOGO. h- LOGO tiene alrededor de 30 primitivas (funciones) para cálculos matemáticos de todo tipo y 27 otras para trabajar con palabras y listas. i - 40 Botones de distintos tipos que permiten activar procedimientos y 10 controles que pueden controlar datos numéricos en otras tantas variables. j - Entornos físicos con velocidad, fricción, aceleración, gravitación, y otros conceptos que permiten introducirse en el mundo de las simulaciones. Esta es una característica casi propia de Logo Gráfico.

5

Aprendiendo con Logo Gráfico – Antueno - Luppi

¿Para qué nos sirve LOGO? Para ayudarnos a aprender conceptos lógicos y matemáticos tan importantes como toda la aritmética y geometría curricular (la lógica no suele ocupar un lugar importante hasta el ciclo universitario). Puede hacerse un paralelismo entre el aprendizaje de la matemática escolar "tradicional" y la que se aprende experimentando con LOGO comparándola con el conocimiento que se obtendría de un lugar geográfico mirándolo a través de fotos o videos, versus el conocimiento logrado "in situ" desplazándose en el propio terreno. Papert lo menciona en su libro cuando habla de la diferencia entre aprender matemáticas y construir las "matemáticas". Es decir entre estudiar matemáticas y ser matemático. El aprendizaje con Logo es activo, exploratorio y vivencial. Al observar programas de los estudiantes hechos con LOGO podemos encontrar formas de comprender cómo han trabajado sus mentes en el proceso del desarrollo de los programas, además del nivel de conocimiento, las estrategias y el estilo que usaron para resolver problemas. Actualmente, los productos informáticos que más se usan en los colegios - sobre todo de nivel medio - son los programas utilitarios. Ello se debe a la presión de los medios y del mercado de consumo. Muchos de los adultos que apoyan esta postura creen que los alumnos adolescentes poseen la misma dificultad que ellos en manejar un procesador de texto. Los adultos que han crecido en una cultura precomputacional tienen miedos que les dificultan su relación con las máquinas, y por lo tanto traban el aprendizaje de esta herramienta. Es un hecho que un adolescente de inteligencia media, con ganas de aprender un programa utilitario (o por necesidad laboral) puede hacerlo en una semana. Hemos notado que muchas veces el uso de estos programas en el medio educativo sólo tiende a una mejor presentación o acabado de un trabajo y con menor esfuerzo. La forma de usar la computadora con utilitarios o con LOGO no se contrapone, se complementa. Ya que en el primer caso la máquina se usa para hacer algunas operaciones o procesos más fácilmente (4) y en el segundo se usa para entender como funcionan los procesos.(5)

¿Por qué programar? Cualquier actividad intelectual puede verse como una ventana hacia la mente. Sin embargo, hay aspectos importantes de la programación con los que no contábamos antes que nos permiten penetrar nuestra mente. La discusión sobre "por qué programar" es un tema actual de debate. En el trabajo ¿"Está obsoleta la programación?" (Clements y Meredith, 1993) se resume una reunión de la Asociación Estadounidense para la Investigación Educativa en la cual algunos importantes investigadores opinan sobre el tema. La programación es "el mejor apoyo con que contamos para representar las actividades cognitivas", según Andrea diSessa (MIT).

6

Aprendiendo con Logo Gráfico – Antueno - Luppi

Un importante investigador de la Universidad de Campinas(6) dice "la ventana hacia la mente surge cuando se ve el proceso de programación como un ciclo que consiste en describirejecutar-reflexionar-corregir-describir". Nosotros preferimos la analogía de la computadora como un "espejo de la mente", pues la tarea de programación es un reflejo del pensamiento (Computación en el Colegio- Antueno, Naveira y Thompson -(7) Citando al experto brasileño José Valente diremos que: "Cuando un estudiante usa Logo sus ideas iniciales sobre cómo resolver el problema las transmite a la computadora. Así, el estudiante actúa sobre el objeto-computador". Se puede decir que es un microcosmos obediente que facilita el proceso de descripción de ideas. El LOGO no enseña un tema determinado: Es una herramienta para investigar... La computadora es la primera herramienta que hace pasar la acción del nivel material al lógico.

Valor pedagógico de LOGO El LOGO es un material formativo, como lo son los rompecabezas, el meccano o los juegos de ingenio. Visto desde este punto de vista no puede decirse de LOGO que sea anacrónico ni pasado de moda, de la misma manera que nadie diría que los rompecabezas o los materiales constructivos son anacrónicos. Igual que en un "meccano" lo importante es el armado del mismo y no el producto final. Los conceptos pedagógicos incluidos en LOGO permiten: - Plantearse y resolver problemas. a. Proponiendo soluciones. b. Descomponiéndolo en partes simples (análisis) c. Construir la solución total a partir de pequeñas soluciones (síntesis). - Desarrollar la capacidad de describir. - Explorar y descubrir. - Valorar los componentes del lenguaje. - Desarrollar la capacidad de abstraer. - Encarar actividades que ayudan a la construcción del espacio. Citando a los profesores Hoyles y Noss, del Instituto de Educación de la Univ. de Londres "LOGO ofrece a los niños una forma de "hacer" matemáticas o de usar ideas matemáticas como un preludio para entender. LOGO ofrece la posibilidad de desarrollar control sobre su propio aprendizaje, donde ellos mejor que sus maestros, se preguntan y se contestan en su propio estilo" (8).

LOGO como lenguaje computacional La parte más divulgada del lenguaje LOGO es su facilidad para graficar: la famosa "tortuga". Pero tal vez esa facilidad para lograr algunos dibujos, han sido también propicios para crearle una imagen de lenguaje sólo para los más chicos. Se confunde simpleza en el manejo y aprendizaje con falta de potencia de programación. Han contribuido a ellos varios factores: 7

Aprendiendo con Logo Gráfico – Antueno - Luppi

1. La capacitación superficial que han tenido muchos docentes, ya que por distintos motivos sólo han hecho cursos cortos y por distintos motivos no han investigado lo suficiente. 2. La falta de material en castellano. 3. El desconocimiento del tema por muchos profesionales de la informática, educados con lenguajes como el COBOL, FORTRAN, BASIC, etc. 4. El desconocimiento del tema de muchos comunicadores sociales y de la prensa en general. LOGO tiene estructuras de control muy simples. La modularidad y la recursión son los elementos que lo hacen muy potente. Un procedimiento LOGO que utiliza varios subprocedimientos con varios niveles de anidamiento y de forma recursiva es capaz de expresar en pocas líneas ideas tan complejas que a lectores no acostumbrados a los lenguajes de inteligencia artificial, les costará comprender. Un programa como el citado equivale a cientos de instrucciones de otros lenguajes.(9)

Esta versión de LOGO Esta versión ha sido desarrollada con el objetivo de reforzar el "principio de poder" del que habla Papert en su libro Desafío a la Mente, ya que desde la creación del LOGO hasta ahora, el entorno computacional que rodea a los niños se ha modificado en gran medida, por lo que un niño de los años '90 no experimentaría la misma sensación de poder (y de poder hacer) al experimentar con LOGO que hace 20 años. A fines de los '90 el micromundo de la tortuga debe dejar paso a un micromundo animado más sintónico con el mundo actual, es decir, creemos que debe poner el acento en la noción de movimiento. O sea que reemplazamos un paradigma basado en la geometría por otro basado en la Física. Es por ello resulta razonable, trabajar con idénticos objetivos constructivistas, pero utilizando entre otras herramientas la animación simultánea y los eventos. La programación por eventos permite desarrollar estrategias de anticipación en niños y adolescentes(10) Un evento puede ser introducido por el usuario -por ej. tocando una tecla- o ser una consecuencia de la evolución del movimiento de un actor -por ej. una colisión- u ocurrir por el mero paso del tiempo (ver §7.5.1.) La programación orientada hacia la acción responde bien a la cultura actual en la que son comunes los video-juegos y la animación generada por computadora, moneda corriente en TV y cine. Se propone también esta herramienta como masilla modelable por docentes o profesionales para crear micromundos donde mediante la simplificación de leyes que rijan ese universo sea posible explorar determinados comportamientos. De hecho LOGO GRAFICO incluye un micromundo físico con primitivas utilizables en cinemática y dinámica.

LOGO en el mundo... En estos últimos años han aparecido nuevos desarrollos de versiones de LOGO en América y Europa. Importantes grupos de investigación se ocupan del tema en Rusia, Inglaterra, Bulgaria, Hungría, Eslovaquia, Grecia, Portugal, etc. Particularmente podemos citar el proyecto de la Unión Europea desarrollando un Entorno Multimedia de Autor para Niños llamado MATCh 8

Aprendiendo con Logo Gráfico – Antueno - Luppi

(Multimedia Authoring environmenT for CHildren) en el que intervienen 7 países que esta basado en LOGO.(10a) - En Inglaterra se acaba de editar el Super-Logo desarrollado en la Universidad de Comenius (Eslovaquia), en EEUU han aparecido varias versiones nuevas: Micromundos, el UCB Logo, el Berkeley MSW Logo, etc. - En la Facultad de Matemáticas de la Univ. de Sofía, en Bulgaria B. Sendov y s. Yalamova desarrollaron un entorno matemático llamado GEOMLAND que es un programa desarrollado en LOGO, en la que pueden estudiarse propiedades de diferentes modelos de construcciones geométricas complejas.(11) - En Grecia, en la Escuela de Filosofía de la Universidad de Atenas, se han desarrollado micromudos de LOGO - en el marco de proyecto YDEES sostenido por la Comunidad Europea para manejar tablas (tipo planilla de cálculo) , micromundos geográficos, - En América del Sur está aumentando mucho su uso en Brasil donde compiten TrendLogo (versión en portugués de Logo Gráfico) y MegaLogo (versión en portugués de Comenius Logo) y en Costa Rica donde el programa de Informática Educativa está en etapa de expansión utilizando la versión de LOGO llamada Micromundos. - En Melbourne (Australia) en la Univ. La Trobe, los profesores estudian LOGO como herramienta matemática y para aumentar el enfoque de enseñanza-aprendizaje colaborativo (12). - En Moscú (Rusia), en el Instituto de Nuevas Tecnologías de Educación se ha utilizado desde hace varios años con alumnos de 14 a 16 años para simulaciones de física ( campos electrostáticos, cinemática), en álgebra vectorial, para el estudio de fractales, etc. - En Hungría desde 1995 con el nuevo curriculum se recomienda el uso de Logo, y el gobierno compró una licencia a la Univ. de Comenius, para uso de todas las escuelas húngaras. - En Israel en la Univ. de Bar-Ilan el Prof. Uzi Armon del Depto. de Matemáticas y Ciencias de la Computación trabaja en algoritmos de ecuaciones intrínsecas e integración gráfica con Logo (13).

(1) Editado por MIT Press - 1987- Massachusetts - EEUU (2) Desafio a la Mente - Seymour Papert - Ediciones Galápago - Bs. As. (3) La Computadora en la Escuela - Gérard Bossuet - Ed. Paidós - Bs. As. (4) La computadora como herramienta. (5) La computadora como simuladora. (6) Logo como ventana hacia la mente - Jose A. Valente - Univ. de Campinas - Brasil (7) Apéndice 1 - Computación en el Colegio: Logo: espejo de la mente - Antueno E. -Naveira A. y Thompson H. - Edit. Informática Educativa (Fundaustral) 1983 (8) Computadoras y aprendizaje matemático - Contribución de Celia Hoyles y Richard Noss - Informatics in the Secondary School Today and Tomorrow (pág. 109) - Edited by Sensova, Azalov y Muirhead - UNESCO. (9) Tomado de "De la tortuga a la inteligencia artificial" - Luis Rodríguez Roselló - Vector Ediciones - Barcelona - España (10) Una nueva versión Latinoamericana de Logo - E. Antueno - I. Luppi - C. Grant -Memorias de la 6ta Conferencia Europea sobre Logo (ver 11) (10a) Memorias de la 6ta Conferencia Europea sobre Logo - Learning and exploring with Logo - Pág. 80 y subsiguientes. - Budapest Hungría - Recopiladora: M. Turcsanyi-Szabó (11) Informatics in the Secondary School - Today and Tomorrow (pág. 99) - Edited by Sensova, Azalov y Muirhead - UNESCO. (12) Increasing Confidence in Mathematics Ability throught Logo and Collaborative Learning - Dr, A. Jones - email: [email protected] (13) Journal of Math. Educ. in Sciences and Technology 22(4) pp. 577-584, 1991.

9

Aprendiendo con Logo Gráfico – Antueno - Luppi

CAPITULO 1

PROGRAMEMOS NUESTROS PROPIOS DIBUJOS ANIMADOS § 1.1 LA ANIMACION ¿Qué es la animación? Si recurrimos al diccionario veremos que es "la acción y efecto de dar vida a algo". Un ejemplo de animación lo tenemos en los dibujos animados que se logran a partir de un dibujo y de pequeñas variaciones del mismo que al verlas en rápida sucesión dan la ilusión de movimiento y de "tener vida". La sensación de movimiento del cine profesional se logra con la proyección de 24 fotogramas por cada segundo y mediante el fenómeno de persistencia de las imágenes en la retina del ojo humano. De los distintos recursos que tiene el lenguaje LOGO, gráficos, animación, uso de texto y sonido, siempre se ha destacado la primera, o sea la capacidad de dibujar de la tortuga. Este hecho se ve reflejado en todos los libros extranjeros y en los pocos nacionales que se han editado en los últimos años. La explicación de esta falencia en el material procedente del extranjero, probablemente se deba a lo que podríamos llamar una determinada "cultura LOGO", que pese a haberse iniciado en EE.UU. en el Instituto Tecnológico de Massachusetts con la excelente versión para Texas Instruments (1979), la cual poseía muchas posibilidades de animación (32 formas móviles), quedó trunca al imponerse en las escuelas norteamericanas las computadoras Apple II y su versión de LOGO de Terrapin (1981) que sólo tenía una tortuga en forma de triángulo y no tenía animación hasta bastantes años después, con la aparición del "Sprite LOGO" (1) que contaba con 30 formas móviles. En cambio, en nuestro país, la mayoría de las versiones LOGO que se han difundido tienen recursos de animación como puede verse en el cuadro de más abajo. Históricamente el TI LOGO y el MSX LOGO lograron la mejor animación para computadoras de tipo hogareño (home computers). Luego con la llegada de las PC la animación perdió posibilidades ya que las primeras tenían un chip dedicado al movimiento y las PC no. Para PCs no hubo versiones de LOGO con velocidad y eventos (2) hasta que apareció el LOGO GRAFICO, primero para DOS y luego para Windows, que tiene muy potenciados estos recursos.

(1) Sprite: en inglés significa duende y se refiere a pequeñas porciones de pantalla que es posible definir en forma y color, para luego moverlas. También se las denomina tortugas múltiples, actores o agentes móviles, y su existencia es la que posibilita el recurso de animación. (2) La versión Logo Writer © utiliza la palabra evento para denominar a lo que suele llamarse macro en computación. es decir una combinación de teclas que desencadena una acción o procedimiento. No deben confundirse con los eventos tratados en este capítulo. 10

Aprendiendo con Logo Gráfico – Antueno - Luppi Versión

Equipo

Actores * Y tamaño

Velocidad

Eventos

Intercambio de bitmaps

Colores en cada Forma

LOGO GRAFICO 4

PC

20 de 125x125

SI

13

I-E PCX-BMP

256

LOGO GRAFICO 2

PC

8 de 99x77

SI

13

I-E PCX

16

MICROMUNDOS

PC

16 de 40x40 **

NO***

-

I-E PCX

256

TI-LOGO II

TI-99

32 de 16x16

NO

NO

NO

1

WIN LOGO

PC

32 de 16x16

SI

NO

I PCX

1

LOGO WRITER

PC

4 de 16x16

NO

NO

NO

1

DREAN LOGO

Com64

8 de 16x16

NO

NO

NO

1

HAL LOGO

Com64

8 de 16x16

NO

NO

NO

1

COASIN LOGO

Com64

8 de 16x16

NO

NO

NO

1

EPI- LOGO

Spectrum

sin actores

-

-

NO

-

IBM PC LOGO

PC

sin actores

-

-

-

-

* ** *** I-E I-

Número de formas móviles (actores) y tamaño máximo dado en pixels. Ampliándola hasta 4 veces las originales. Pero se puede "construir". Importa y exporta bitmaps. Sólo importa bitmaps

El cuadro de más arriba ha sido ordenado de acuerdo a la capacidad de animación de cada una, la que - a nuestro criterio - está determinada por el número y tamaño de agentes móviles, la posibilidad de darles velocidad, la programación de eventos(3), la posibilidad de intercambiar bimaps(4) que sirven de escenografía y la facilidad de acceso a esos recursos. (3) Eventos: son condiciones que se indican quedando latentes hasta que se cumplen y entonces desencadenan una acción programada. Usada en los videojuegos. Papert en su famoso libro Desafío a la Mente los denomina CUANDO DUENDE (Cap. 4, pág. 129 en la versión castellana), aunque aún no había versiones de Logo con eventos. (4) Decorados: son pantallas realizadas con un graficador, scaneadas o digitalizadas.

§1.2 RECURSOS DE ANIMACION VERSIONES LOGO WRITER Y LOGO GRAFICO §1.2.1 VERSION LOGO GRAFICO En la versión LOGO GRAFICO se cuenta con 60 actores(*) que pueden dibujar o disfrazarse con 180 formas(*) (figuras) distintas a elección, con 16 o 256 colores cada una. Inicialmente sólo la tortuga es visible. Los actores se diferencian de la tortuga en que pueden tomar formas ya diseñadas o creadas por el usuario. Los actores están numerados del 1 al 60 y se activan -o se los llama- con las primitivas ACTIVAR o DECIR seguida del número de actor que queremos activar. Todas las primitivas pueden escribirse acentuadas o no, ó indistintamente con letras minúsculas o mayúsculas. Por ej.:

ACTIVAR 3 De ahora en adelante todas las órdenes que demos serán recibidas y ejecutadas por ese actor, hasta que activemos otro. 11

Aprendiendo con Logo Gráfico – Antueno - Luppi

Los actores se ubican en distintos planos, por lo que los que poseen números más altos al superponerse con otros ocultan a los que poseen un número más bajo y son ocultados por los que tienen números más altos (al revés de Logo Writer). En la figura de la derecha se ven con 3 naipes el ordenamiento para los actores de Logo Gráfico. Para disfrazar un actor con una forma prefijada, debemos utilizar la orden FFORMA que significa, y debe leerse como, "Fijar FORMA". (*) Varían según la versión de Logo Gráfico

Por ejemplo:

FFORMA 15 Debemos elegir un número de forma para poder ver un actor. Si a un actor no le decimos con qué forma debe disfrazarse lo hará con en número de forma por defecto (si es el 1, con la forma 1, así hasta el 3, el resto tomará 1 la forma 1) si no hubiera formas cargadas en memoria dará un mensaje de error. Al ingresar al Logo se cargan automáticamente las formas tomadas del archivo NORMAL (puede ser .FRM o .FRC, según la cantidad de colores con que esté configurados el Windows); que tiene también grillas libres para dibujar nuevas formas de distintos tamaños. El diseño de nuevas formas es muy fácil, ya que se realiza con el Mouse, eligiendo previamente los colores para dibujar. NOTA PARA EL DOCENTE: Es aconsejable que los alumnos trabajen primero con las figuras existentes, las coloren y las muevan, antes de ponerse a diseñar nuevas formas.

§1.2.2 VERSION LOGO WRITER© En la versión LOGO-WRITER© para PC compatibles, se cuenta con 4 tortugas que pueden disfrazarse con 90 formas (figuras) distintas. Inicialmente sólo la número 0 se encuentra visible, mientras que las otras 3 están escondidas (invisibles) y en los vértices imaginarios de un cuadrado de 40 pasos de lado. Las tortugas están numeradas del 0 al 3 y para dirigirnos a una de ellas lo hacemos con la orden DILE seguida del número deseado, es decir que si queremos "decirle" algo a la tortuga 3, escribimos (con letras minúsculas o mayúsculas):

DILE 3 De ahora en adelante todas las órdenes que demos serán "escuchadas" y ejecutadas por esa tortuga, hasta que le hablemos a otra tortuga ( con una nueva orden DILE ). Para disfrazar una tortuga con una forma, debemos elegir un número del 1 al 90. primeras de ellas vienen dibujadas, y el resto están libres para ser diseñadas por nosotros.

Las

Las tortugas se ubican en distintos planos, por lo que las de números más bajas tapan a las que poseen un número más alto. Esto podemos explicarlo como si estuvieran ordenadas como un mazo de naipes. La número 0 tapa a la 1, la 1 tapa a la 2 y la 2 a la 3. Para disfrazar una tortuga con una forma prefijada, debemos utilizar la orden "ffig" que debe leerse como, "fijar figura". Debemos elegir un número del 0 al 90, por ejemplo:

FFIG 26 12

Aprendiendo con Logo Gráfico – Antueno - Luppi

disfraza a la tortuga activa con forma de camión, ya que la figura 26 corresponde a ese disfraz.

§1.3 PROGRAMA DE PRESENTACION Siempre que queramos hacer aparecer un actor disfrazado en un lugar debemos hacerlo en un procedimiento, que cumpla exclusivamente con ese fin. Esto se logra "hablándole" al actor (LOGO GRAFICO) o a la tortuga deseada (orden 1), ordenándole que se disfrace con la figura elegida (orden 2), que se coloque en un lugar fijado por sus coordenadas cartesianas (orden 4) y que finalmente aparezca (orden 6). La orden 5 es optativa y estipula el color con que aparece (no existe en vers. LOGO GRAFICO). PARA LOGO GRAFICO

para camion activar 1 fforma 6 sp fx (-70) fy 30 visible fin

(1) (2) (3) (4) (6)

4 Puede reemplazarse por FPOS [-70 30] 6 Puede usarse también MT NOTA: A veces suele ocurrir que si la forma es muy grande y la elección del lugar está próximo al borde aparece el mensaje de FIGURA FUERA DE LA PANTALLA,. Esto ocurre ya que el punto de referencia es el centro de la forma, y si los bordes de la misma sobrepasan los extremos de la pantalla se produce este mensaje. Esto no ocurrirá si estamos en el modo LIBRE en vez de JAULA (que es el modo por omisión de los actores). En modo JAULA los actores no pueden salir de la pantalla, en modo LIBRE los acotres salen de la pantalla, ya que el entorno o mundo de la tortuga es mayor que en tamaño del monitor (en pasos de tortuga). Otra forma de trabajo es poner al Logo Gráfico en modo VUELTA, este modo de trabajo es similar al LogoWriter, ya que el actor sale por un lado de la pantalla y retorna por el otro. (Para más información remítase a la Ayuda de Logo Gráfico). En muchos caso puede convenir - para evitar el inconveniente mencionado - ubicar al actor antes de fijarle la forma, es decir intercambiar las órdenes (2) por la (4). También es importante que el tamaño de la grilla no sea excesivamente grande con respecto al tamaño real del actor dibujado. En las versiones 4.4 en adelante se puede usar la opción de menú - RECORTAR para eliminar las partes de la cuadrícula que sobren.

PARA LOGO WRITER:

para camion dile 1 ffig 26 sp fx -70 fy 30 fcolor 2 mt fin

(1) (2) (3) (4) (5) (6)

(1) se dirige a la tortuga 1 (2) se "disfraza" con la figura que corresponda. (3) permite ubicar inicialmente a una tortuga en cualquier lugar de la pantalla sin dejar rastro. (4) este par de órdenes la ubican en el lugar elegido al indicar sus coordenadas, y puede reemplazarse por FPOS [-70 30] (5) le fija el color 2. (6) permite verla, ya que todas salvo la número 0 están invisibles.

13

Aprendiendo con Logo Gráfico – Antueno - Luppi

DESAFIO ¿Te animas a colocar 4 actores disfrazados a tu gusto en distintos lugares de la pantalla? Deberán utilizarse 4 programas individuales. Nota: El maestro puede sugerir otros lugares distintos de los elegidos para observar si los alumnos comprenden el sentido de los signos de las "x" e "y", y para entrenarse en la estimación de las medidas de la pantalla. Se supone que este tema ya lo han trabajado con la geometría de la tortuga. Puede marcar las pantallas de los monitores con una fibra para pizarra blanca haciendo 4 ó 5 cruces para que los alumnos coloquen allí los actores.

DESAFIO ¿Podrías ubicar la Luna en la parte superior de la pantalla y un gato maullando en la inferior. Sugerencia: Dibujar con la tortuga el piso o un contorno simple de edificios. Usar los actores 1 y 2 para la Luna y el gato.

§1.4 ACTIVIDADES POSIBLES Es conveniente iniciarse en la tarea de animación manejando un solo actor, para luego, al dominar las técnicas necesarias de desplazamiento y de movimiento en su lugar (cambio de forma) podamos hacerlo con varios de ellos. Podemos ensayar de hacer una enumeración de actividades que es posible encarar, aunque no tratemos todas éstas en este capítulo. A) Trabajando con un actor solo. a1- Desplazarlo en línea recta (§1.6). a2- Cambiarle de disfraz sin desplazarse (§1.7 y §1.12). a3- Cambiarle de disfraz y desplazarlo en línea recta (§1.8). a4- Desplazarlo con movimientos no rectilíneos(§1.9, §1.10 y §1.11). a5- Cambiarle de disfraz y moverlo no rectilíneamente (§1.13). B) Trabajando con más de un actor: b1- 2 o más actores con desplazamientos simultáneos(§1.14). b2- Personaje formado por dos actores unidos Este artificio no resulta necesario en la versión LOGO GRAFICO ya que las formas son mucho más grandes, pero en otras versiones la única manera de obtener formas grandes y de más de un color en la misma forma es utilizar varios actores, uno para cada parte del cuerpo. Por ejemplo, un actor para la cabeza, otro para el tronco y brazos, y otro para las piernas. -

Presentar un personaje formado por 2 partes (2 actores). Desplazar el personaje. Cambiar de disfraz a una de sus partes sin desplazamiento. Cambiar de disfraz a una de sus partes con desplazamiento. Cambiar de disfraz a sus 2 partes sin desplazamiento. Cambiar de disfraz a sus 2 partes con desplazamiento. C) Otras situaciones:

- Dividir una forma en varias. - Ocultar progresivamente a una forma.

§ 1.5 UNA PRIMITIVA PARA FIJAR EL RUMBO 14

Aprendiendo con Logo Gráfico – Antueno - Luppi

Los rumbos se definen como los puntos cardinales, y se estipula que el que mira hacia el Norte (hacia arriba de la pantalla) es el rumbo 0 (cero). A partir de esa dirección los otros serán los que se aprecia en el dibujo. A diferencia de los giros a derecha e izquierda, al fijar un rumbo no necesitamos tener en cuenta hacia adonde está apuntando originalmente la tortuga sino sólo hacia dónde queremos que apunte. Por eso se dice que la primitiva FRUMBO es absoluta mientras que DERECHA e IZQUIERDA son relativas. Es de hacer notar que cuando un actor disfrazado cambia de orientación (rumbo) su forma permanece inalterable y sin cambio, ya que el rumbo es inherente al actor pero no al disfraz. En las versiones 4.3 en adelante de LOGO GRAFICO es posible asignar varias formas a un actor con lo que al cambiar el rumbo éste podría parecer que rota (ver manual).

§ 1.6 MOVIENDO EL CAMION Si queremos que el actor (o la tortuga en LogoWriter) disfrazado se mueva desde un lugar a otro prefijado -por ejemplo distante 200 pasos- podemos hacerlo de dos maneras: La primera, que llamaremos "paso a paso" consiste en moverlo de a un paso repetidas veces, para lo que hacemos el siguiente procedimiento:

VERSION LOGO GRAFICO

para camion activar 1 fforma 2 frumbo 90 repetir 20 [adelante 1] fin

(7) (8) (9) (10)

(7) o su sinónimo DECIR 1, activa al actor 1. (8) Puedes buscar una forma de actor que se pueda utilizar para el ejemplo, si no la hubiera dibújala. Puedes encontrar camiones en el archivo MOVILES.FRM. (8) Fijamos el rumbo del actor (9) Admite REPITE como variante.

VERSION LOGO WRITER©

para andar dile 1 frumbo 90 repite 200 [adelante 1] fin

15

Aprendiendo con Logo Gráfico – Antueno - Luppi

DESAFIO ¿Por qué no lo movemos con adelante 200? ¿Cuál es la diferencia?

EXPLICACION (7) si trabajamos con un solo actor, esta orden no sería necesaria, pero conviene acostumbrarse a hacerlo pues al usar varios actores debemos activar al que queremos decirle algo. (8) La apuntamos hacia la derecha de la pantalla. Ver nota al pie (**) (9) El movimiento de 200 pasos aparece como algo continuo.

DESAFIO ¿Cómo lo moverás más rápido la misma distancia? ¿Y más despacio? Ayuda: puede intercalarse una orden de ESPERAR 5.

§ 1.7 HACIENDO EJERCICIOS Si un actor alterna dos disfraces que representen posiciones distintas de un mismo personaje se producirá una sensación de movimiento similar al que se logra al proyectar las imágenes de una película (ver § 1.1) Podemos ensayar este efecto - por ejemplo - con un monigote que hace flexiones de brazos. Disfracemos, por ejemplo, al actor 2 de gimnasta en posición de hacer flexiones en LOGO GRAFICO.

para gimnasta activar 2 fforma 10 sp centro mt fin Y para que cambie de disfraz cada medio segundo:

para flexión activar 2 fforma 11 esperar 50 fforma 10 esperar 50 fin

(10)

(11)

Y para lograr, por ejemplo, 20 flexiones:

para flexiones repetir 20 [flexión] fin

16

Aprendiendo con Logo Gráfico – Antueno - Luppi (10) Cuidado con los acentos pues, no es lo mismo el procedimiento "flexión" que "flexion". (11) EN LOGO GRAFICO, como ya dijimos, 100 unidades de tiempo equivalen a 1 segundo, por lo que "espera 50" corresponde a medio segundo.

Estas pausas luego de cada cambio de disfraz son necesarias siempre para darle el ritmo de movimiento adecuado. A continuación y a modo de ejemplo se detallan distintas situaciones con sus pausas aproximadas, calculadas por alumnos.

SITUACION HELICE DE HELICOPTERO GIRANDO HOMBRE CORRIENDO HOMBRE CAMINANDO RANA SALTANDO FLEXIONES ESQUIADOR COMPITIENDO ESQUIADOR PASEANDO

PAUSA 5 a 10 15 15 a 30 45 50 60 85

PROPUESTA Dibuja algunas formas o utiliza las que están en las formas provistas y desarrolla procedimientos: a) Haciendo gimnasia b) Levantando pesas c) Cara triste y sonriente. d) PacMan gesticulando e) Guiñando un ojo f) Cara sacando la lengua g) Humanoide saludando h) Personaje moviendo un pie

§ 1.8 LOS PRIMEROS PASOS Si queremos que nuestros personajes empiecen a caminar debemos, además de alternar sus disfraces, desplazarlos en la dirección y sentido deseados. La magnitud del desplazamiento debe ser acorde con el tamaño del personaje y de la velocidad que le queramos imprimir. Por ejemplo, un hombrecito como el que podemos diseñar 17

Aprendiendo con Logo Gráfico – Antueno - Luppi

en una retícula de 90 x 30 (ver figura más abajo) pixels(*) desplazamientos sean mayores a 12 unidades. (*) Pixel es la denominación de cada uno de los puntos que componen la imagen en una pantalla. Viene del inglés PICTURE CELS que significa "celdas de imagen". Nota para docentes: Es conveniente que para dibujar estas retículas el maestro o profesor haga dramatizar en cámara lenta esta acción de dar un paso a un alumno o hacerlo él mismo, para hacer notar que la retícula con las piernas juntas no corresponde a un hombre quieto sino al momento en que sus piernas se cruzan. Esta sucesión de sólo 2 posiciones es una simplificación de un movimiento que para lograrlo bien necesitaría entre 12 y 24 posiciones distintas para un paso tipo que dura 1 segundo (una imagen por cada 24avo de segundo, según lo visto en 1.1) Este cálculo es teórico, en la práctica -como las formas son pequeñas, y esto influye en el resultado visual- es raro que se hagan más de 3 ó 4 formas para una secuencia dada.

Una vez diseñadas las dos retículas necesarias (hacerlo por ejemplo en las formas 40 y 41) un procedimiento para lograr un desplazamiento podría ser:

VERSION LOGO GRAFICO

para camina fforma 40 esperar 30 fforma 41 esperar 30 adelante 15 fin VERSION LOGOWRITER

PARA CAMINA FFIG 45 ESPERA 5 FFIG 46 ESPERA 5 ADELANTE 10 FIN Se sugiere al lector compararlo con el procedimiento flexion del 1.7. Este efecto se podría mejorar tratando de que la orden del desplazamiento ADELANTE 12 la desdoblemos en dos ADELANTE 6 o inclusive en este caso puede aumentarse a un valor ADELANTE 8, que los pondremos asociados con cada cambio de figura. Por lo que los programas quedarán así:

VERSION LOGO GRAFICO

para camina fforma 40 esperar 30 adelante 8 fforma 41 esperar 30 adelante 8 fin VERSION LOGOWRITER

18

Aprendiendo con Logo Gráfico – Antueno - Luppi

PARA CAMINA FFIG 45 ESPERA 5 ADELANTE 8 FFIG 46 ESPERA 5 ADELANTE 8 FIN Y para que nuestro personaje, que podría ser el actor (o la tortuga número 2) , camine un total de 80 pasos tendrá que repetir 10 veces los 8 pasos que da, o sea:

VERSION LOGO GRAFICO

para caminar activar 2 sp frumbo 90 repetir 10 [camina] fin VERSION LOGOWRITER

PARA CAMINAR DILE 2 SP FRUMBO 90 REPITE 10 [CAMINA] FIN DESAFIO ¿Cómo harías para hacer caminar a un perro? Diseña primero las 2 retículas.

DESAFIO ¿Qué pasa si cambias el valor del tiempo entre cambios de disfraz a la mitad o al doble?

§1.9 CONDUCIENDO POR LAS CALLES... A LOS SALTOS

Si queremos producir un desplazamiento no rectilíneo sólo debemos modificar el método ya visto en 1.6.1 pensando en el dibujo que haría la tortuga si estuviera con la pluma. Por ejemplo, para desplazarse "a los saltos" podemos ensayar el siguiente camino (ver Figura más abajo) que va desde A hasta K, que si lo analizamos descubriremos que lo podemos pensar como el módulo AB que se repite 10 veces. 19

Aprendiendo con Logo Gráfico – Antueno - Luppi

para salto adelante 4 derecha 90 adelante 4 derecha 90 adelante 4 izquierda 90 adelante 4 izquierda 90 fin para saltos frumbo 0 (*) repetir 10 [salto] fin (*) Nos aseguramos que salga hacia arriba.

Siempre conviene verificar previamente los módulos del camino graficando con la pluma del actor y luego aplicarla al desplazamiento deseado.

Tendremos que presentar al auto con el procedimiento auto y el superprocedimiento que hace todo será entonces:

para auto decir 1 fforma 6 sp fpos [-130 0] visible fin para todo auto saltos fin DESAFIO ¿Te animarías a reproducir otros saltos como estos? Ayuda: Primero módulos a repetir.

se

debe

identificar

los

20

Aprendiendo con Logo Gráfico – Antueno - Luppi

DESAFIO Quieres crear otros caminos divertidos y un auto para recorrerlos? Desarrolla los procedimientos necesarios.

§1.10 MOVIENDOSE CIRCULARMENTE Los trazados y movimientos curvos, particularmente los circulares, nos ofrecen muchas posibilidades, tanto en función de creatividad como en el conocimiento más profundo de la geometría... Para describir una órbita circular necesitamos una sucesión de avances y giros como los del procedimiento siguiente:

para orbita repetir 180 [adelante 1 derecha 2] fin Nota para docentes: Suponemos que este tema ya fue trabajado con anterioridad en el modo gráfico, así como los conceptos que corresponden a semicircunferencias y cuartos de circunferencias. Se puede demostrar que la relación entre lo que gira y lo que avanza determina la forma de la trayectoria. O sea que, si giro 2 grados y avanzo 1 paso, o bien, si giro 4 grados y avanzo 2 pasos, o si giro 6 grados y avanzo 3 pasos, como la relación (cociente) entre giro y desplazamiento es en todos estos casos 2/1=4/2=6/3 igual a 2, entonces la forma de la curva (aproximada a arco de circunferencia) será siempre igual.

Distintas velocidades para las órbitas se obtendrán con:

repetir 90 [adelante 2 derecha 4] (duplica velocidad)

repetir 60 [adelante 3 derecha 6] (triplica velocidad)

repetir 45 [adelante 4 derecha 8] (cuadruplica velocidad)

Para que en todos los casos gire una vuelta completa, buscamos de repetir una cantidad de veces adecuadas para que el producto de ese número y el giro resulte igual a 360. El perímetro se obtendría multiplicando el número de veces que repite por el avance de cada vez, o sea 180 x 1 = 90 x 2 = 60 x 3, etc. Se pide al lector comprobar que la trayectoria no cambia. Para disminuir la velocidad con que gira se puede intercalar una orden de esperar 1, esperar 2, esperar 5, etc. dentro de cada orden de repetir, o sea:

repetir 180 [adelante 1 derecha 2 esperar 2]

§1.11 PASEANDO CON EL CANGURO Si queremos que un canguro (forma 1 del archivo CANGURO.FRM) se desplace saltando necesitamos un módulo - además del programa de presentación - que realice un movimiento de semicircunferencia, es decir:

21

Aprendiendo con Logo Gráfico – Antueno - Luppi

para salto frumbo 0 repetir 10 [ad 1 de 18] fin para cincosaltos repetir 5 [salto] fin

Nota: Puede comprobarse que para que se mueva saltando sobre una misma horizontal, debe agregarse una orden adelante 2 luego de cada salto, con lo que la línea quedaría: repetir 5 [salto ad 2].

§1.12 ROTACION DE FORMAS Para que una forma, como por ejemplo las aspas de un molino, roten uniformemente, hacemos por lo menos 3 formas procediendo así: 1. Entramos en el editor de formas 2. Elegimos la opción "Borrar todas". Sin miedo, el archivo NORMAL.FRC, donde están guardadas todas las formas que vienen con el LOGO no se borrarán. En la zona de la izquierda se ven todas las formas con la indicación NO DEFINIDA. 3. Elegimos la forma 1 y hacemos doble clic en "1 NO DEFINIDA" (o bien pulsamos el botón de Editar). 4. Elegimos 34 para el valor horizontal y vertical. 5. Dibujamos una cruz que serán las aspas del molino. 6. Salimos del editor con Archivo - Salir y a la pregunta "LA FORMA FUE MODIFICADA. CONSERVAR LOS CAMBIOS? Elegir Sí. Tener en cuenta que por ahora la computadora conserva esta forma en su memoria, aún no la hemos guardado en el disco. 7. Pulsar el botón COPIAR y luego eligiendo la forma 2 (que dice NO DEFINIDA) pulsamos el botón PEGAR con lo que las aspas se han copiado en la forma 2. 8. Ahora tenemos que girarlas, entonces en el menú Corrimientos y Giros, buscamos Rotar Bloque, y ponemos 30. Salimos como en el punto 6. 9. Vamos a la forma 3 y ponemos PEGAR nuevamente con lo que tenemos otras aspas como las de la forma original (sin rotar). Editamos y giramos ahora 60 grados y salimos. 10. Luego dibujamos el molino en la forma 4. Y no olvidemos guardar en el disco RÍGIDO con el nombre MOLINO.FRC. Si trabajamos con Windows en 16 colores guardaremos con MOLINO.FRM. Puede consultarse en el disquete los archivos MOLINO.LGO y MOLINO.FRM. En la figura vemos las formas 1 a 4.

22

Aprendiendo con Logo Gráfico – Antueno - Luppi

Los procedimientos necesarios son:

para moli decir 1 fforma 4 centro mt decir 2 fforma 1 fxy 0 14 mt fin para gira1 decir 2 fforma 2 esperar 5 fforma 3 esperar 5 fforma 1 esperar 5 fin para girando repetir 30 [gira1 ] fin para molino rg ot fcolorf 0 moli girando fin Otro ejemplo: Igual se puede proceder con cualquier forma que rote sobre su eje, como el caso de las viejas peluquerías con sus columnas giratorias, para lo que debemos construir tres formas como las de la figura y alternarlas con un ESPERAR 5 o 10 entre cada una, como hemos visto recién. En la figura vemos las formas 1 a 3 del archivo PELUQUE.FRM

§1.13 ANDANDO EN HELICOPTERO Cuando se trata de una forma que debe trasladarse y cambiar, debemos

para heli decir 1 fxy (-50) (-27) fforma 1 23

Aprendiendo con Logo Gráfico – Antueno - Luppi

mt frumbo 0 fin para helice1 decir 1 fforma 1 tono fforma 2 tono fforma 3 tono fforma 2 tono fin

60 60 60 60

2 2 2 2

ad ad ad ad

2 2 2 2

En este procedimiento estamos introduciendo la primitiva TONO que hace sonar una nota de la frecuencia indicada por el número que la sigue (60) con una duración de 2 centésimos de segundo. Además cada cambio de forma lo movemos con ADELANTE 2 En las formas 1 , 2 y 3 dibujamos un helicóptero con sus aspas giradas como las que están en el archivo HELICOP.FRM.

para volar repetir 15 [helice1 ] fin para helicoptero rg ot fcf 0 heli volar frumbo 90 volar fin

§1.14 MOVIMIENTOS DE 2 ACTORES SIMULTÁNEOS Para lograrlo se presentan dos actores y luego para moverlos o desplazarlos nos dirigimos a cada uno de ellos alternadamente como se ve en el procedimiento paso.

para soldado decir 1 fforma 35 fx (-70) fy (-6) visible frumbo 90 fin para paso decir 1 fforma 35 ad 4 decir 2 fforma 38

esperar 10 esperar 10 24

Aprendiendo con Logo Gráfico – Antueno - Luppi

decir 1 fforma 36 ad 4 decir 2 fforma 39 fin

esperar 10 esperar 10

Las formas se han tomado del archivo NORMAL.FRM. pero si trabaja con 256 o más colores puede cargar el archivo de formas SOLDADO.FRC (o .FRM) y tomar de allí los personajes. Al actor 1 lo desplazamos y el actor 2 solamente se mueve en su lugar.

para soldado2 decir 2 fforma 38 fx 110 fy (-6) visible fin para accion decir 1 repetir 20 [paso ] fin

§1.15 EJEMPLO DE UN PROGRAMA DE ANIMACION SECUENCIAL El programa del archivo SOLDADO.LGO sirve de muestra de cómo trabajar un argumento simple como el siguiente: un soldado se encuentra en un puesto de guardia caminando, hasta que aparece su jefe y le pide que le sirva un mate. El soldado va a buscarlo y vuelve con la pava y el mate. Luego se lo entrega y el jefe toma el mate. El soldado se aleja y se sienta. Es interesante notar que para caminar se utilizan los procedimientos caminar y caminar3 para hacia la izquierda y caminar2 para ir hacia la derecha. Nótese que el caminar3 sólo difiere del caminar en que lleva el mate en la mano. El uso de una variable :n (que representa la cantidad de pasos) en los procedimientos antes citados, facilitan la depuración del programa.

para caminar3 :n decir 1 fangulo 180 repetir :n [paso3 ] fin

(*)

(*)Es similar a frumbo 270

En general los procedimientos de este ejemplo hacen buen uso de la modularidad ya que cada uno de ellos representa una acción bien definida. En estos casos es posible crear una nueva escena con facilidad. Podemos cargar y definir los archivos de formas y de procedimientos SOLDADO.FRM y SOLDADO.LGO y luego probar:

rg soldado caminar 4 jefe saludo caminar 2 saludo jefe saludo caminar3 2 saludo 25

Aprendiendo con Logo Gráfico – Antueno - Luppi

CAPITULO 2

USO DE VARIABLES Este Capítulo no trata de ser una explicación sistemática y exhaustiva del tema variables, sino un primer acercamiento al mismo que permitirá al lector su uso en situaciones variadas.

§ 2.1. PROCEDIMIENTOS CON ARGUMENTO Para crear un procedimiento utilizamos la palabra PARA seguida de un nombre. Por ejemplo:

para escalera (*) repetir 12 [ad 8 de 90 ad 8 iz 90] fin o bien:

para sonidos repetir 10 [tono 200 20 fin

tono 500 25]

(**)

(* ) Esta palabra PARA es adoptada como idea de PARA QUE APRENDA LA PALABRA escalera., o PARA ENSEÑARLE LA PALABRA escalera. (** ) TONO toca un sonido de frecuencia = 500 y duración 25 centésimas de seg.

Pero si en el procedimiento sonidos necesitamos ir cambiando alguno o algunos de los valores numéricos de las primitivas que figuran en él, por ejemplo, el número del repetir, resultaría muy tedioso cambiar ese número 10 por 15, luego por 20, y así continuar, generando para cada cambio un nuevo procedimiento. Al cambiar el 10 por 20, el procedimiento quedaría:

para sonidos repetir 15 [tono 200 20 fin

tono 500 25]

Para un caso como éste resulta conveniente tener una forma de indicarle al procedimiento que deseo cambiar ese número en el repetir (llamémoslo por ej. veces) por distintos valores. Para eso se escribe el procedimiento así:

para sonidos :veces repetir :veces [ tono 200 20 tono 500 25] fin siendo :veces el llamado argumento (o variable local) del procedimiento. Para indicarle al procedimiento que veces es una variable le ponemos pegado a la primera letra el signo " : ". Para que el procedimiento funcione es necesario éste encuentre dentro del mismo en qué lugar debe reemplazarse el valor que le asignamos a :veces; por ello después del repetir escribimos el nombre de la variable (:veces). Nótese que el nombre (que elegimos nosotros) podría ser cualquiera, por ejemplo :v , :n, etc. Si lo llamáramos :n quedaría: 26

Aprendiendo con Logo Gráfico – Antueno - Luppi

para sonidos :n repetir :n [ tono 200 20 tono 500 25] fin IMPORTANTE: Como las variables tienen un nombre cualquiera - al igual que los procedimientos - se indican precediéndolas de dos puntos (pegados a la primer letra) para identificarlas. Luego veremos en el parágrafo 2.3 que hay otro tipo de variables. También a diferencia de otras versiones de LOGO, Logo Gráfico diferencia mayúsculas y minúsculas en los nombres de las variables .

Finalmente, para ejecutar el procedimiento debo asignarle un valor a la variable, por lo que queda:

sonidos 8 sonidos 12 sonidos 3 que es la manera de asignarle el valor 8, 12 o 3 a la variable :n ( o :veces). Ahora el procedimiento ejecutará las órdenes:

repetir 8 [ tono 200 20 tono 500 25] repetir 12 [ tono 200 20 tono 500 25] repetir 3 [ tono 200 20 tono 500 25] respectivamente. De esta manera evitamos tener que repetir un procedimiento muchas veces por la variación de un solo valor.

§ 2.2. PROCEDIMIENTOS CON ARGUMENTO COMPUESTO El caso recién visto, se denomina con argumento simple, pues hemos necesitado una sola variable, pero puede ocurrir que sea necesario tener más de un valor que sea variable. Como ejemplo, veamos el caso de dibujar una escalera con un procedimiento escalera, como el del parágrafo anterior. Si queremos variar no sólo el número de escalones (12) sino también el 8 que representa el tamaño (alto y ancho) de cada escalón, o sea:

para escalera :num :tam repetir :num [ad :tam de 90 ad :tam iz 90] fin Para ejecutar este procedimiento debemos escribir después del nombre los dos valores de las variables definidas, en el orden que van y separadas de un espacio en blanco. Por ejemplo:

escalera 4 15

(1)

(1) 4 es el número de escalones y 15 el tamaño del escalón Nota: Es importante no alterar el orden de los valores. Si primero está definida la variable que cambia el número de repetir, cuando ejecutamos el procedimiento debemos poner como primer argumento ese valor. También es importante no olvidar asignarle a cada variable o argumento definido su valor.

PREGUNTA: Resultarán escaleras que cubrirán el mismo tramo los casos 1, 2 y 3? Caso 1: escalera 10 10 Caso 2 : escalera 20 5 Caso 3: escalera 4 25 27

Aprendiendo con Logo Gráfico – Antueno - Luppi

DESAFIO Cómo hacemos un procedimiento escalera2 que haga escaleras con el ancho del escalón distinto del alto y con distintas cantidades de escalones. ¿Cuántas variables usaremos?

DESAFIO Cómo haríamos para lograr repeticiones de sonido (tono) de diferentes alturas y duraciones? Cuántas variables puede tener el procedimiento sonidos? (ver archivo VARIABLS.LGO).

DESAFIO Sabiendo que con la primitiva HORA se obtienen la hora minutos y segundos (probarlo) y con ROTULARC seguido de una palabra la tortuga la escribe en la pantalla gráfica, podemos probar de hacer:

rotularc hora Como esta primitiva escribe en el sentido en que apunta la tortuga debemos hacerla mirar primero hacia la derecha con la orden de FRUMBO 90 (fija el rumbo hacia la derecha). ¿Cómo hacer un procedimiento con una variable que haga rotular una cantidad de veces cualquiera un reloj digital? . (respuesta en el archivo VARIABLS.LGO). Ver también los procedimientos CUADRADO, PALOTES, CIRCUNF, POLI del archivo VARIABLS.LGO

§2.3. VARIABLES GLOBALES Las variables como las que hemos visto en los ejemplos anteriores adoptan valores válidos sólo para esos procedimientos. Justamente por eso son llamadas "variables locales". Son valederas dentro del procedimiento donde se definen y luego desaparecen, no quedan en memoria. Existen otras llamadas globales, que resultan muy útiles, una vez creadas permanecen en memoria y pueden ser utilizadas y/o modificadas por cualquier procedimiento. Estas variables se definen con la primitiva HACER (o su sinónimo ASIGNA ) que son las primitivas que permiten definir y asignarle un valor a una variable. Estos valores pueden ser palabras, números, listas de palabras o números, etc. Las usamos como "pequeños depósitos" en los que se guarda información. En este libro usaremos la primitiva HACER, pero ambas funcionan igual. Para definir una variable se procede así:

hacer "veces 5 (Se le asigna a la variable que llamamos "veces el valor 5)

Notar que para definir una variable NO usamos los dos puntos (:) sino que se escribe con comillas ( " ) pegadas a la primera letra, y estas comillas no se cierran. También puede usarse una comilla ( ' ). Esto indica que la variable se llamará veces y su valor será 5. De esta manera la variable "veces permanece en la memoria y puede ser usada por cualquier procedimiento. 28

Aprendiendo con Logo Gráfico – Antueno - Luppi

Si deseamos saber el valor o contenido de una variable escribimos:

esc :veces 5 Aquí va con dos puntos (:) ya que estamos preguntando por su valor o contenido, y no definiéndola con un nombre. Puede ponerse esc valor "veces, ya que VALOR es otra primitiva, pero esta notación es poco usada. Otro caso sería asignarle a una variable el valor o contenido de otra o de sí misma, por ejemplo:

hacer "CARLOS 8 hacer "veces :CARLOS esc :veces 8 Primero creamos una variable llamada "CARLOS y le damos valor 8. Luego a la variable "veces le damos el valor o contenido de la variable "CARLOS. Finalmente pedimos ver en pantalla el valor de la variable "veces. Las variables globales se pueden usar para múltiples propósitos, por ejemplo para guardar información numérica o textual, hacer contadores y acumuladores (ver parágrafos 4 y 5), llevar información de un procedimiento a otro, etc. Por ejemplo:

hacer hacer hacer hacer hacer hacer

"vocales [ a e i o u] (1) "notas [ DO RE MI FA SOL LA SI] (2) "capitales [ LIMA BRASILIA QUITO SANTIAGO CARACAS]; "colores [ azul verde rojo] "x 1 (3) "nombre "Roberto (4)

En los 4 primeros ejemplos estamos guardando información en una lista que quedará en la memoria para consultarla cuando sea necesario. En los dos últimos casos estamos guardando o asignándole a las variables creadas - un número y una palabra respectivamente. (1) Está asignándole a la variable :vocales una lista con las 5 vocales. (2) Está guardando en la variable :notas los nombres de las 7 notas musicales. (3) Guarda en la variable :x el valor 1. (4) Guarda en la variable :nombre la palabra "Roberto. Notemos que como es una palabra se precede con comillas (Ver Capítulo 3) En el caso (3) es indistinto poner las comillas o no ponerlas, pues es un número.

§2.4. ¿COMO SE USAN LOS CONTADORES? Los contadores son variables que sirven para contar la cantidad de veces que ocurre algo, que se ejecuta un procedimiento, que se acierta un número, etc. Podríamos necesitar un contador que guarde en la memoria una variable, que indique cuántas veces se ejecutó un procedimiento. Para ello será necesario, primero definir la variable en donde guardamos la información. Entonces quedaría:

hacer "num 0 Le asignamos a la variable de nombre "num el valor 0. Seguidamente haremos un procedimiento sencillo donde veremos como se usa un contador 29

Aprendiendo con Logo Gráfico – Antueno - Luppi

para ganarpuntos esc [GANASTE UN PUNTO MÁS] hacer "num :num + 1 esc :num fin

(1) (2) (3)

(1) Se escribe en pantalla de texto el mensaje: GANASTE UN PUNTO MÁS. (2) Le asignamos a la variable "num el valor de esa misma variable :num más una unidad. De esta manera la variable suma al valor que tenía una unidad. (3) Escribimos el nuevo valor de la variable "num.

Si no quedó claro probemos en modo directo este otro ejemplo:

hacer "puntos 4 esc :puntos 4 hacer "puntos esc :puntos 9

:puntos + 5

EJERCICIOS Otro uso de las variables podría se el de definir 2 variables con al alto y ancho de un rectángulo y una tercera con el área del mismo:

hacer "ALTO 5 hacer "ANCHO 6 hacer "ÁREA :ALTO * :ANCHO esc :ÁREA 30

§ 2.5 QUE ES UN ACUMULADOR? Es muy parecido a un contador, pero en vez de irle sumando 1, le vamos sumando un valor cualquiera, o sea que el acumulador va guardando la suma parcial obtenida en cada momento. Se usa cuando tenemos procedimientos o primitivas que generan distintos valores que queremos ir sumando, por ejemplo si cada vez que uno gana a un juego se le suman 100 puntos, será:

hacer "suma :suma + 100 En el archivo ACUMULAD.LGO (en el disquete) hay un ejemplo con el uso de acumuladores en un juego de azar.

30

Aprendiendo con Logo Gráfico – Antueno - Luppi

CAPITULO 3

INTRODUCCION AL USO DE LISTAS Y PALABRAS Aparte de las enormes capacidades gráficas del lenguaje LOGO, éste puede usarse con mayor ductilidad que muchos otros lenguajes para el manejo de palabras y de información no numérica, ya que es un lenguaje derivado del famoso LISP (List Processor = procesador de listas) que fue creado, al igual que LOGO, en el Laboratorio de Inteligencia Artificial del Instituto Tecnológico de Massachusetts. Es posible, por lo tanto, la elaboración de programas de relativa sencillez para incursionar en el uso de la computadora en temas no vinculados a la geometría ni a la matemática. Resulta entonces muy útil el conocimiento del tema Listas y Palabras, ya que es ésta la forma en que accederemos a la mayor potencia que nos brinda el lenguaje LOGO y descubriremos la inmensas posibilidades de su uso en todos los niveles del sistema educativo. Los elementos que LOGO maneja son llamados "objetos-LOGO", y pueden ser palabras o listas..

§ 3.1. PALABRAS Para LOGO, una palabra "es un conjunto ordenado de caracteres cualesquiera, que no incluyan el espacio en blanco", el que es usado, como en nuestra lengua, para separar palabras. Este primer hecho lo diferencia de otros lenguajes que no poseen el reconocimiento automático del "espacio", y una frase cualquiera en otro lenguaje, representa para ellos, una entidad única ("cadena" de caracteres donde los espacios son considerados como un carácter más) y no palabras separadas por espacios. Esto hace que esos lenguajes sean menos adecuados para la manipulación de lenguaje natural. Una palabra puede estar integrada no sólo por letras del abecedario sino por cualquier carácter como por ejemplo: 4

6

7

b

c

f

G

y

%

$

#

@

!

? , ñ á ó etc.

Nota: No se admiten como caracteres que formen una palabra los corchetes, paréntesis o símbolos matemáticos.

Cuando, en la definición de "palabra", dijimos que era un conjunto ordenado, es porque para LOGO no es lo mismo la palabra SACO que COSA, pues aunque tengan los mismos caracteres, difieren en su "orden". Como caso especial debemos considerar los números, que también entran en la categoría de palabras, aunque ya veremos luego que LOGO las puede distinguir fácilmente.

31

Aprendiendo con Logo Gráfico – Antueno - Luppi

La palabras deben precederse de comillas ("), por ejemplo, para escribir en la pantalla la palabra APRENDIZAJE, ordenamos:

escribir

"APRENDIZAJE

Las comillas en general - en Logo - no se cierran, pero en esta versión es indistinto cerrarlas o no, o también usar comilla simple. Existe una palabra muy especial que -al igual que un conjunto vacío- no tiene elementos, y es llamada palabra vacía. También puede indicarse con comillas ( " ) o abrir y cerrar comillas dejando o no un espacio blanco (" "). Probar:

escribir

"

o bien:

escribir

""

§ 3.2. LISTAS Una lista es un conjunto ordenado de objetos-LOGO, ya sean palabras u otras listas(*). Al escribir una lista se lo hace con sus elementos separados por espacios, y todo encerrado entre dos corchetes. (*)NOTA: Para el lector conocedor de la teoría de conjuntos: este último caso sería como conjuntos que tienen dentro a otros conjuntos llamados subconjuntos. Aunque la diferencia con los conjuntos es que aquellos no pueden contener elementos repetidos y en cambio las listas si pueden.

Son ejemplos de listas:

a) b) c) d) e)

[ 1 2 3 4 5] [UNA TEORIA DE EDUCACION] [¡ Cierra la puerta !] [[perro negro] [gato malo] [osa blanca]] [[JOSE 8] [ANA 3] [LUIS 4] [JUAN 7]]

Para LOGO las tres primeras (a, b y c) son listas de palabras, mientras que las últimas dos (d y e) son listas que contienen otras listas (estas últimas llamadas subsistas). Nótese que el ejemplo c) tiene 5 palabras que incluyen los signos de admiración. Existe también la lista vacía [ ] que es una lista que no tiene elementos. Para trabajar con ellas en la computadora podemos tipear:

mostrar [1 2 3 4 5] [1 2 3 4 5] o bien:

escribir [1 2 3 4 5] 1 2 3 4 5

32

Aprendiendo con Logo Gráfico – Antueno - Luppi

Veremos que en el segundo caso no se ven los corchetes en la pantalla, mientras que en el primero, sí. La primitiva MOSTRAR sirve para mostrar en pantalla los corchetes y distinguir en algunos casos confusos, por ejemplo el caso de una lista de un solo elemento, si el objeto-LOGO que estamos tratando es lista o palabra. También podemos utilizar las primitivas LISTA? o PALABRA? que nos devuelven si es una lista o una palabra. Saber trabajar con Palabras y Listas significa saber como modificarlas, recorrerlas, buscar un elemento en ellas, acortarlas, unirlas a otras, etc., para ello necesitamos conocer algunas primitivas más.

§ 3.3. PRIMERO Y ULTIMO Si de una palabra o lista queremos tomar solamente el primer elemento usaremos(*):

primero [LOGO GRAFICO]



y obtendremos en la pantalla:

LOGO (*)En primitivas que son funciones, o sea que devuelven un valor (por ejemplo: primero, ultimo, rumbo, ponerprimero, etc.), o cuando consultamos el valor de una variable (por ejemplo :var) NO es necesario anteponer la primitiva escribir o mostrar, ya que es una característica de LOGO GRAFICO que responde con el valor de la función ejecutada, sin dar ningún mensaje de error. Por lo que en los ejemplos no estarán antepuestas las primitiva esc o mostrar.

en cambio si ordenamos:

ultimo [LOGO GRAFICO]



obtenemos:

GRAFICO Probemos que ocurre con:

a) b) c) d)

pri "TORTUGA ult 12340 primero [¡ HOLA ! ] ultimo [ [ a b c] [ 1 2 3 ] ]

Podemos probar con primero y ultimo con los casos a, b, c, d, y e del parágrafo anterior. Nótese que estamos usando los apócopes de primero (pri) y ultimo (ult). Primero y ultimo - al igual que la primitivas que se ven en el parágrafo siguiente son funciones ( en Logo Writer son llamadas reporteros)

§ 3.4. MENOSPRIMERO Y MENOSULTIMO Si queremos eliminar el primero o el último elemento de una palabra o lista usaremos las primitivas menosprimero y menosultimo. Se abrevian con mp y mu. Por ejemplo con: 33

Aprendiendo con Logo Gráfico – Antueno - Luppi

menosprimero [ 1 2 3]



se obtiene:

2 Como dijimos antes, si deseamos visualizar los corchetes podemos usar la primitiva mostrar en vez de escribir, entonces escribamos:

mostrar menosprimero [1 2 3]



se obtiene:

[ 2 3] Se pueden usar su abreviaturas que son mp y mu respectivamente. Se sugiere probar o anticipar que ocurrirá con:

a) b) c) d) e) f) g) h) i)

mu "CALA mp "CALA mostrar mp mp [ a e i o u ] mu mp [EL ERROR ES FUENTE DE APRENDIZAJE] mp mp mp [ a e i o u] mp mp mu [ [ a 1] [ b 2] [ c 3] ] mp mp [ 1 2] mp 123 (*) mp mu 123 (*)

(*) Los valores numéricos pueden o no llevar antepuestas las comillas.

Para obtener el segundo elemento de una lista o palabra podemos proceder así:

primero mp [A E I O U ] E



pues el primero de [E I O U ] es la letra "E".

Nótese que para analizar como están actuando estas funciones conviene verlo de derecha a izquierda, partiendo de la lista [ A E I O U]. La función que está más cerca a la izquierda de la lista es mp entonces se aplica a la lista [ A E I O U] y se obtiene [ E I O U ], luego actúa la función primero que extrae la letra A de la lista ya que es la primera.

Nota para maestros: Las primitivas MENOSPRIMERO y MENOSULTIMO es recomendable explicarlas a alumnos (edades entre 11 y 12 años) con la analogía de un tubo de pelotas de tenis de distintos colores o hacer un tubo de papel con bolitas de distinto color en el que para sacar tomar la segunda bolita es necesario sacar la primera antes, o para sacar la última es necesario empezar desde atrás, o si deseamos sacar la anteúltima debemos sacar primeramente la última y así explicar como vamos sacando pelotas o bolitas de un tubo, que será la lista de palabras o elementos a explicar. 34

Aprendiendo con Logo Gráfico – Antueno - Luppi

DESAFIO ¿Aplicando las primitivas vistas, primero, ultimo, mp y mu, te animas a que la computadora imprima en la pantalla los elementos subrayados?

a) EL GATO BLANCO ES MUY BUENO b) abcdefghi c) PENSAR SIGNIFICA MANEJAR PALABRAS

§ 3.5 RECORRIENDO UNA PALABRA O LISTA Probemos que ocurre si tipeo:

primero primero [ERASE UN AVE SOLITARIA] Obtendré una

E ya que:

primero [ERASE UN AVE SOLITARIA] devuelve...

ERASE y como se le aplica otra vez el operador primero, ahora actúa sobre la palabra ERASE, y nos devuelve la letra E. Para entender mejor cómo LOGO ejecuta nuestra orden, especialmente en los casos donde éstas se aplican en forma reiterada (*), como en el ejemplo anterior, conviene "leerla" de derecha a izquierda. Supongamos el caso:

pri ult mu [LOS HERMANOS SEAN UNIDOS] 2 esc [Qué familia numerosa !!] sino esc [Qué poquitos son...]; (3) fin; (1) Nos pregunta cuándo cumplimos la edad que tenemos más uno, o sea la fecha de nuestro cumpleaños. (2) debemos ingresar el número de hermanos que tenemos; como verán para analizar y/o escribir lo ingresado con leerlinea tenemos que pedir el primer elemento de la lista, aunque hallamos escrito una palabra sola. (3) aquí compara el número de hermanos y si éste es mayor que dos escribe "Que familia numerosa !!; y si es menor "Que poquitos son...

Es importante saber que estos sencillos procedimientos no contemplan la posibilidad de prevenir el mal ingreso de datos, por ejemplo si cuando nos pregunta la edad ingresamos una palabra o letra, nunca podrá hacer la suma de la variable más uno, por lo que nos dará un mensaje de error. Cuando se programan diálogos más avanzados en programas más complejos, se deben tener en cuenta todas las posibilidades sobre qué tipo de datos se pide y cómo vamos a manejarlos dentro del procedimiento. 92

Aprendiendo con Logo Gráfico – Antueno - Luppi

Ahora veremos un ejemplo más complejo y muy interesante para tomar como base en un programa más extenso. Está incluido en el disquete con el nombre PSICOANA.LGO

para psicoanalisis; bt modotexto; esc [ Buenos días, dígame su nombre y apellido]; hacer "nombre ll; linea; esc fr [Cuál es su problema?] ult :nombre; escs [>] hacer "problema ll; linea; analisis; fin; para analisis; linea; esc [Hace mucho que le sucede esto?]; hacer "resp pri ll; linea; si :resp = "si esc [Hábleme de la primera vez que le ocurrió esto] hacer "relato ll edipo sino esc [Puede relacionarlo con su infancia?] hacer "relato pri ll si :relato = "no reprime sino edipo; fin; Tal vez éste sea el procedimiento más complejo, ya que realiza dos condicionales ( si ) en forma sucesiva; primero compara la respuesta a la pregunta [Hace mucho que...], si es afirmativa ejecuta una acción, si es negativa vuelve a interrogar y realiza una comparación de la respuesta.

para edipo; linea; esc [Continúe asociando libremente, trataremos de llegar hasta el final]; linea; hacer "relato ll; linea; saludo; fin; para reprime; linea; esc [Parece que hay cosas que le cuesta recordar, hábleme de lo que se le ocurra]; linea; hacer "relato ll; linea; saludo; fin; para saludo; 93

Aprendiendo con Logo Gráfico – Antueno - Luppi

linea; esc [Lo lamento, se terminó el tiempo, son cien pesos, nos vemos la próxima semana.]; linea; fin; Como está expuesto esto es una forma sencilla de diálogo donde las respuestas son muy limitadas y no se tienen en cuenta formas alternativas de responder a una misma pregunta, pero partiendo de esta base podrá programar infinidad de tipos de diálogo para jugar con sus alumnos o amigos. También podrá obtener información realizando una pequeña encuesta dialogada con sus alumnos, guardando en distintas variables las respuestas dadas a cada pregunta. Dentro del disquete que se entrega con el manual existe un programa llamado ELISA.LGO donde se muestra un ejemplo un poco más complejo que los anteriores, donde el autor utiliza varios recursos propios de Logo para la realización de diálogos. Es interesante ejecutarlo para ver hasta dónde llegan las posibilidades de conversar con Logo.

94

Aprendiendo con Logo Gráfico – Antueno - Luppi

CAPITULO 9

TRABAJANDO CON LISTAS § 9.1. TRABAJANDO CON LISTAS Para trabajar con listas es muy útil el uso de la recursión. Es así que si quisiéramos deletrear una palabra, deberíamos ir recorriéndola, acortándola con mp y escribiendo la primera letra de cada lista así obtenida. Veamos más detalladamente esto con la palabra MESA. Usaremos la primitiva escribirs (escribir seguido) para que las escriba todas en el mismo renglón.

escribirs escribirs escribirs escribirs

primero primero primero primero

"MESA mp "MESA mp mp "MESA mp mp mp "MESA

¡ Parece que hemos encontrado una forma complicada de escribir una palabra tan simple ! Vamos a buscar una forma más sencilla y que podamos aplicar a cualquier palabra mediante el uso de la recursión con variable.

para deletrea :palabra si :palabra = "parar escribirs primero :palabra deletrea mp :palabra fin

(3) (1) (2)

(1) Escribe la primer letra de lo que contiene la variable :palabra, con lo que va recorriendo la palabra. (2) Llama al procedimiento deletrear y acorta la palabra quitándole la primera letra. (3) Verifica si terminó de recorrer toda la palabra, cosa que se verifica si la palabra quedó vacia ( lo que se indica con " ) y en ese caso corta la recursión. También se puede escribir:

si vacia? :palabra

parar

Una forma mejorada de este procedimiento ( se encuentra en el archivo TRABLIST.LGO), sería:

para deletrear :pal si vacia? :pal parar escribirs primero :pal escribirs car 32 deletrear mp :pal fin

(4) (5)

(4) Es una forma mejor de comprobar si una palabra está vacía. Puede usarse también para listas. (5) Deja un espacio en blanco entre cada letra, ya que el car 32 representa la barra espaciadora. NOTA: A cada tecla le corresponde un número (del 0 al 255) en la codificación ASCII ( American Standard Code for Information Interchange = Códigos de Norma Americana para Intercambio de Información). Puede probarse con: esc car 33... esc car 34... hasta... esc car 255. Se debe tener presente que el código ASCII dependerá del tipo de font de Windows que se emplee. 95

Aprendiendo con Logo Gráfico – Antueno - Luppi

De igual manera podríamos hacer un procedimiento que encolumne una lista de palabras o las letras de una palabra (incluye números), es decir un objeto-LOGO, en general.

para encolumnar :objeto si vacia? :objeto parar esc primero :objeto encolumnar mp :objeto fin Este procedimiento se encuentra en el archivo TRABLIST.LGO del disquete. Así si ordenamos:

encolumnar [LOGO ES UN LENGUAJE MODULAR]; obtenemos:

LOGO ES UN LENGUAJE MODULAR o bien:

encolumnar "ELEFANTE E L E F A N T E DESAFIO ¿ Cómo harías un procedimiento BUSCARZ que recorra la palabra, deletreándola y que cuando encuentre una "z" lo haga notar escribiendo "¡Encontré una z !" ?

DESAFIO ¿ Te animarías a hacer un procedimiento ACORTAR que vaya acortando una lista o palabra imprimiéndola encolumnada hasta que quede vacía ?

DESAFIO ¿ Y un procedimiento que le vaya quitando la primera y la última letra cada vez ?

DESAFIO

96

Aprendiendo con Logo Gráfico – Antueno - Luppi

¿ Cómo hacer un procedimiento SINVOCALES :pal que reemplace todas las vocales de una palabra por guiones? ¿Y todas las consonantes? Ayuda: La primitiva miembro? devuelve si un elemento pertenece o no a una palabra o lista (es una función). Por ejemplo miembro? "a "casa es VERDAD en cambio miembro? "b "casa es FALSO. Entonces se puede usar una expresión como:

si miembro? "a "casa escribirs (tal cosa) DESAFIO Cómo hacer un procedimiento MUCHASUES (muchas úes) que reemplace cada una de las vocales de cualquier palabra con la letra U. NOTA: Las soluciones de los Desafíos 4 y 5 están en el archivo TRABLIST.LGO.

§ 9.2. CONJUGANDO UN VERBO Ahora vamos a tratar de enseñarle como conjugar un verbo regular a partir de cualquier infinitivo que le demos. Lo primero que haremos, será separar la raíz, para lo cual usaremos:

para conjugar :verbo hacer "raiz mu mu :verbo ... ... ...

(7)

(7) Le quitamos las dos últimas letras, por ejemplo, el verbo "cantar", quedará "cant" que es la raíz.

Recordemos que hacer crea una variable global (Ver Capítulo sobre variables) Guardaremos las 6 terminaciones en una variable que llamamos :terminaciones

hacer "terminaciones [o as a amos áis an] que crea una variable llamada :terminaciones a la que se le asigna el valor de la lista [o as a amos áis an]. Las comillas precediendo al nombre de la variable sólo se usan al definirla con hacer, luego al usarla se la llama precediéndola de los dos puntos (:). De igual manera se le puede asignar a una variable un número, con:

hacer "x 50 define :x que vale 50. También:

hacer "saludo "HOLA define una variable :saludo que es la palabra "HOLA. 97

Aprendiendo con Logo Gráfico – Antueno - Luppi

Luego se piden sus valores así:

esc :x 50



o

esc :saludo HOLA



Continuando con la conjugación, ahora a la raíz debemos agregarle las terminaciones correspondientes a cada pronombre personal. Lo hacemos con la primitiva PALABRA, por ejemplo, para el verbo amar es: PALABRA :raiz "o nos devuelve "amo", y para anteponer cada pronombre usamos frase (fr)

para conjugar :verbo hacer "raiz mu mu :verbo esc [PRESENTE] esc [ ] esc fr "yo palabra :raiz "o esc fr "tu palabra :raiz "as esc fr "él palabra :raiz "a esc fr "nosotros palabra :raiz "amos esc fr "vosotros palabra :raiz "áis esc fr "ellos palabra :raiz "an fin

DESAFIO Si se hicieran 2 listas con los pronombres y las terminaciones, se podría hacer un procedimiento que las recorra y vaya armando las conjugaciones. ¿ Puedes hacerlo?

DESAFIO ¿ Cómo hacer para que la computadora reconozca si es de la primera, segunda o tercera conjugación ?

DESAFIO ¿ En caso de solucionar el Desafío anterior, cómo harías para seleccionar las terminaciones de cada una de las distintas conjugaciones? En el disco provisto con este libro hay 25 archivos separados con una o más extensiones, que pueden cargarse por separado. Por ejemplo para hacer un promedio, escribimos:

cargar "promedio los cuales serán definidos directamente en memoria, si queremos ver como están programados debemos cargarlos desde el Editor de Textos. Los procedimientos son promedio y sumar, que actúan juntos (sumar es un subprocedimiento de promedio). 98

Aprendiendo con Logo Gráfico – Antueno - Luppi

Si queremos cargar todos las extensiones de listas juntas, ponemos:

cargar "listas que es el archivo que contiene a todos los procedimientos que se mencionan, y al igual que en el caso anterior, si queremos verlos hay que cargarlos en el Editor de Textos. En general para distinguir cuándo una primitiva actúa sobre una palabra o una lista se ha usado la siguiente nomenclatura: infinitivo ...................... tercera persona ..............

para listas para palabras

Nota: Los archivos .LGO a los que se hacen mención, están por separado.

99

Aprendiendo con Logo Gráfico – Antueno - Luppi

CAPITULO 10

USO DE BOTONES Y CONTROLES § 10.1 PONIENDO BOTONES La posibilidad de crear botones en la pantalla gráfica es una de las grandes novedades que presenta la versión Windows de LOGO GRAFICO. Esta posibilidad es una herramienta muy útil y dinámica para facilitar el control y manejo del entorno LOGO a través de la programación de botones en la pantalla gráfica. Tenemos dos tipos de botones, los cuales tienen distintas características de funcionamiento, dependiendo de qué queremos controlar o manejar, y dentro de qué tipo de animación, secuencial o simultánea.

§ 10.1.1 BOTONES EN MODO COMANDO Estos botones se crean a través de la primitiva FBOTON y su apariencia es similar a los utilizados en el entorno Windows. Sólo funcionan en modo comando o directo, es decir, que no responden cuando se los "pica" con el mouse si se está ejecutando una recursión (animación secuencial) o dentro de animación simultánea. Con ellos podemos crear una pantalla inicial donde el usuario pueda, picando con el mouse, elegir una opción o programa para su inmediata ejecución. La primitiva FBOTON tiene varios argumentos (variables) los cuales son explicados en la Ayuda de Primitivas o en la Descripción del lenguaje del manual. Daremos un ejemplo de cómo se programa. Ejemplo: 1

para bot_circ bp ot pentera sp fpos [-100 90] fboton [circunferencia] "circunf 48 17 fin para circunf fc 2 fgrosor 3 sp fpos [0 30 ] cp repetir 90 [ad 1 de 4] fin

(1) (2)

(3)

(4)

Para poner un botón en la pantalla debemos seguir algunos pasos: En (1) posicionamos la tortuga gráfica, pues donde esté la tortuga ahí se colocará el botón, eso quiere decir que la posición del botón está dada por la ubicación actual de la tortuga en la pantalla. NO funciona en animación (con la posición de actores. Luego le damos en (2) la orden FBOTON con 2 nombres y 2 números. 1. Primero figura el nombre del botón, o sea la palabra o texto que aparece sobre el botón. En nuestro caso como se dibujará una circunferencia le ponemos [circunferencia], que puede ir entre corchetes o precedida de comillas (si es una palabra). 100

Aprendiendo con Logo Gráfico – Antueno - Luppi 2. Luego seguirá la instrucción o procedimiento que deberá ejecutar, en nuestro caso circunf. En vez del nombre del procedimiento, se podría poner una lista de órdenes (entre corchetes) o también podríamos invocar algún procedimiento con actores.. 3. Luego irán las medidas del botón, primero el ancho y luego el alto del mismo. En (3) creamos el procedimiento circunf que ejecutará la tortuga cuando piquemos el botón con el mouse en modo directo. (4) Es importante, ya que posicionamos nuevamente la tortuga donde queremos que se dibuje la circunferencia.

MUY IMPORTANTE: En la versión actual no se pueden crear botones con actores en escena, es decir que si tenemos que colocar botones debemos hacerlo antes que pongamos algún actor, o sea después de un bp o rg. Ejemplo 2:

para botones bp ot pentera bot_borrar bot_circunf fin

(1) (2)

para bot_circunf sp fpos [-100 90] fboton [circunferencia] "circunf 48 17 fin para bot_borrar sp fpos [-100 50] fboton "borrar [lp] 45 17 fin Con estos dos últimos procedimientos, podemos crear dos botones, uno que dibuje la circunferencia, el otro que la borre. Necesitamos también el procedimiento circunf del ejemplo anterior. Y para trabajar con más modularidad creamos el super-procedimiento botones que junta a todos.

Lo explicamos: En el procedimiento bot_borrar limpiamos la pantalla borrando la circunferencia dibujada. 101

Aprendiendo con Logo Gráfico – Antueno - Luppi

En el procedimiento botones primero creamos el botón de borrar (1), luego en (2) creamos el botón con el cual, al hacer clic en él se dibujará la circunferencia (el orden de creación no altera el resultado, es decir que podríamos ejecutar el procedimiento bot_borrar luego del procedimiento bot_circunf).

§ 10.1.2 BOTONES ESPECIALES PARA USAR EN ANIMACION SIMULTANEA Para el uso de botones en la animación simultánea se creará otro tipo de botón (llamados botones especiales o botones-Logo), esto es, con la primitiva FBOTONLOGO, el cual es diferente al anterior por los siguientes motivos: - La forma del botón la creamos en el editor de formas, o sea que el botón tiene la apariencia de un disfraz de actor. El botón no es un actor pero le podemos dar la forma de éstos. - Se deben editar (crear) dos formas para cada botón. En una retícula se diseña el botón sin oprimir -o sea el que se ve cuando no está accionado- y en otra retícula el botón oprimido, el que se ve sólo en el momento de presionarlo. Esto significa que nosotros al oprimir un botónLogo éste se transformará entre una forma y la otra, y al soltarlo volverá a su forma inicial. - Y fundamentalmente el botón-Logo funciona tanto en modo comando como en animación, ya sea secuencial o simultánea. Lo que nos brinda la posibilidad de controlar cualquier procedimiento en animación. Esta última diferencia es de mucha utilidad para generar un entorno de trabajo donde el usuario puede programar distintos efectos dentro de la animación y manejarlos a través de botones en la pantalla. Recordamos que como con el tipo de botón anterior la posición de éste estará fijada por la posición de la tortuga gráfica, por lo que hay que ubicar los botones antes de entrar en animación (o sea antes de usar la orden ACTIVAR o DECIR) o luego de un BP o RG,. Daremos algunos ejemplos de sencillos programas con botones. Las formas usadas son del archivo BOT.FRM de los discos de instalación. Si no las tiene, dibuje sus propios botones. Fíjese que para dar apariencia de botón suelto los bordes izquierdo y superior son claros (iluminados) y los otros oscuros, y en el oprimido al revés (ver figura).

para presen decir 5 fforma 14 sp fpos [90 40] frumbo 200 fvel 35 visible fin para bot sp fpos [-90 90] fbotonlogo [actuar] 4 5 fpos [-90 70] fbotonlogo [interrumpir] 8 9 fin

(1) (2)

102

Aprendiendo con Logo Gráfico – Antueno - Luppi

para inicio bp ot fcf 0 bot presen fin En estos tres procedimientos lo que hacemos es: en le procedimiento present ubicamos al actor en pantalla con todas sus características. En bot ponemos los botones Logo en la posición deseada (Notar que lo hacemos con la tortuga gráfica) y les asignamos las acciones deseadas. En (1) le damos la orden ACTUAR seguida de los números de las formas que debe intercambiar el botón sin oprimir y al oprimirse en (2) le damos la orden INTERRUMPIR y las 2 formas necesarias. Luego en el procedimiento inicio primero ponemos los botones, después ponemos al actor en pantalla y luego: ¡A probar!

§ 10.1.3 USO DE BOTONES-LOGO EN PROGRAMACION SECUENCIAL Ahora veremos un ejemplo con programación secuencial, para mostrar cómo podemos controlar (en este caso, parar) un procedimiento recursivo y no de animación simultánea con los botones-Logo.

para recursivo decir 7 repetir 20 [ad 2 esperar 5] de 250 cp repetir 90 [ad 1 de 4] sp recursivo fin para presen2 decir 7 fc 2 fgrosor 2 sp fpos [0 50] fforma 6 visible fin para bot2 sp fpos [-90 90] fbotonlogo [recursivo] 1 2 fpos [-90 70] fbotonlogo [parar] 3 4 fin para todo bp ot pentera fcf 17 bot2 presen2 fin 103

Aprendiendo con Logo Gráfico – Antueno - Luppi

Ejecutemos el procedimiento todo y luego probemos de pulsar alternadamente los dos botones controlando de esta forma la acción (usamos el archivo de formas BOTONPRG.FRC). Al probar de trabajar con ellos se verá qué útiles y cómodos son los botones en un entorno de trabajo donde el usuario debe controlar el comportamiento de los actores en la pantalla. También los podemos utilizar como una forma de darles órdenes a los actores o cambiarles las condiciones o eventos.

ALGUNOS CONSEJOS - Dentro de la forma del botón le podemos dibujar el nombre o leyenda, también se lo podemos poner debajo o arriba del botón con la primitiva CARTEL. - Es importante que las formas de los botones sean del mismo tamaño, ya que debido a la programación interna del mismo se superponen las formas, lo que implica que, si tenemos formas de distintos tamaños éstas quedarán superpuestas y se verán ambas, la oprimida y la sin oprimir obteniendo un resultado indeseado. También resulta conveniente no usar demasiado el color negro (cero) que en realidad es transparente. - Cuando colocamos varios botones en pantalla, puede resultar confuso identificar cuál es cada uno y qué acción realizará. para ello se puede hacer clic con el botón derecho del mouse sobre cada uno de ellos, y tendremos la información buscada.

§ 10.2 TRABAJAMOS CON LAS BARRAS DE DESLIZAMIENTO O CONTROLES Podemos crear dentro de la pantalla gráfica barras de deslizamiento, como las que tienen las ventanas de Windows. Estas barras, al igual que los FBOTON, sólo funcionan en modo comando y los podemos utilizar para controlar y/o asignarle un valor a una variable con el movimiento del cursor de la barra o picando en las flechas de los extremos de éstas. Las primitivas para crear y leer una barra son tres, FCONTROL, POSCONTROL y FPOSCONTROL. El uso de estas tres primitivas lo veremos a continuación aplicándolas en la programación de un ejemplo que permitirá variar la base y altura de un rectángulo por medio de las barras de deslizamiento.

para inicio rg fcf 17 ftipo "arial fanchotipo 1 fcolorletras 20 controles botones alt base posinicial fin para controles sp fpos [ 15 -30] fcontrol "H "base 128 0 100

(1) (2) 104

Aprendiendo con Logo Gráfico – Antueno - Luppi

fposcontrol 1 50 sp fpos [ -55 40] fcontrol "V "alt 123 0 100 fposcontrol 2 50 fin

(3) (4)

En este procedimiento se posiciona la tortuga en el centro donde se creará la barra (1) con fcontrol (2) definimos la barra, cuyos parámetros son: "H que indica que es horizontal, "base es el nombre del procedimiento que se ejecuta al accionar la barra o modificar su estado, 128 es el largo que tiene la barra, expresado en pasos de tortuga y 0 100 determina los 2 valores extremos (máximo y mínimo) de la base. De similar manera definimos la barra vertical en (4). La instrucción fposcontrol 1 50 (3) determina que para el control número 1 (el primero creado) el valor inicial de la variable :b será 50.

para botones sp fpos [-100 -4] fboton [Dibuja] "rect 50 15 sp fpos [ -100 20] fboton [Borrar Todo] [lp] 50 15 fin Se crean dos botones, uno para ejecutar el programa rect que realiza el rectángulo y otro para empezar de nuevo.

para posinicial sp mt fpos [-40 -14] frumbo 90 cp fin para rect frelleno 1 + azar 9 1 + azar 15 repetir 2 [ad :b iz 90 ad :h iz 90] rellenar fin En posinicial determinamos la posición inicial de la tortuga y el procedimiento rect que hará un rectángulo cuando se presione un botón. El tamaño del rectángulo quedará determinado por las variables :b y :h que se varían con las barras de deslizamiento en (1).

para base hacer "b poscontrol 1 (1) cartel fr fr [···Base:] :b [···] [110 -30] 0 fin para alt hacer "h poscontrol 2 cartel fr fr [···Altura:] :h [···] [-50 110] 0 fin (1) Con esta línea se leerá el valor del "Control 1" dado por el cursor de la barra de control horizontal y se le asigna ese valor a la variable :b. (1b) Se imprime un cartel con el valor leído. El procedimiento alt realiza igual operación con la barra vertical.

105

Aprendiendo con Logo Gráfico – Antueno - Luppi

§ 10.2 EXPERIMENTANDO CON EL SATELITE En este programa -desarrollado por uno de los autores- se utilizan los distintos botones, las barras, áreas visibles, animación simultánea y para los que poseen plaqueta de sonido el uso de un archivo WAV. El objetivo del programa es realizar una simulación de las posibles trayectorias de un satélite que se acerca a un planeta que lo atrae. Debemos variar la velocidad inicial con la barra de deslizamiento (control) y lanzarlo con "Actuar", de modo de lograr una trayectoria elíptica permanente.

para control sp fpos [-145 50] fcontrol "V "posvel 100 10 30 ftipo "arial fanchotipo 1 fcolorletras 1 fposcontrol 1 20 posvel ventana fin

(1)

(2) (3) (4)

para posvel cartel [··Vel.:]||(poscontrol 1)||[··] [-105 100] 14 hacer "vl poscontrol 1 fin

(4a)

(*) Las barras || equivalen a la primitiva FRASE, o sea que la línea equivale a:

cartel fr fr [..Vel.:] (poscontrol 1) [..] [-85 100] 14 Ubicamos una barra de control vertical, definimos sus parámetros en (1).

En (2) determinamos la posición inicial del cursor, en (3) con la primitiva cartel escribimos el valor inicial de la barra de control y en (4) dibujamos la "ventana" por donde veremos pasar al satélite. 106

Aprendiendo con Logo Gráfico – Antueno - Luppi

para satel decir 2 fforma 16 frumbo 90 (5) sp centro mt (5) repetir 50 [estamparforma 22 lista ((-60) + azar 180) ((-30) + azar 130)] (6) decir 1 fforma 1 sp fpos [30 50] mt frumbo 90 (7) fin En satel, en (5) presentamos al satélite, en (6) estampamos las estrellas entre x=-160 y x=120 alrededor del mundo que será ubicado en (7). La línea (6) va toda en el mismo renglón.

para movi decir 2 libre gravitatorio [30 50] 300 flimites [-300 300] 600 600 (9) cuandoizq [inic interrumpir] cuandoder [inic interrumpir] cuandoabajo [inic interrumpir] cuandoarriba [inic interrumpir] fareavisible [-60 130] 200 160 fvel :vl tocarsiempre 1 actuar fin

(8) (10)

(11) (12)

En este procedimiento le asignamos todos los parámetros necesarios al actor 2 (satélite) para su control y función. En (8) utilizamos la primitiva GRAVITATORIO la cual produce sobre el satélite una simulación de una atracción de tipo gravitatoria con centro en el punto indicado (ver más detalles en la Ayuda de Primitivas). En (9) determinamos que el satélite tenga un área de movimiento limitada dentro del entorno Logo, ya que si no controlamos esto el satélite en algún momento puede irse de la ventana y producirá un error de programa al llegar fuera de los límites permitidos. En (10) le asignamos eventos para que cuando choque con los límites permitidos pare la animación vuelva a su punto de origen. En (11) determinamos el área visible por donde veremos pasar al satélite. Con (12) hacemos que comience a sonar el archivo WAV ininterrumpidamente hasta darle una instrucción de parada (pararsonido).

para inic decir 2 centro frumbo 90 facelx 0 facely 0 fvel 0 pararsonido fin Aquí reasignamos los valores de aceleración y velocidad iniciales cada vez que para, y va al punto de partida, además de apagar el sonido en caso de que se produzca un evento.

para inicio bp ot quitarbarrah pentera libre cargarformas 'satelite fcf 17 si haysonido? cargarsonido 'satelite 1 (13) hacer "vl 0 control botones carteles satel fin 107

Aprendiendo con Logo Gráfico – Antueno - Luppi Este es el procedimiento de inicio del programa, lo único a comentar es que en (13) se interroga al sistema si posee plaqueta de sonido, si es "verdad cargará el archivo satelite.wav.

Quedan dentro del programa tres procedimientos más que son ventana, botones y carteles, con los cuales ubicamos y definimos las funciones de los botones, dibujamos un cuadrado negro que simulará la ventana por donde veremos pasar el satélite y rotulamos un breve texto explicativo del juego, que veremos a continuación.

para ventana sp fpos [-60 -30] frumbo 0 frelleno 1 0 cp repetir 2 [ad 160 de 90 ad 200 de 90] rellenar fin para botones sp fpos [-85 80] fboton 'Actuar 'movi 30 sp fpos [-85 60] fboton 'Centro 'inic 30 sp fpos [-85 40] fbotonlogo [pararsonido fcolorletras 1 cartel [··Parar··] [-85 fin

15 15 interrumpir] 3 2 27] 14

para carteles ftipo 'arial festiloletras [cursivo subrayado] fcolorletras 0 fanchotipo 1.3 decir 12 fforma 1 ot sp frumbo 90 fpos [0 -46] rotularc [Juguemos con el satélite] festiloletras [normal] fanchotipo 1 cartel [ Debes aumentar la velocidad con el] [0 -60 ] 17 cartel [ control vertical hasta poner el satélite] [0 -73] 17 cartel [ en órbita alrededor del mundo] [0 -84] 17 fcolorletras 1 fanchotipo 1 fin

108

Aprendiendo con Logo Gráfico – Antueno - Luppi

109

Aprendiendo con Logo Gráfico – Antueno - Luppi

CAPITULO 11

PUERTOS Y MANDOS Trataremos de explicar brevemente como se usan las distintas primitivas de LOGO GRAFICO para manejar los puertos paralelos, series, y una novedad, con respecto a otros Logos, LOGO GRAFICO tiene la posibilidad de controlar y programar el Joystick que se conecta a la PC. El uso de Joystick en Logo posibilita la creación de juegos de video y realización de software donde se pone a prueba la habilidad, velocidad y destreza. Dentro de la programación de animación secuencial o simultánea, el poder controlar el comportamiento de la tortuga o los actores es una poderosa herramienta. También el control de los puertos serie y paralelo, da a LOGO GRAFICO la posibilidad de comunicación con el exterior de la computadora, y desarrollar programas de control de interfaces para la aplicación de robótica en educación. Tal vez les resulte extraña estas instrucciones a aquellas personas que no están familiarizadas con el control de los puertos, pero es importante para aquellas que sí tienen interés en la posibilidad de comunicación a través de Logo con el mundo exterior.

§11.1 PUERTO SERIE A diferencia de LogoWriter el seteo de los puertos serie (COM1 y COM2) se realiza desde dentro de LOGO GRAFICO, con las primitivas ABRIRCANAL y CERRARCANAL. Cabe aclarar que en LOGO GRAFICO llamamos canal a los puertos serie.

abrircanal 2 1200 0 8 1 con esta orden seteamos el puerto serie 2 (COM2) a 1200 baudios de velocidad, paridad 0, ocho bits, bit de parada. Con CERRARCANAL cerramos el canal de comunicación, a la vez que eliminamos cualquier dato o carácter pendiente que se halle en el bus. Simplemente dando esta instrucción.

cerrarcanal Las primitivas para leer o escribir el canal abierto con ABRIRCANAL son:

leercanal Devuelve el carácter que se halle en el canal abierto, en decimal.

esccanal 30 escribe en el canal abierto un dato en decimal. Algo útil para programadores más avanzados es la primitiva CARPENDIENTE? devuelve con VERDAD o FALSO si existe un carácter aun no leído en el canal abierto. 110

que

Aprendiendo con Logo Gráfico – Antueno - Luppi

§11.2 PUERTO PARALELO Estas primitivas se asemejan mucho a las primitivas de manejo de puertos de LogoWriter. Tanto en su función como en su sintaxis. Con estas primitivas podemos leer y escribir cualquier dirección de memoria baja de la PC en un rango de 0 a 64 Kb. Esta especialmente diseñada para los puertos paralelos, pero para aquellos acostumbrados a usarlas con los puertos serie, también son útiles.

escpuerto 888 25 Con esta instrucción estoy escribiendo en el puerto paralelo LPT1 (888) el dato 25 en decimal, ya que la dirección de memoria asignada generalmente para el LPT1 es 888 en decimal o 3F8 en hexadecimal.

IMPORTANTE No debe ser usada esta primitiva por aquellas personas que no tiene un conocimiento exacto de los puertos, ya que un error en la dirección donde escribimos un dato, podemos hacer que LOGO GRAFICO e inclusive Windows se bloquee. Para leer un dato del puerto solo escribimos:

leerpuerto 888 donde 888 es la dirección del puerto de donde deseamos leer un dato. La mayoría de las interfaces de robótica educativa que no funcionan con una determinada versión de Logo, utilizan estos puerto y estas primitivas para su control y manejo.

§11.3 MANEJO DE JOYSTICK El manejo y programación del Joystick es más sencillo y accesible para los programadores o usuarios de Logo, ya que no necesitan una interface de control específica, sólo necesitan poder conectar un Joystick a su PC (es importante que su Windows o DOS reconozca el puerto o entrada de Joystick). Con un Joystick podemos guiar un actor, mover la tortuga, controlar a través de los botones de mando un evento en animación simultánea, etc. Existen seis primitivas para el control del Joystick, sólo citaré las usadas en el ejemplo dado a continuación. EXIXTEMANDO? Con esta primitiva podemos saber si LOGO GRAFICO reconoce la presencia del Joystick conectado a nuestra PC. AJUSTARMANDO Pone a cero la posición de la palanca del Joystick. Es importante ya que toma la posición [0 0] el la posición actual de la palanca. Sirve para setear a cero cuando la palanca está en reposo o no está accionada. POSMANDO Devuelve la posición (como con la primitiva POS) en forma de lista, con X e Y.

111

Aprendiendo con Logo Gráfico – Antueno - Luppi

El primer valor de la lista indica los movimientos de la palanca hacia la derecha o hacia la izquierda, según devuelva un número negativo o positivo. El segundo de la lista indica un movimiento de la palanca hacia adelante o hacia atrás, también según sea positivo o negativo. BOTONMANDO? Devuelve VERDAD o FALSO si a sido accionado alguno de los dos botones que generalmente tienen los Joystick de PC. Nota: cada una de las primitivas tiene un argumento que le indica con cual de los dos mandos o Joystick estamos trabajando o van dirigidas las órdenes, ya que con LOGO GRAFICO podemos trabajar con dos Joystick.

El ejemplo que se da es para usar en animación secuencial, con el uso de una recursión sencilla. Aquí movemos la tortuga por la pantalla, con o sin pluma según le demos la instrucción a través de los botones del Joystick.

para inicio bp mt pentera fcolor 2 sp ajustarmando 1 (1) movi fin para movi si (pri posmando si (pri posmando si (ult posmando si (ult posmando si botonmando? 1 si botonmando? 1 si tecla? parar movi fin

1) > 20 de 5 1) < (-20) iz 5 1) > 20 ad 2 1) < (-20) ad 2 1 cp 2 sp

(2) (2) (2) (2) (3) (4)

1- Es importante poner a cero la posición inicial del Joystick antes de comenzar a usarlo en el control de un programa. 2- Aquí preguntamos por el primero o último valor de la lista que nos devuelve la primitiva posmando, en base al valor dado le asignamos a la tortuga el rumbo correspondiente a la dirección en que está inclinada la palanca, y la hacemos avanzar dos pasos. 3- preguntamos si está accionado en botón 1 del mando 1 (recuerden que podemos trabajar con dos Joystick), si es así, le ponemos pluma a la tortuga. En la línea siguiente hacemos lo mismo, pero preguntamos por el botón 2 del mando 1, y si está accionado le sacamos la pluma a la tortuga. 4- Le damos una instrucción de control para cortar la recursión, esto es, si oprimimos una tecla del teclado paramos la recursión. Nota: Preguntamos si el valor es mayor a... para darle cierto margen de control al programa, ya que hay Joystick muy sensibles que pueden devolver valores al más mínimo movimiento. Ese valor se deberá determinar según el comportamiento de cada uno.

Esto es un muy sencillo ejemplo de como podemos usar el Joystick para jugar o hacer programas con Logo. Es importante leer las Ayudas del programa para cada una de las primitivas mencionadas, y también para conocer las otras que no han sido usadas en este ejemplo.

112

Aprendiendo con Logo Gráfico – Antueno - Luppi

113