TERCEROS EJERCICIOS

 

las estructuras de control repetitivas

En este espacio, continúo documentando mi proceso de aprendizaje en programación, específicamente en el uso de estructuras de control repetitivas. Estas estructuras permiten ejecutar un conjunto de instrucciones varias veces, lo que las hace esenciales para la automatización de tareas en cualquier lenguaje de programación.

Durante esta unidad, he desarrollado una serie de ejercicios que abarcan desde el cálculo de un factorial hasta la implementación de un cronómetro, pasando por algoritmos que controlan flujos de datos y toman decisiones basadas en repeticiones. Cada ejercicio ha representado un reto que me ha permitido reflexionar sobre la importancia de la lógica de programación y el diseño de algoritmos eficientes.

En este blog compartiré los ejercicios desarrollados, también una reflexión detallada sobre mi experiencia de aprendizaje, los desafíos enfrentados y las estrategias utilizadas para superarlos. Además, analizaré cómo estos conocimientos pueden aplicarse en el aula de Telesecundaria, considerando la diversidad de contextos educativos y la importancia de la evaluación auténtica y formativa en entornos multigrado.


Ejercicio 1: Cálculo del factorial

Este ejercicio me permitió comprender la importancia de los bucles en la programación. Para calcular el factorial, utilicé un bucle que multiplica progresivamente los números desde 1 hasta el valor ingresado. Una de las principales complicaciones fue manejar el caso base de 0!, que es igual a 1. Además, aseguré que el programa no aceptara números negativos, ya que el factorial no está definido para ellos.

Desde una perspectiva docente, este ejercicio es útil para ilustrar cómo se pueden resolver problemas matemáticos con algoritmos. En un aula multigrado de telesecundaria, se podría adaptar la enseñanza permitiendo que los alumnos primero intenten resolver el problema manualmente y luego comparen sus resultados con los obtenidos por el programa.

Las herramientas digitales utilizadas fueron PSeInt y una hoja, para anotar todos mis errores. Su uso facilitó la detección de errores en la sintaxis y permitió una mejor estructuración del código.

En términos de evaluación auténtica, este ejercicio demuestra la utilidad de la programación en la resolución de problemas reales. Considero que fomentar este tipo de actividades en telesecundaria fortalecería el pensamiento lógico y matemático de los estudiantes.




Ejercicio 2: Adivinar un número

La implementación de este ejercicio fue un reto interesante porque implicó el uso de un bucle controlado por condición y una estructura de selección para evaluar si el número ingresado era mayor o menor que el número generado aleatoriamente. Un aspecto clave fue establecer un límite de intentos para evitar un ciclo infinito y mejorar la experiencia del usuario.

Este tipo de actividades son ideales para el aprendizaje en telesecundaria, ya que pueden convertirse en juegos interactivos que mantengan el interés de los estudiantes. En un entorno multigrado, los alumnos pueden turnarse para adivinar el número y reflexionar sobre estrategias para optimizar su búsqueda.

La mayor dificultad encontrada fue asegurar que el programa brindara una retroalimentación clara en cada intento y evitar errores lógicos en la comparación de números. Para solucionar esto, realicé varias pruebas y depuraciones.

El uso de herramientas como PSeInt fue clave para visualizar el flujo del programa y detectar errores antes de su ejecución en un entorno más avanzado.

Desde una perspectiva evaluativa, este ejercicio refuerza el pensamiento estratégico y fomenta la toma de decisiones basada en la lógica matemática. Su aplicación en la telesecundaria podría ser un recurso innovador para la enseñanza.




Ejercicio 3: Suma y media de números ingresados

Este ejercicio me permitió trabajar con bucles hasta que se cumpla una condición específica, en este caso, la introducción del número cero. La lógica detrás del cálculo de la suma y la media de los números fue sencilla, pero requirió atención al manejo de excepciones, como la posibilidad de dividir entre cero.

