Introducción a la Programación.: Algoritmo con estructuras repetitivas

miércoles, 2 de marzo de 2022

Algoritmo con estructuras repetitivas

 Análisis del problema y diseño de un algoritmo, utilizando estructuras repetitivas 

Supongamos que necesitamos diseñar un algoritmo que permita a un profesor calcular el promedio de notas de cada una de sus secciones asignadas en un periodo académico.

Al principio del proceso se desconoce de cuántas secciones se trata, y también desconoce la cantidad de alumnos inscritos por cada sección a cargo del profesor.

1)      Análisis del problema

Problema: Calcular promedio de notas por sección.

Datos:

  •    Datos Fijos o Constantes: Ninguno
  •    Datos que debe dar el usuario: Las notas de cada alumno por sección

Operaciones a realizar:

Por cada sección se van acumulando las notas de cada estudiante, una vez sumadas todas, se divide entre la cantidad de alumnos totalizados.

Salida:

El promedio calculado por cada sección

 

2)      Algoritmo

 Algoritmo PromediandoSecciones

Declaración

Variables

   HaySec: Carácter

   Alumnos, i: Entero

   Nota, Suma, Promedio: Real

Inicio

  Escribir “Algoritmo que procesa notas por secciones, para promediarlas”

  Escribir “Indique la letra s, si tiene sección para procesar, sino introduzca cualquier tecla”

  Leer HaySec

  Mientras (HaySec = ´s´) Hacer

   Sumaß 0

   Promedio ß0

   Escribir “Cuántos alumnos tiene la sección a procesar”

   Leer Alumnos

   Para i= 1 Hasta Alumnos inc 1

      Escribir “Introduzca nota del alumno #”, i

      Leer Nota

      SumaßSuma + Nota

   Fin Para

   Promedio ß suma/Alumnos

   Escribir “El promedio de la sección procesada es de “, Promedio, “ ptos.”

   Escribir “Existe otra sección para procesar”

   Leer HaySec

Fin Mientras

Fin

 

Comentario: Fíjese como podemos obtener algoritmos con ciclos anidados, es decir, un ciclo dentro de otro ciclo. Tal es el caso del ciclo de los alumnos (Para), que tiene por objeto pedir en cada iteración, la nota por alumno para sumarla. Este ciclo está dentro del ciclo de las secciones (Mientras), que tendrá una iteración por cada sección existente.

 

En cada iteración del ciclo de las secciones, se tendrán tantas iteraciones como alumnos se hayan especificado en la entrada de datos.

HaySec es la variable que controla las iteraciones en el ciclo Mientras, y la variable i, controla las iteraciones en el ciclo Para.