Estructuras iterativas

Nivel 1 - Definición

  • Definición estructura iterativa
  • Diagrama de flujo simple mostrando los tres constructos básicos de programación estructurada: secuencia, selección e iteración

    Definición estructura iterativa

    Descripción: Una estructura iterativa o de repetición es aquella que permite que un proceso o conjunto de acciones se realice de manera cíclica (loop o bucle). Este proceso repetitivo se realiza mientras una condición lógica sea verdadera. Existen cuatro formas comunes de este tipo de estructuras: "Hacer mientras" (Do-While), "Mientras que", "Repite hasta que" y "Desde, hasta" (For-next). En este apartado sólo trabajaremos con la primera forma, pues es la que usa DescartesJS. En la figura de la izquierda se presenta la forma Do-While en un diagrama de flujo.

    Importancia: La estructura iterativa (o bucle) es fundamental en programación porque permite repetir un conjunto de instrucciones múltiples veces, lo que proporciona eficiencia, claridad y control sobre la ejecución de un programa. Un aspecto a destacar es la automatización de tareas repetitivas, pues en lugar de escribir el mismo código varias veces, una estructura iterativa ejecuta una acción repetidamente.


  • Ejemplo de uso de una estructura iterativa
  • Ejemplos de código en diferentes lenguajes de programación mostrando estructuras de control como if-else, while y secuencias

    Ejemplo de uso de una estructura iterativa

    Problema: Calcular la suma de los 100 primeros números naturales

    Algoritmo en lenguaje natural:

    • Inicio.
    • Crear una variable llamada suma (S) y asignarle el valor 0. Esta variable almacenará la suma total.
    • Crear una variable llamada contador (c) y asignarle el valor 0. Esta variable representará el número actual que se va a sumar.
    • Hacer lo siguiente (bloque do):
      Aumentar el valor del contador c en 1 (incrementarlo en 1).
      Sumar el valor del contador c a la variable suma S.
    • Mientras el valor del contador c sea menor a 100 (cc lt; 100), repetir el paso anterior.
    • Cuando el contador es igual 100, salir del bucle.
    • Mostrar el valor final de la variable suma S.

    En la figura de la derecha, mostramos el algoritmo como pseudo-código y como diagrama de flujo. Una buena práctica es hacer una prueba de escritorio; por ejemplo, toma papel y lápiz y sigue el algoritmo con los 5 primeros números naturales, la suma te debe dar 15.

    En el siguiente video, puedes observar lo sencillo que es hacerlo con DescartesJS:

Nivel 2 - Estructuras iterativas y vectores

  • Vectores
  • Retratos de Corrado Böhm y Giuseppe Jacopini, los matemáticos italianos que formularon el teorema en 1966

    Vectores

    Descripción: En ocasiones se desea utilizar una gran cantidad de variables que guardarán un tipo similar de información. En estos casos, puede resultar engorroso crear muchas variables distintas, y conviene en su lugar definir una especie de “mueble con muchos cajones”. Aunque el nombre del mueble es el mismo, cada cajón tiene un número o índice que lo identifica.

    Cuando se agrega un vector, sólo es necesario dar su nombre. Por ejemplo, el vector E. Una vez agregado, siempre se hará referencia al mismo indicando el número de cajón en cuestión. Por ejemplo, E[0] representa el primer cajón, E[1] representa el segundo cajón, y así sucesivamente. Como se puede notar, el índice de los cajones empieza siempre en cero. Cada cajón puede guardar un número o cadena de caracteres, como si fuera una variable común y corriente.


  • Ejemplo de uso de una estructura iterativa con vectores
  • Diagrama matemático mostrando la transformación de un grafo de flujo arbitrario a uno que solo usa las tres estructuras básicas

    Ejemplo de uso de una estructura iterativa con vectores

    Problema: En un archivo se tienen los datos de la estatura de un grupo de 15 estudiantes. Elabora un pseudocódigo y ejecútalo en DescartesJS para calcular la estatura promedio.

    Solución: El pseudocódigo que soluciona este problema se muestra en la figura de la izquierda. Nótese que se incluye la lectura de las estaturas, lo cual se podría hacer con controles tipo campo de texto; sin embargo, si queremos calcular la estatura promedio de los 4 000 estudiantes de un colegio, la lectura desde controles tipo campo de texto no es una opción conveniente, es aquí donde debemos recurrir a otro tipo de lectura como el uso de un vector que almacene estas estaturas, ¿cómo hacerlo?, observa el siguiente video:


Nivel 3. Lectura de datos externos

  • Lectura de datos desde un archivo (fichero) externo
  • Programador frustrado trabajando con código complejo que muestra casos donde la programación estructurada pura puede ser limitante

    Lectura de datos desde un archivo (fichero) externo

    Descripción: En el video anterior, asignamos 15 estaturas a los elementos de un vector, algo engorroso, pero válido. Pero, ¿qué hacer si tenemos los datos de 50 personas, almacenados en un archivo Excel o en un bloc de notas?, digitarlos no es una opción recomendable.

    Lectura de archivos: DescartesJS permite que podamos leer un archivo en formato txt, tal como se ve en la siguiente imagen.

    Programador frustrado trabajando con código complejo que muestra casos donde la programación estructurada pura puede ser limitante

  • Ejercicio práctico con un archivo de Excel
  • Ejercicio práctico con un archivo de Excel

    Descripción: En el ejemplo del apartado anterior, pese a usar un archivo externo, tuvimos que digitar las 15 edades. En la práctica, esos datos, usualmente, están almacenados en una base de datos, luego que los usuarios han ingresado esa información; por ejemplo, para inscribirte a este curso, ingresaste información a través de un formulario "Google", pero, ¿cómo usarlos en DescartesJS?

    Lectura de datos externos: Una forma sencilla es copiar los datos, pegarlos en un bloc de notas y guardarlos en una archivo txt, para luego leerlos en un vector de DescartesJS; sin embargo, es importante recordar cómo deben leerse datos tipo cadena de caracteres, pues estos deben ir entre comillas simples.

    En el siguiente video, explicamos cómo leer información de 50 registros en una hoja Excel y exportarlos a DescartesJS:

  • Mi segundo OIA con IA - parte 1
  • Iniciamos el segundo proyecto de aula, diseñando un chatbot con la API de pollinations, incluyendo varios modelos de lenguaje. Usaremos, además de la API de Pollinations, elementos de DescartesJS como: espacios, variables de espacio, controles tipo menú, texto y botón, funciones y vectores.

    En el siguiente video, puedes ver la explicación, paso a paso, de cómo diseñar un chatbot básico, el cual iremos mejorando en las próximas sesiones.

    TAREA 5

    Descarga este archivo de Excel y resuelve:

    Problema 1. Crea un programa en DescartesJS, que calcule:

    • ¿Cuántas personas son mayores de 40 años?
    • El nombre y edad de la persona de mayor edad
    • Cuántas mujeres son mayores de 30 años

    Problema 2. Convierte el archivo a formato PDF con iLovePDF, sube el archivo al Chatbot Investiga y formula 5 preguntas; por ejemplo, ¿cuántas mujeres tienen más de 40 años?. ¿cuántos hombres tienen nombre que empiezan por vocal? o ¿cuántas mujeres mayores de 30 años, miden menos de 1,70?, etc. Sube esta tarea con las 5 preguntas y tus opiniones sobre los resultados y el comportamiento del chatbot.

    ¡Sube la solución de los dos problemas en una carpeta llamada "Tarea 5"!