Una de las estrategias para superar los retos fue estructurar correctamente la inicialización de las variables antes del bucle y realizar pruebas con distintos conjuntos de números.

Desde una perspectiva docente, este ejercicio puede ser útil en la telesecundaria para enseñar conceptos de estadística básica, como la media aritmética, de una manera interactiva. Además, puede adaptarse a situaciones del mundo real, como calcular el promedio de calificaciones.

El uso de herramientas digitales permitió automatizar el proceso y visualizar de inmediato los resultados, lo que facilita la comprensión del concepto. En un entorno de telesecundaria, se podrían emplear simulaciones en computadora para reforzar este aprendizaje.

En términos de evaluación, esta actividad fomenta la comprensión de estructuras repetitivas y su aplicabilidad en situaciones prácticas. También promueve la autoevaluación y el análisis de resultados, habilidades esenciales en la educación.


Ejercicio 4: Contar números positivos, negativos y ceros

Este ejercicio me permitió reforzar la importancia de la iteración en la programación y cómo los bucles nos ayudan a procesar grandes cantidades de datos de manera eficiente. La lógica utilizada me hizo reflexionar sobre la forma en que podemos clasificar y contar datos en la vida real, como los resultados de encuestas o la distribución de calificaciones en una clase.

En el contexto educativo, este tipo de ejercicios permite a los estudiantes entender cómo estructurar algoritmos para obtener información útil de conjuntos de datos. En la enseñanza en telesecundaria, podría utilizarse un ejercicio similar para analizar resultados de evaluaciones y promover la reflexión en los estudiantes sobre su rendimiento académico.

Las principales dificultades fueron asegurar que todas las entradas se procesaran correctamente y evitar errores en la lógica de conteo. Como estrategia de solución, revisé con pruebas manuales cada posible escenario para verificar la precisión del algoritmo.




Ejercicio 5: Cálculo de pagos en 20 meses

Este problema presentó un reto interesante, ya que el pago crece exponencialmente mes con mes. Me permitió reforzar el uso de los bucles para realizar cálculos acumulativos y también comprender cómo aplicar progresiones geométricas en programación.

En telesecundaria, este tipo de ejercicios podrían utilizarse para ilustrar conceptos matemáticos como la sucesión de pagos y cómo ciertos factores económicos pueden influir en la planeación financiera. También fomenta la reflexión sobre la importancia del ahorro y la gestión financiera responsable.

Una de las complicaciones encontradas fue la validación de los datos ingresados, asegurando que el programa no permitiera valores incorrectos. Además, al tratarse de un crecimiento exponencial, los resultados podrían volverse muy grandes, por lo que fue importante verificar la capacidad del programa para manejar estos valores.




Ejercicio 6: Cálculo de sueldo semanal de N trabajadores

Este ejercicio me permitió reforzar el concepto de iteración y acumulación en programación. Fue interesante ver cómo los bucles facilitan el cálculo de sueldos para múltiples trabajadores sin necesidad de repetir código innecesariamente.

Desde la perspectiva educativa, este ejercicio ayuda a los estudiantes a comprender la importancia de la automatización en procesos administrativos, como la gestión de nómina en una empresa. En el contexto de telesecundaria, se podría plantear una actividad similar para que los alumnos analicen la importancia de la planificación financiera y el cálculo de salarios.

Una de las principales dificultades fue estructurar el bucle para que registrara correctamente las horas de trabajo de cada empleado y realizara los cálculos correctamente. Para solucionarlo, empleé pruebas con diferentes escenarios y validé la información ingresada por el usuario.




Ejercicio 7: Registro de horas de trabajo diario y cálculo de sueldo

Este problema me permitió aplicar un nivel más detallado de iteración, ya que no solo se registraban trabajadores, sino que también se desglosaban sus horas trabajadas por día. Esto supuso un reto adicional en la estructura del algoritmo, ya que requería el uso de bucles anidados.

