Secuencias, listas, macros: posibilidades ilimitadas Mª Esperanza Gesteira Losada1 Ignacio Larrosa Cañestro2 Débora Pereiro Carbajo1 Enrique de la Torre Fernández3 Fernando Zacarías Maceiras4 Resumen El programa GeoGebra constituye una potente herramienta con una enorme utilidad didáctica en la clase de matemáticas. Su facilidad de manejo e ilimitadas posibilidades de aplicación lo hacen idóneo para trabajar contenidos diversos en el aula de Educación Secundaria, desde la geometría y el álgebra, a la estadística o la plástica. En este taller se han elegido las posibilidades que proporciona el manejo de listas y secuencias, así como la elaboración de macros, para hacer cinco construcciones: i) Ángulo decorado: Creación de un armazón de segmentos, creación de una herramienta personal (macro); ii) Una aplicación curricular de las listas: Suma de una progresión aritmética. Exportación html; iii) Diagonales de un polígono regular de «n» lados; iv) Tratamiento con listas de los extremos y puntos de inflexión de un polinomio; v) Una aplicación jugable: Creación de un tablero y fichas para jugar a las damas. 1. Introducción GeoGebra permite trabajar con Listas de cualquier clase de objetos, del mismo o de diferente tipo. Dependiendo del tipo de objetos que contenga, se podrán hacer ciertas operaciones con la lista o atribuirles determinadas propiedades al conjunto de elementos que la forman. Una lista se puede crear relacionando objetos preexistentes, entre llaves y separados por comas. Estas listas pueden usarse en muchos comandos. Por ejemplo, creando en la ventana gráfica cuatro nuevos puntos (Nuevo Punto), luego en la línea de entrada: lista1 = {A, B, C, D} y después el comando: Polinomio[lista1], se crea y visualiza en la ventana gráfica, el polinomio de tercer grado que pasa por esos cuatro puntos. Aquí estos puntos tienen "vida" independiente de la lista, y se pueden mover y cambiar sus propiedades. Si por el contrario, se introduce: lista2 = {(1, 2), (3, -1), (4, 0), (5, 3)}, la lista aparece sólo en la ventana de álgebra, pero se puede visualizar (aunque no sus puntos individualmente). Los puntos no tienen nombre ni pueden moverse. Esto tiene la ventaja de que si son muchos objetos (decenas, cientos o hasta 1 CGTD. Extensión do IES Sánchez Cantón, Pontevedra IES Rafael Dieste, A Coruña 3 Dpto. de Pedagoxía e Didáctica, Universidade da Coruña 4 IES As Mariñas, Betanzos 2 miles), se produce un importante ahorro de memoria y el programa funciona mejor. Se puede crear el polinomio igual que antes, con la lista visible o no, introduciendo: Polinomio[lista2]. Otra forma de crear listas, es mediante el comando Secuencia, cuya sintaxis completa es: Secuencia[Expresión, Variable i, Número a, Número b, Incremento] Este comando establece una lista de objetos creados desde la expresión dada y el índice i que varía en el rango que va del número a al b con el incremento dado. Por ejemplo, estos comandos: Secuencia[Segmento[(0, s), (8, s)], s, 0, 8] y Secuencia[Segmento[(s, 0), (s, 8)], s, 0, 8] crean el esqueleto de un tablero de ajedrez. 2. Ángulo decorado Objetivos: Crear utilizando secuencias un armazón de segmentos que unan los puntos que dividen en partes iguales los lados de un ángulo. Creación de una herramienta personal (macro) para su uso posterior. Utilización de la macro creada en una nueva construcción. a) Crear utilizando secuencias un armazón de segmentos que unan los puntos que dividen en partes iguales los lados de un ángulo. Creando n = 12, tres puntos A, B y C y la lista Secuencia[Segmento[A + (B - A) k / n, B + (C - B) k / n], k, 0, n], se crea una secuencia de segmentos para los valores de k desde 0 hasta n. Para k = 0 se tiene el segmento AB y para k = n, el BC. b) Creación de la herramienta personal (macro) i) Guardar la imagen 'Angulo_decorado.GIF' en el disco duro. ii) En 'Herramientas', escoger 'Creación de Herramienta Nueva ...'. En la pestaña 'Objetos de salida' escoger la lista 'lista1'. Pulsar 'Siguiente' para pasar a la pestaña 'Objetos de Entrada'. Asegurarse de que figuren los puntos A, B y C y el número n, en ese orden. Pulsar 'Siguiente' para pasar a la pestaña 'Nombre e Icono'. En 'Nombre de Herramienta' poner 'Angulo Decorado'. Aceptar 'AnguloDecorado' para el nombre del comando, y en 'Ayuda de la herramienta' escribir '3 puntos y un número'. iii) Pulsar en el botón 'Icono' y seleccionar el fichero Angulo_decorado.gif guardado anteriormente. Después pulsar en 'Final' y en 'Aceptar' para cerrar la ventana informativa. Aparece el icono de la macro en la barra de herramientas. iv) Volver al menú 'Herramientas', escoger 'Gestor de Herramientas ...' y pulsar en 'Guardar cómo...'. Guardarlo con el nombre 'Angulo_decorado'. La extensión .ggt se añade automáticamente. Así se tendrá disponible la macro para utilizarla en cualquier construcción posterior. b) Utilización de la macro i) Para eliminar la macro de la memoria, se cierra GeoGebra y se vuelve a abrir. Hecho esto, establecer las mismas opciones generales que antes. ii) En el menú 'Fichero', abrir lo que se acaba de guardar, 'Angulo_decorado.ggt'. Se añade un botón a la barra de herramientas con nuestra macro. En general, al abrir una, o muchas, macros en una construcción, esta no se altera en ningún sentido. iii) Crear un deslizador de nombre 'n', y asignarle 1, 30 y 1, al mínimo, máximo e incremento respectivamente. Darle a n, por ejemplo, el valor 20. iv) Escoger la herramienta 'Angulo Decorado' y marcar tres puntos. En la ventana que se abre se introduce n. Se vuelve a repetir la operación dos veces con los mismos puntos, pero poniendo en medio cada vez uno distinto. Se puede seguir usando repetidamente la macro con dos puntos ya construidos y uno nuevo. 3. Suma de una progresión aritmética Objetivos: Construcción de una figura para ver gráficamente la suma de una progresión aritmética, con primer término, diferencia y número de términos seleccionable. Para representar la progresión, vamos a utilizar pequeños rectángulos de altura 1 y longitud proporcional a cada uno de sus términos, apilándolos de manera que formen casi un trapecio con un lado perpendicular a las bases, y cuya área coincidirá con la suma. Creando deslizadoires a1, n y d para el primer término, la diferencia y el número de términos de la progresión, se crea esta figura a partir de un punto de referencia A con las instrucciones: B = A + (0, -1) C = B + (1, 0) L1 = Secuencia[Polígono[A + (i - 1) (B - A), A + i (B - A), A + i (B - A) + (a_1 + (i - 1) d) (C - B), A + (i - 1) (B - A) + (a_1 + (i - 1) d) (C - B)], i, 1, n] Para visualizar la suma, se gira la figura anterior alrededor del punto medio M del lado oblicuo, de manera que con la original formen un rectángulo, de área fácilmente calculable, siguiendo a Gauss: a_n = a_1 + (n - 1) d D = A + (a_1 + a_n, -n) M = (A + D)/2 Para girar toda la figura, se crean puntos A', B' y C', como rotación de A, B y C respectivamente, un ángulo α respecto de M. Entonces, L2 = Secuencia[Polígono[A' + (i - 1) (B' - A'), A' + i (B' - A'), A' + i (B' - A') + (a_1+ (i - 1) d) (C' - B'), A' + (i - 1) (B' - A') + (a_1 + (i - 1) d) (C' - B')], i, 1, n] Se utilizan colors dinámicos para mostrar poco a poco la segunda figura, según se gira. Se exporta como fichero html, añadiendo instrucciones y algunas propuestas. 4. Diagonales de un polígono. Objetivos: Dibujar todas las diagonales y lados de un polígono regular de entre 3 y 30 vértices, ocupando de forma automática la mayor parte de la pantalla disponible. a) Construcción de la figura i) Crear un deslizador n, de 3 a 30 e incremento 1. ii) Con lo puntos de las cuatro esquinas de la ventana gráfica que se pueden obtener cómo Esquina[i], con i = 1, 2, 3 y 4, las funciones x( ) e y( ) que dan la coordenada x e y de un punto, un vector o una diferencia de puntos, y el comando Mínimo[a, b] se puede obtener r, un valor igual al 90% de la mitad del mínimo del ancho y el alto de la ventana gráfica.: r = 0.9 Mínimo[y(Esquina[4] - Esquina[1])/2, x(Esquina[2] - Esquina[1])/2] iii) Con: A = (Esquina[1] + Esquina[3])/2 se sitúa en el centro de la ventana gráfica. iv) Con Lista1 = Secuencia[Rota[A + (r, 0), 2 π k / n, A], k, 0, n - 1] se consigue una lista de n puntos igualmente repartidos a una distancia r del punto A. v) Mediante una secuencia doble, se crea una lista con los segmentos que unen todos los puntos: lista2 = Secuencia[Secuencia[Segmento[Elemento[lista1, i], Elemento[lista1, j]], j, i + 1, n], i, 1, n - 1] b) Creación de un fichero html Cerrar la ventana algebraica, reducir el tamaño de la ventana de GeoGebra a una cuarta parte de la pantalla y exportar la figura como html. 5. Extremos y puntos de inflexión de una función polinómica Objetivos: Estudiar los extremos relativos y puntos de inflexión de una función, relacionándolos con las raíces de las derivadas primera y segunda. Se hace para cualquier función polinómica, por lo que al desconocerse el número de ellos, deben utilizarse listas para manejarlos. La restricción a funciones polinómicas viene impuesta por el uso de los comandos Extremo[], Raíz[] y PuntoInflexión[]. Construcción: Se introduce la función f(x) por la línea de entrada y se hallan sus derivadas 1ª y 2ª. Se crea un punto A sobre F, y otros B y C sobre las derivadas 1ª y 2ª con la misma abcisa. Se calcula a tangente en A: t = Tangente[x(A), f] Se hallan los extremos, puntos de inflexión y raíces de las derivadas, y se conectan entre ellos: ListaExt = {Extremo[f]} ListaRaiz1d = {Raíz[g]} ListaSegExt = Secuencia[Segmento[Elemento[ListaExt, i], Elemento[ListaRaiz1d, i]],Longitud[ListaExt]] ListaPinf = {PuntoInflexión[f]} ListaRaiz2d = {Raíz[h]} ListaSegPinf = Secuencia[Segmento[Elemento[ListaPinf, i], Elemento[ListaRaiz2d, i]], i, 1, Longitud[ListaPinf]] Se crean casillas de control para una visualización parcial de la figura. 6. Juego de damas Objetivos: Construcción de un tablero y fichas para jugar a las damas. Indicaciones: Para que las fichas se sitúen sólo en puntos de coordenadas enteras y evitar un escalado accidental, se fija la Atracción de Punto a la Cuadrícula y en las propiedades de la zona gráfica, en ambos ejes distancia igual a 1. Con el punto A=(-0.5, -0.5) y un número n=8 para el tamaño inicial del tablero, se puede crear la lista de cuadros blancos con Lista_b = Secuencia[Secuencia[Polígono[A + (i, j), A + (1 + i, j), A + (1 + i, 1 + j), A + (i, 1 + j)], i, Resto[j, 2], n - 1, 2], j, 0, n - 1] El comando Resto[m, k] da el resto de la división entera de m por k. Para la lista de cuadros negros, se cambia Resto[j, 2] por Resto[j + 1, 2] y el nombre lista_b por lista_n. Una vez decoradas, se puede enmarcar el tablero con un cuadrado (Polígono regular) con vértices en A + (-0.1,-0.1) y A + (n + 0.1, -0.1). Se crean doce puntos grandes para las fichas blancas y otros tantos para las negras. Referencias 1. Markus y Judith Hohenwarter (2009): Documento de Ayuda de Geogebra. Manual Oficial de la versión 3.2. http://www.geogebra.org/help/docues.pdf 2. Página del grupo XeoDin: http://www.agapemacoruna.com/xeodin 3. Material del taller: http://www.agapemacoruna.com/xeodin /huelva2011 4. Ignacio Larrosa Cañestro: Actividades con GeoGebra. http://www.xente.mundor.com/ilarrosa/GeoGebra/