Aspectos importantes. Antes de comenzar...
1. ¿Qué es PyGgb?
Muchos esperábamos una herramienta que nos permitiera programar construcciones geométricas en Python de forma sencilla. Los desarrolladores de GeoGebra se encargaron de ello. El tan esperado matrimonio entre Python y GeoGebra se ha hecho realidad.[b][br][br]PyGgb [/b]es una aplicación web que combina el poder de Python y GeoGebra. Es una plataforma que permite a los usuarios escribir código en Python y obtener resultados visuales mediante GeoGebra, un software de matemáticas dinámicas. PyGgb no está diseñado para enseñar GeoGebra, sino para usarlo como un motor gráfico que ayuda a visualizar los resultados de Python.[br][list][*][b]Objetivos principales[/b]:[list][*]Crear un entorno para la enseñanza de programación en Python utilizando GeoGebra como motor visual.[/*][*]No se requiere tener conocimientos avanzados de GeoGebra para su uso.[/*][*]A los usuarios se les anima a "hacerlo a la manera de Python", sin depender de los menús de GeoGebra, profundizando en la construcción y la comprensión de los algoritmos. [/*][/list][/*][/list]
2. Desarrollo de PyGgb
Esta vez, los desarrolladores de GeoGebra se encargaron de ello. El esperado matrimonio entre Python y GeoGebra ya es una realidad y, aunque en versión beta, nos promete cosas muy buenas. [br][br]El proyecto PyGgb está en continuo desarrollo y cuenta con la colaboración de la comunidad a través de plataformas como GitHub y Reddit. Los usuarios pueden reportar errores, sugerir mejoras y contribuir al código.[br][list][*][b]Enlaces de interés[/b]:[list][*]GitHub: [url=https://github.com/geogebra/pyggb]https://github.com/geogebra/pyggb[/url][/*][*]Reddit: [url=https://www.reddit.com/r/pyggb]https://www.reddit.com/r/pyggb[/url][/*][/list][/*][/list]
3. Interfaz de usuario
La interfaz de PyGgb permite a los usuarios escribir código en Python y ver los resultados inmediatamente en la vista gráfica de GeoGebra. [br][br][b]PyGgb [/b]no es más que un IDE (Integrated Development Environment) de Python que integra una librería de Python que permite interactuar con los comandos y objetos de GeoGebra. [br][br]La interfaz es minimalista y sencilla: a la izquierda, una ventana de programación (editor Python) y a la derecha, la interfaz gráfica (GeoGebra). Debajo de ella, la consola que podrá mostrar resultados no gráficos, pero que no le permite ingresar instrucciones.[br][br]Estas ventanas no son redimensionables, lo que es una pena: en una pantalla grande, nos gustaría ampliar la ventana gráfica. Es dinámico, pero no tiene menú (no es posible, por ejemplo, ocultar los ejes o la cuadrícula con un solo clic) y no es posible hacer clic con el botón derecho en los objetos (simplemente puede seleccionarlos para moverlos). Solo tenemos 3 botones: acercar, alejar y volver a la vista inicial (origen centrado en la ventana).[br][br]Es fácil entender que se trata sobre todo de programar, no (o poco) de interactuar manualmente con los objetos. [br][br][list][*][b]Estructura de la ventana[/b]:[br]Está dividida en [b]tres secciones[/b] clave:[/*][list][*][b]Editor de código[/b]: Aquí es donde se escribe el código Python, que luego se ejecuta para visualizar las salidas matemáticas.[/*][*][b]Vista gráfica de GeoGebra[/b]: Muestra los gráficos y representaciones visuales basados en las funciones matemáticas programadas.[/*][*][b]Salida por consola[/b]: Debajo de la vista gráfica, PyGgb también incluye una consola que muestra el resultado de la ejecución del código Python.[/*][/list][/list]Para probarlo, sólo tienes que ir a esta dirección web: [url=https://www.geogebra.org/python/][b]https://www.geogebra.org/python/[/b][/url][br][br]
4. Posibilidades didácticas
PyGgb tiene un alto potencial para ser utilizado en entornos educativos, ya que permite a los profesores enseñar conceptos matemáticos complejos mediante la combinación de la programación en Python y la visualización gráfica con GeoGebra. Los estudiantes pueden beneficiarse de la representación visual de las matemáticas y de la retroalimentación inmediata.[br][list][*][b]Ejemplos de uso en el aula[/b]:[list][*]Resolver ecuaciones algebraicas y visualizar las soluciones.[/*][*]Graficar funciones y analizar sus propiedades (derivadas, intersecciones, etc.).[/*][*]Modelar problemas matemáticos aplicados y ver las soluciones en tiempo real.[/*][*](...)[/*][/list][/*][/list]
5. ¿Qué es Python y por qué ha sido el elegido para PyGgb?
En la actual era de la [i][b]Inteligencia Artificial[/b][/i] ([i][b]IA[/b][/i]) y el procesamiento masivo de datos ([i][b]BigData[/b][/i]), la elección del lenguaje de programación con el que vas a programar tus algoritmos o con el que vas a aprender a programar es una decisión estratégica que puede marcar la diferencia entre el éxito y el estancamiento. [br][br]En este escenario, [url=https://0xword.com/es/libros/66-libro-python-pentesters.html]Python[/url] se destaca como el líder indiscutible, superando a otros lenguajes en virtud de sus características únicas y su capacidad para abordar los desafíos más complejos que se van abriendo día a día con la aparición de nuevas tecnologías, y algoritmos más complejos.[br][br][b]¿Python es un lenguaje nuevo?[br][/b][br]Aunque pueda sorprender a algunos, [url=https://0xword.com/es/libros/66-libro-python-pentesters.html]Python[/url] no es un recién llegado al mundo de la programación. Su desarrollo comenzó a finales de los [i][b]80[/b][/i], y la primera versión, [i][b]Python 0.9.0,[/b][/i] se lanzó en [i][b]1991[/b][/i]. A lo largo de las décadas, este lenguaje ha evolucionado constantemente, adaptándose a las cambiantes necesidades de la tecnología.[br][br]A pesar de su historia extensa, [i][b]Python[/b][/i] mantiene una frescura y relevancia notables debido a sus actualizaciones regulares, a una comunidad activa y a su continua adopción en campos pioneros como la [url=https://geekshubsacademy.com/producto/ia-big-data/?utm_source=chemaalonso&utm_medium=articulo-profes-oct&utm_campaign=ia_online2023]Inteligencia Artificial y el Big Data[/url].[br][br][b]¿Por qué Python lidera como lenguaje preferido para la IA?[br][/b][br][i][b]Python[/b][/i] ha emergido como el lenguaje insignia en el ámbito de la [i][b]Inteligencia Artificial (IA)[/b][/i], y esta prominencia se sustenta en sus características distintivas que lo diferencian de otros, y han hecho que sea la base para nuevos [url=https://www.elladodelmal.com/2023/09/mojo-el-lenguaje-para-programar.html]lenguajes específicos para IA, como el Lenguaje Mojo que es un superconjunto de Python[/url].[br][br][list][*][b]Claridad del código:[/b] [i]La legibilidad de la sintaxis de Python permite una rápida implementación de algoritmos complejos, convirtiéndolo en la elección ideal para el desarrollo ágil en múltiples campos, entre ellos la IA.[/i][/*][/list][list][*][b]Ecosistema:[/b] [i]Su ecosistema de librerías especializadas brinda a los desarrolladores herramientas poderosas.[/i][/*][/list][list][*][b]Flexibilidad[/b]: [i]La versatilidad de Python es evidente en su capacidad para adaptarse a una variedad de enfoques, desde el procesamiento de lenguaje natural hasta la visión por computadora.[/i][/*][/list][br]Además, su activa comunidad y el respaldo de la industria fomentan la colaboración y la innovación continua, consolidando a [url=https://0xword.com/es/libros/66-libro-python-pentesters.html]Python[/url] como el lenguaje preferido para aquellos que buscan liderar en la revolución de la [i][b]Inteligencia Artificial[/b][/i].[br][br][url=https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoAczHqnWNlOL1jfQFmehfPBwCD7CVBLaEh7GKvBjaTUGPucjCyxUXKdY32X4WFXXfatNN8fmPbCMSkorj9_ictzL4can8SjCAPO8cwumKzIMivWqwMht1BBohyJe590B7NhRNP7DH0maTbRvSkHTxuRLeOtSCQmI0g5YeZsEN8j2AI9S0WRLG/s900/Python_Anaconda.jpg][img]https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoAczHqnWNlOL1jfQFmehfPBwCD7CVBLaEh7GKvBjaTUGPucjCyxUXKdY32X4WFXXfatNN8fmPbCMSkorj9_ictzL4can8SjCAPO8cwumKzIMivWqwMht1BBohyJe590B7NhRNP7DH0maTbRvSkHTxuRLeOtSCQmI0g5YeZsEN8j2AI9S0WRLG/w640-h420/Python_Anaconda.jpg[/img][/url][br][i]Figura: Lenguajes de programación más populares en la encuesta hecha por Anaconda[br][/i][br]El equipo de la popular herramienta de [i][b]Machine Learning[/b][/i] [url=https://www.anaconda.com/]Anaconda[/url], hizo una encuesta global a sus usuarios sobre los lenguajes de programación que utilizaban, y por supuesto, [i][b]Python[/b][/i] salió como el más popular.[br][br][i][b]Python[/b][/i] es el lenguaje principal utilizado en [b][i]PyGgb[/i][/b], y se selecciona por todo lo expuesto, destacando su facilidad de uso y flexibilidad. Las funciones matemáticas programadas en Python se visualizan de inmediato utilizando GeoGebra, lo que ofrece una poderosa combinación para enseñar conceptos tanto de programación como de matemáticas.[br][br][list][*][b]Características de Python[/b]:[/*][list][*]Interpretado: El código se ejecuta línea por línea, lo que facilita la depuración y el aprendizaje.[/*][*]Legible: La sintaxis clara y limpia de Python lo hace ideal para principiantes.[/*][/list][/list]
6. Documentación
La documentación sobre PyGgb es escasa, aunque contamos con dos fuentes importantes en diferentes idiomas. [br][list][*][b]Documentación disponible[/b]:[list][*]Alemán: [url=https://www.geogebra.org/m/b2bjnsqz]https://www.geogebra.org/m/b2bjnsqz[/url][/*][*]Español: [url=https://www.geogebra.org/m/mvcy7r23]https://www.geogebra.org/m/mvcy7r23[/url][/*][/list][/*][/list]
7. Salidas de PyGgb
La aplicación PyGgb permite obtener salidas visuales a través de GeoGebra que representan conceptos matemáticos complejos de forma gráfica. Estas salidas incluyen figuras y construcciones geométricas, gráficas de funciones, tangentes, derivadas, áreas bajo la curva y más.[br][list][*][b]Tipos de salida[/b]:[list][*]Funciones matemáticas.[/*][*]Construcciones y representaciones geométricas: visualización de puntos, rectas, polígonos...[/*][/list][/*][/list]
8. La aportación de Python a GeoGebra
Conocer los comandos y funciones que permiten crear e interactuar con objetos gráficos es un primer paso importante, y volveremos sobre esto más adelante. Pero, por supuesto, lo más importante aquí, el poder de PyGgb, es poder usar el lenguaje Python para crear una construcción: bucles, condicionales, el uso de funciones... las posibilidades son infinitas.[br][br]Para empezar, es importante recordar que estamos en un entorno Python, funciones como [b]sqrt(), floor() o randint() [/b]tendrán que ser llamadas en sus respectivas librerías antes de poder ser usadas.[br][br]He aquí un ejemplo de programa (obtención del triángulo de Sierpinski por el método del juego del caos) que puede utilizarse desde 4ºESO en adelante, aproximadamente.[br][br][b][color=#ff0000]Triángulo de Sierpinski. Juego del caos [br][/color][/b][color=#0000ff]# Inspiración: https://es.wikipedia.org/wiki/Juego_del_caos[br][br]# Importamos librerías[br]from random import randint[br]from time import sleep[br] [br]# Vértices del triángulo: valores de sus coordinadas y puntos[br]xA,yA,xB,yB,xC,yC = -8,0,8,0,0,14[br] [br]A = Point(xA,yA,size=4,color="red")[br]B = Point(xB,yB,size=4,color="red")[br]C = Point(xC,yC,size=4,color="red")[br][br]# Lógica [br]xM = randint(-8,8)[br]yM = randint(0,14)[br] [br]def nuevopunto(x,y):[br] n=randint(1,3)[br] if n==1:[br] xnew = (xA+x)/2[br] ynew = (yA+y)/2[br] elif n==2:[br] xnew = (xB+x)/2[br] ynew = (yB+y)/2[br] else:[br] xnew = (xC+x)/2[br] ynew = (yC+y)/2 [br] return (xnew,ynew)[br][br]# Definimos el número de puntos[br]for i in range(1000) : [br] xM,yM = nuevopunto(xM,yM)[br] M = Point(xM,yM,size=4,color="red")[br] sleep(0.02)[br][/color]
9. Familiarizándonos con la herramienta
Pronto te darás cuenta de lo fácil que es utilizar esta herramienta. Es perfectamente posible realizar esta construcción utilizando Python en un IDE estándar y la biblioteca [b]Matplotlib[/b], por ejemplo. [br][br]Pero, en este caso, el programa se vuelve rápidamente más complejo para los estudiantes que son nuevos en Python. PyGgb de momento no ha incorporado las múltiples pero a la par puede que engorrosas bibliotecas de visualización disponibles en Python para programadores avanzados, [br][br]PyGgb permite obviamente el uso de un gran número de librerías de Python. Las principales son: [br][b]Array, Bisect, Collections, Copy, Dateline, Functools, Image, Itertools, Math, Numbers, Platform, Sys, Random, RE, Signal, String, Textwrap, Time, Webbrowser.[br][/b],[br]Este libro GeoGebra, en español, de José Pérez, muestra muchos usos posibles para estas bibliotecas y sus funciones: [url=https://www.geogebra.org/m/mvcy7r23]https://www.geogebra.org/m/mvcy7r23[/url][br][br]La dificultad de familiarizarse con lo que promete ser una gran herramienta para abordar la programación en secundaria desde un nuevo punto de vista es saber qué funciones o comandos vamos a poder utilizar.[br][br][list][*]Empezando por lo más sencillo: ¿cómo se crea un punto? [/*][/list]Con GeoGebra, para situar un punto con unas coordenadas dadas, utilizamos el comando A = (3,1). [br][br]Esto no funciona aquí porque el mismo comando en Python se utiliza para definir una tupla. Existe por tanto un conflicto entre el lenguaje de programación y ciertos comandos de GeoGebra. [br][br]En este caso concreto, se utiliza una función específica para crear un punto: A = Punto(3,1). Es sencillo, pero [color=#ff7700][b]el problema es que actualmente no hay documentación que enumere los comandos de GeoGebra que se pueden utilizar en PyGgb o las funciones disponibles en esta biblioteca PyGgb.[/b][/color][br][br]Pero hay ejemplos de programas que muchos compañeros van compartiendo, además de los que incorpora la propia PyGgb. Algunos de estos son bastante impresionantes. Para acceder a estos últimos, vaya al menú 'Archivo', luego 'Abrir'. En 'Ejemplos', tenemos acceso a una docena de archivos, algunos bastante complejos, otros más elementales y algunos que no funcionan. Destacar el archivo de arriba llamado 'Animación de malabares'.
9. Comandos más habituales. Comandos de Geogebra que funcionan
Revisando estos programas, puedes hacerte una idea de lo que es posible y crear un pequeño glosario de comandos. Eso es lo que yo hecho, lo que recomiendo, y lo que han hecho la mayoría de los compañeros que han comenzado a usar esta herraienta. [br][br]También he probado una serie de comandos de GeoGebra para ver si eran aceptados como funciones en PyGgb. Aquí están los resultados de estas pruebas que, aunque están lejos de ser exhaustivas, ahorrarán tiempo a cualquiera que quiera empezar. Para los propósitos de este artículo, sólo he probado los comandos que interactúan con la ventana gráfica (2D).[br][br]Para empezar, aquí hay algunos comandos de GeoGebra que los usuarios habituales del software estarán contentos de encontrar. Una vez más, el objetivo aquí no es darle una visión completa de las funciones disponibles de PyGgb, sino darle una visión general para que pueda empezar a usarlo. Estos comandos están en inglés y no entraré en detalles aquí sobre cómo usarlos. [br][br]El sitio web https://wiki.geogebra.org/en/Commands los enumera y explica todos (en su uso en GeoGebra: puede haber diferencias en PyGgb). Aquí tienes una lista de los [b]principales comandos de GeoGebra[/b] que funcionan en PyGgb y que son útiles para tareas matemáticas y visualización:[br][br][list][*][color=#0000ff][b]Comandos[/b]:[br][/color][/*][/list]Point(x, y): Crea un punto en las coordenadas específicas.[br][br]Segment(A, B): Dibuja una línea entre los puntos [b]A[/b] y [b]B[/b].[br][br]Line(A, B): Dibuja una línea entre los puntos [b]A[/b] y [b]B[/b].[br]Line(a,b) #pendiente y ordenada en el origen[br][br]Circle(A, 3): Dibuja un círculo con el centro en el punto [b]A[/b] y un radio de 3 unidades.[br]Circle(A, 5,color="green",line_thickness=10)[br][br]ZoomIn(minX, minY, maxX, maxY): Ajusta el zoom de la vista gráfica[br]ZoomIn(-9, -2, 9, 12)[br]ZoomIn() # Reset[br]time.sleep(0.5)[br]ZoomIn(0.4)[br][br]Polygon(A, B, C): Dibuja un polígono definido por los puntos [b]A[/b], [b]B[/b] y [b]C[/b]:[br]Polygon(A,B,n) #polígono regular n lados[br][br]Vector(A,B)[br][br]Intersect(f, g): Encuentra los puntos de intersección entre dos funciones, [b]f(x)[/b] y [b]g(x)[/b].[br][br]Slider(min, max, step): Crea un deslizador interactivo en la vista gráfica, que puede ser usado para cambiar los valores de una variable en tiempo real.[br]a=Slider(-10, 10, increment=0.1)[br][br]Ellipse(A,B,2)[br][br]Parabola(a, b, c) #representa la parábola cuya ecuación es y=ax²+bx+c[br][br]import math[br]D = Rotate(A, math.pi/6).with_properties(color=’green’)[br] # el centro del giro es A[br] # pi debemos importarlo de la librería math[br] # with_properties() nos permite modificar los atributos del punto[br][br]Intersect(parabola, line,2) # 2 objetos ggb y el número de puntos de la intersección[br][br]Distance(A,B)[br][br]De momento, los siguientes comandos, bastante habituales para los que somos usuario de Geogebra, están ausentes en PyGgb en su forma conocida en GeoGebra:[br]– Ray()[br]– Midpoint()[br]– Hyperbola()[br]– Angle()[br]– CircularArc()[br][br]Sin duda hay muchas más. Pero como esta es una versión beta, también podemos esperar que estas funciones se activen más adelante.[br][br][b]Algunas funciones específicas de PyGgb[br][/b]PyGgb incluye una librería específica para GeoGebra que tiene sus propias funciones con argumentos que pueden usarse para modificar ciertos atributos de los objetos creados.[br][br]Ya he mencionado la función Point(), que es imprescindible. Podemos modificar algunos de los atributos del punto:[br]A = Point(1,2, color="green", size=9,is_visible=False)[br] # Tamaño entre 1 y 9[br] # Color 'verde' o RGB en hexadecimal '#00FF00' o '#F08' o [0.5,0.2,0.8].[br][br]Del mismo modo, para las funciones Circle(), Line() o Segment(), puede cambiar los atributos del objeto. [br][br]Por ejemplo:[br]Segment(A,B,line_thickness=10, color="green")[br][br]También es posible modificar o recuperar un atributo de un objeto:[br]A.x = 3 establece la abscisa del punto A en 3 o la recupera. Por ejemplo: print(A.x)[br]A.color = «rojo» permite fijar el color del punto A en rojo o recuperarlo. Por ejemplo: print(A.color)[br]A.is_visible = False se utiliza para ocultar el punto A.[br][br]============[br]A = Point(-3, -3)[br]@A.when_moved[br][br]def simetrico():[br] B = Point(-A.x, A.y)[br] return (B)[br][br]simetrico()[br][br]Este código crea un punto A en la posición (-3, -3), y luego define una función espejo() que refleja el punto A sobre el eje Y (es decir, calcula el opuesto de la coordenada X). Cada vez que se mueve el punto A, la función genera el punto reflejado B y lo visualiza en el gráfico.[br][br]La instrucción @A.when_moved se utiliza para esperar a que el punto A se mueva antes de ejecutar la parte del programa que le sigue. Las funciones utilizadas después de esta instrucción también deben definirse después de ella.[br][br]Este pequeño programa coloca un punto A y su simetría con respecto al eje y. El desplazamiento (manual) de A «atrae» el desplazamiento de B.[br]============[br][br]Muchos de nosotros estamos utilizando esta nueva herramienta de programación que está a nuestra disposición.[color=#ff7700] [b]No es perfecta, carece de documentación real y de una interfaz gráfica más elaborada. Pero se trata de una versión beta. Si PyGgb tiene éxito, podemos esperar mejoras y la integración de algunos de los comandos que le faltan a GeoGebra.[br][/b][/color][br]Por lo tanto, seguiremos de cerca el desarrollo de PyGgb; mientras tanto, ya hay algo para disfrutar e introducir a nuestros alumnos a la programación con Python en un entorno familiar.[br]
9. Cómo profundizar en PyGgb e integración en el aula
PyGgb es una herramienta muy versátil, y puedes aprovechar al máximo sus capacidades combinando lo mejor de Python y GeoGebra. [br][br]Aquí hay algunas recomendaciones para profundizar en su uso:[br][list=1][*]Aprende GeoGebra a fondo.[/*][*]Explora más comandos de Python.[/*][*]Colabora y participa en la comunidad.[/*][*]Aplica PyGgb en proyectos educativos.[/*][/list]Para maximizar el impacto de PyGgb en entornos educativos, aquí tienes algunas sugerencias prácticas para su integración en el aula:[br][list=1][*]Introducción a la programación.[/*][*]Lecciones interactivas de matemáticas.[/*][*]Proyectos colaborativos.[/*][/list]
Práctica nº1
Entrenamiento introductorio a Python
[b]Abre una ventana de PyGgb, copia, pega, modifica, ejecuta y guarda el archivo .py en cada una de las secciones.[/b][br][br]Aparcerán una serie de pequeños códigos y snippets para introducir Python, enfocados en problemas matemáticos. [br][br]El contenido está organizado por apartados, empezando con variables, operaciones matemáticas básicas, y luego avanzando a condicionales y bucles, todo con ejemplos prácticos.
[b]1. Variables y Operaciones Matemáticas Básicas[br][br][/b][color=#0000ff][b]Explicación: [/b][/color][br]En Python, puedes trabajar con varios tipos de variables numéricas:[br][list][*][b]Enteros ([code]int[/code])[/b]: Números sin parte decimal (ej. 5, -3, 100).[/*][*][b]Decimales ([code]float[/code])[/b]: Números con parte decimal (ej. 3.14, -2.5).[/*][*][b]Complejos ([code]complex[/code])[/b]: Números en forma de a+bj, donde j es la unidad imaginaria (ej. 2+3j).[/*][/list][br][color=#0000ff][b]Ejemplo: Tipos de variables numéricas y Operaciones matemáticas básicas[/b][/color][br][br][i]# Tipos de variables numéricas[br]import math[br][br]# Entero (int)[br]a = 10[br][br]# Decimal (float)[br]b = 3.5[br][br]# Operaciones matemáticas básicas[br]suma = a + b[br]resta = a - b[br]multiplicacion = a * b[br]division = a / b[br]potencia = a ** 3[br]raizc = math.sqrt(a)[br][br]print(f"Entero a: {a}, Decimal b: {b}")[br]print(f"Suma: {suma}, Resta: {resta}, Multiplicación: {multiplicacion}, División: {division}")[br]print(f"Potencia: {potencia}, Raíz cuadrada: {raizc}")[br][/i][br][br][br][br]
1. Serie de polígonos regulares
Descripción
En este vídeo, exploro cómo generar una serie de polígonos regulares utilizando GeoGebra y Python. Es una forma excelente de mostrar la simetría y las propiedades geométricas de estos polígonos de manera visual y dinámica.
Vídeo
Ventana PyGgb
Código fuente Python
# ------ · ------ · ------ MatemáTICas: 1,1,2,3,5,8,13,... ------ · ------ · ------ #[br][br]# Librerías[br]import math[br]import time[br]import random[br][br]# Paleta de colores[br]paleta_de_colores= ['aqua','azure','blue','cyan','coral','gold','green','grey','lightgrey','magenta','maroon','olive','orange','pink','purple','red','skyblue','violet'] [br][br]# Configuración[br]origen_coord=Point(0, 0,is_visible=False)[br]fondo=Circle(origen_coord, 500)[br]fondo.color='black'[br]fondo.opacity=0[br][br]# Función principal[br]def poligonos_regulares_menores_de_n_lados(A,B,n):[br] for numero_de_lados in range(3,n):[br] #poligono_regular_n_lados=Polygon(A,B,numero_de_lados,opacity=0,line_thickness=8,color='white')[br] poligono_regular_n_lados=Polygon(A,B,numero_de_lados,opacity=0,line_thickness=8,color=random.choice(paleta_de_colores))[br] time.sleep(0.4)[br] [br]# Serie[br]fondo.opacity=1[br]A=Point(-4,-3,is_visible=False)[br]B=Point(-3,-3,is_visible=False)[br]time.sleep(2)[br]poligonos_regulares_menores_de_n_lados(A,B,4)[br]time.sleep(1)[br][br]C=Point(-2,-3,is_visible=False)[br]D=Point(-1,-3,is_visible=False)[br]poligonos_regulares_menores_de_n_lados(C,D,5)[br]time.sleep(1)[br][br]E=Point(0,-3,is_visible=False)[br]F=Point(1,-3,is_visible=False)[br]poligonos_regulares_menores_de_n_lados(E,F,6)[br]time.sleep(1)[br][br]G=Point(2,-3,is_visible=False)[br]H=Point(3,-3,is_visible=False)[br]poligonos_regulares_menores_de_n_lados(G,H,7)[br]time.sleep(1)[br][br]I=Point(4.5,-3,is_visible=False)[br]J=Point(5.5,-3,is_visible=False)[br]poligonos_regulares_menores_de_n_lados(I,J,8)[br]time.sleep(1)[br][br]K=Point(7,-3,is_visible=False)[br]L=Point(8,-3,is_visible=False)[br]poligonos_regulares_menores_de_n_lados(K,L,9)[br]time.sleep(1)[br][br]# ------ · ------ · --- Geogebra + Python --- · ------ · ------ #
Práctica nº1. Entre primos anda el juego
Práctica nº 1. Entre primos anda el juego
[b][color=#0000ff]Deberás elaborar un archivo .py en PyGgb, escribiendo el código fuente necesario para dar respuesta a estas preguntas:[/color][/b][br][br][b]# Pregunta 1: ¿Podemos crear una función que nos diga si un número es o no primo?[br][/b][br][b]# Pregunta 2: ¿El número de primos en cada decena, centena,... en un rango determinado varía o se mantiene?[br][/b]Realiza una función para encontrar números primos en un rango o intervalo determinado y luego lo sacas por pantalla y los cuentas.[br][br][b]# Pregunta 3: ¿Serías capaz de conectar esto con un histograma de frecuencias (barra de base la amplitud del intervalo o rango y altura el total de números primos en él.[/b][br]Elaboración del histograma de frecuencias, en intervalos de amplitud=10 (decenas), haciendo uso de las dos funciones anteriores. [br]
Propuesta de solución. Tras trabajar en la resolución, individualmente y en grupo, echad un vistazo y comparad vuestra solución con esta que se plantea aquí..
Referencias
Para obtener más detalles sobre PyGgb, se proporciona información de contacto de los desarrolladores, así como enlaces a materiales adicionales y referencias:[br][br][list][*][b]Enlaces útiles[/b]:[br][list][*]Material adicional sobre PyGgb en español: [url=https://www.geogebra.org/m/mvcy7r23]https://www.geogebra.org/m/mvcy7r23[/url][/*][*]Playlist de YouTube con tutoriales: [url=https://www.youtube.com/playlist?list=PLD87Aneh2AhyU-Ac3r368pI0VThAU7CYh]https://www.youtube.com/playlist?list=PLD87Aneh2AhyU-Ac3r368pI0VThAU7CYh[/url][/*][*][url=https://union.fespm.es/index.php/UNION/article/view/1569/1198]Artículo en revista UNIÓN FISEM [/url][url=https://union.fespm.es/index.php/UNION/article/view/1569/1198]https://union.fespm.es/index.php/UNION/article/view/1569/1198[/url][/*][*][url=https://union.fespm.es/index.php/UNION/article/view/1569/1198]PyGgb: una aplicación web para combinar GeoGebra y Python[list][*]DOI: 10.13140/RG.2.2.29819.32804[/*][/list][list][*]Conferencia: ICMET 2024[/*][/list][/url][/*][/list][/*][*][b]Correos de contacto[/b]:[br][list][*][url=mailto:michael@geogebra.org]michael@geogebra.org[/url][/*][*][url=mailto:flo.derflinger@gmail.com]flo.derflinger@gmail.com[/url][/*][*][url=mailto:kovzol@gmail.com]kovzol@gmail.com[/url][/*][*][url=mailto:ben.north@tcd.ie]ben.north@tcd.ie[/url][/*][/list][/*][/list]