En la enseñanza en telesecundaria, este tipo de ejercicios pueden emplearse para que los estudiantes comprendan la diferencia entre cálculos simples y compuestos, así como la importancia de registrar información detallada en procesos administrativos.

La principal complicación en este ejercicio fue la organización de la entrada de datos y la correcta acumulación de las horas de trabajo por cada empleado. Como estrategia, realicé un diagrama de flujo previo a la implementación, lo que facilitó el desarrollo del código sin errores.




Ejercicio 8: Implementación de un cronómetro

Este ejercicio fue uno de los más interesantes porque implicó la gestión del tiempo y el control de variables que cambiaban en cada iteración. Implementar un cronómetro en código me permitió reflexionar sobre la importancia de los bucles en la simulación de procesos reales, como el paso del tiempo.

En el contexto educativo, este tipo de ejercicios podrían utilizarse en telesecundaria para que los estudiantes entiendan cómo funcionan los sistemas computacionales en tiempo real, además de ayudarles a desarrollar habilidades en la gestión del tiempo.

Una de las principales dificultades fue sincronizar correctamente los incrementos en segundos, minutos y horas. Para resolverlo, empleé condicionales dentro del bucle para asegurar que los valores se actualizaran adecuadamente en cada ciclo.




Ejercicio 9: Menú interactivo con opciones

Este ejercicio me permitió comprender mejor la interacción entre el usuario y el sistema. Diseñar un menú que permita elegir entre varias opciones me ayudó a mejorar la estructura de los programas y a hacerlos más amigables para el usuario.

En telesecundaria, este tipo de actividad podría utilizarse para enseñar a los estudiantes cómo funcionan los sistemas de navegación en las aplicaciones y la importancia de diseñar interfaces claras y funcionales.

Uno de los retos fue asegurar que el usuario pudiera salir del menú cuando lo deseara sin causar errores en el programa. Como solución, implementé una opción de salida bien definida y probé diferentes entradas de usuario para verificar que el programa respondiera adecuadamente.




Ejercicio 10: Mostrar los primeros N números primos

Este ejercicio representó un reto algorítmico, ya que la identificación de números primos requiere una verificación individual de cada número. Me ayudó a reforzar el uso de bucles anidados y condicionales dentro de un mismo proceso.

En la enseñanza en telesecundaria, este ejercicio podría utilizarse para explicar a los estudiantes la importancia de los números primos en matemáticas y en la criptografía moderna, demostrando así aplicaciones prácticas de la teoría matemática en la informática.

La principal complicación fue optimizar el algoritmo para que fuera eficiente, evitando iteraciones innecesarias. Como solución, investigué y apliqué el método de optimización mediante la división hasta la raíz cuadrada del número.




Conclusión general

Trabajar con estructuras de control repetitivas me permitió desarrollar una mejor comprensión sobre cómo los bucles son herramientas fundamentales en la programación. Estos ejercicios me ayudaron a mejorar mis habilidades en el diseño de algoritmos y a reflexionar sobre la importancia de la eficiencia en los programas computacionales.

Desde una perspectiva educativa, considero que estos ejercicios pueden adaptarse a la enseñanza en telesecundaria para ayudar a los estudiantes a desarrollar habilidades en la resolución de problemas y la lógica computacional. La evaluación auténtica y formativa en este contexto es clave para garantizar que los alumnos comprendan no solo la sintaxis de los lenguajes de programación, sino también el razonamiento detrás de cada estructura utilizada.

Además, al trabajar con estos ejercicios en un ambiente de autoevaluación y coevaluación, pude identificar mis áreas de mejora y valorar el aprendizaje colaborativo. Reflexionar sobre el proceso y compartir experiencias con otros estudiantes normalistas me ha permitido consolidar mis conocimientos y prepararme mejor para aplicar estos conceptos en la enseñanza de la programación en telesecundaria.

Comentarios

Entradas más populares de este blog

Lenguajes de programación (Lenguas, lenguajes y tecnologías digitales)

Actividad 1.1 – Investigación de Apps (Historia, tipos y características)