public static void Main(string[] args)
for (int unidad = 1; unidad <= 3; unidad++)
Console.WriteLine($"Unidad {unidad}");
int asistencia = LeerCalificacion("de asistencia a clases y participacion");
int trabajos = LeerCalificacion("de trabajos entregados en tiempo y forma");
int listaCotejo = LeerCalificacion("de lista de cotejo (examen)");
totalAsistencia += asistencia;
if (asistencia >= 80 && trabajos >= 80 && listaCotejo >= 80)
Console.WriteLine($"Unidad {unidad}: Aprobado.");
Console.WriteLine($"Unidad {unidad}: No aprobado.");
ProcesarRecuperacion(asistencia, trabajos, listaCotejo);
int promedioAsistenciaTotal = totalAsistencia / 3;
Console.WriteLine($"Promedio de asistencia total: {promedioAsistenciaTotal}%");
if (promedioAsistenciaTotal >= 80)
Console.WriteLine("Tienes el 80% de asistencia total, puedes solicitar el examen extraordinario.");
ProcesarExamenExtraordinario();
Console.WriteLine("No tienes el 80% de asistencia total, no puedes solicitar el examen extraordinario.");
static int LeerCalificacion(string tipo)
Console.Write($"Ingresa la calificacion {tipo} (0-100): ");
calificacion = int.Parse(Console.ReadLine());
while (calificacion < 0 || calificacion > 100)
Console.Write("Entrada invalida. Ingresa un valor numerico entre 0 y 100: ");
calificacion = int.Parse(Console.ReadLine());
static void ProcesarRecuperacion(int asistencia, int trabajos, int listaCotejo)
Console.WriteLine("No aprobado. Puedes solicitar un examen de recuperacion.");
Console.Write("Ingresa la calificacion del examen de recuperacion (0-100): ");
recu = int.Parse(Console.ReadLine());
Console.WriteLine("Recuperacion aprobada.");
Console.WriteLine("No aprobado en la recuperacion.");
Console.WriteLine("No tienes el 80% de asistencia para solicitar un examen de recuperacion.");
static void ProcesarExamenExtraordinario()
Console.Write("Ingresa la calificacion del examen extraordinario (0-100): ");
extra = int.Parse(Console.ReadLine());
while (extra < 0 || extra > 100)
Console.Write("Entrada invalida. Ingresa un valor numerico entre 0 y 100: ");
extra = int.Parse(Console.ReadLine());
Console.WriteLine("Examen extraordinario aprobado.");
Console.WriteLine("No aprobado en el examen extraordinario.");