Ciclo repeat en su esplendor

Estructura repetir ("repeat") Esta estructura se ejecuta hasta que se cumpla una condición determinada que se comprueba hasta el final del bucle. Se ejecuta al menos una vez. La estructura repetir (repeat) se ejecuta hasta que se cumpla una condición determinada que se comprueba al final del bucle.


Ciclo Repeat
Repeat

Hacer un algoritmo que permita la captura del nombre y tres calificaciones porcentuales de 8 grupos de nuevo ingreso de la carrera de IIS, cada grupo tiene una cierta cantidad de alumnos, el primer parcial tiene un valor de 50%, el segundo de 30% y el tercero de 20%. Obtener:
a) Imprimir el número de grupo, promedio general por grupo y el nombre del alumno de mayor promedio en cada grupo.
b) Que grupo es el que tiene el menor promedio.
c) Imprimir el número de reprobados que existen en total por todos los grupos.

Pseudo código

Definir variables
NOMBRE, ALUMAYPROM: Alfabético [30]
PARC1, PARC2, PARC3, TOTALREPRO, GRUMENPRO, CONTAGRUP: Entero
PROMEDIO, PROMGRUPO, PROMGRALGRUPO: Real
DESEA: Alfabético [1]
CONTALUM: Entero
CONTAGRUP = 0, TOTALREPRO = 0
REPEAT
CONTAGRUP = CONTAGRUP + 1
PROMGRAL = 0, CONTALUM = 0, MAYPROM = 0
REPEAT
Solicitar los tres parciales
Leer PARC1, PARC2, PARC3
PROMEDIO = PARC1 * 0.5 + PARC2 * 0.3 + PARC3 * 0.2
PROMGRAL = PROMGRAL + PROMEDIO
CONTALUM = CONTALUM + 1
IF PROMEDIO > MAYPROM THEN
MAYPROM = PROMEDIO
ALUMAYPROM = NOMBRE
ENDIF
IF PROMEDIO < 60 THEN
TOTALREPRO = TOTALREPRO + 1
ENDIF
Preguntar ¿desea capturar otro alumno?(s/n)
Leer DESEA
UNTIL DESEA = n
PROMGRALGRUPO = PROMGRAL / CONTALUM
Imprimir CONTAGRUP, PROMGRALGRUPO, ALUMAYPROM
IF CONTAGRUP = 1 THEN
GRUMENPROM = PROMGRALGRUPO
ELSE
IF PROMGRALGRUPO<GRUMENPROM THEN
GRUMENPROM = PROMGRALGRUPO
NOMGPO = CONTAGRUPO
ENDIF
ENDIF
UNTIL CONTAGRUP = "n"
Imprimir el grupo de menor promedio es ; NOMGPO
Imprimir el numero de reprobados es; NUMREPRO
Fin 

Código Visual Básic


Option Explicit
Private Sub form_load()
Show
Dim nombre As String, alumayprom As String
Dim parcial1 As Single, parcial2 As Single Dim contagrup As Integer
Dim grumenprom As Integer, totalrepro As Integer
Dim promedio As Single, desea As String, contalum As Integer
Dim promgrupo As Single Dim promgralgrupo As Single, nomgrupo As Integer
Dim mayprom As Single, parcial3 As Single
contagrup = 0: totalrepro = 0
Do
contagrup = contagrup + 1
alumayprom = 0
contalum = 0: mayprom = 0: promgrupo = 0
Do
nombre = InputBox("captura el nombre del alumno:")
parcial1 = InputBox("captura el primer parcial:")
parcial2 = InputBox("captura el segundo parcial:")
parcial3 = InputBox("captura el tercer parcial:")
promedio = parcial1 * 0.5 + parcial2 * 0.3 + parcial3 * 0.2
promgrupo = promgrupo + promedio
contalum = contalum + 1
If promedio > mayprom Then
mayprom = promedio
alumayprom = nombre
End If
If promedio < 60 Then
totalrepro = totalrepro + 1
End If
desea = InputBox("Desea capturar otro alumno(s/n):")
Loop Until desea = "n"
promgralgrupo = promgrupo / contalum
Print "el numero de alumnos es"; contagrup
Print "el promedio del grupo es"; promgralgrupo
Print "el alumno de mayor promedio es"; alumayprom
If contagrup = 1 Then
grumenprom = promgralgrupo
Else
If promgralgrupo < grumenprom Then
grumenprom = promgralgrupo
nomgrupo = contagrup
End If
End If
Loop Until contagrup = 8
Print "el grupo de menor promedio es"; grumenprom
Print "el numero de reprobados es"; totalrepro
End Sub

Comentarios