INTRODUCCIÓN
➢ Descripción del problema a resolver...
El código que vamos a generar más adelante tiene como función llevar un
registro de calificaciones de los alumnos e ir tomando en cuenta las
asistencias para determinar si el alumno aprueba, presenta extraordinario
o recurso dependiendo de la cantidad de faltas que tiene
➢ Datos iniciales...
Para iniciar el proceso de nuestro algoritmo necesitamos las calificaciones
de los parciales, determinar los promedios y también la cantidad de faltas
necesarias para determinar si el alumno acredita, presenta extraordinario
o va directo a recurso.
➢ Los resultados a mostrar...
Determinar si el alumno aprueba, va a extraordinario o recurso
ALGORITMO
Inicio
[Link] mensaje: "Calculadora de calificaciones de alumnos".
[Link] al usuario el número de alumnos y almacenarlo en la variable
num_alumnos.
[Link] las listas nombres y calificaciones vacías.
[Link] cada alumno desde 1 hasta num_alumnos, hacer lo siguiente:
4.1. Solicitar el nombre del alumno y almacenarlo en la lista nombres.
4.2. Solicitar las calificaciones para cada criterio:
- Asistencia (asistencia).
- Trabajos (trabajos).
- Proyectos (proyectos).
- Exámenes (exámenes).
- Participación (participación).
4.3. Calcular la calificación final del alumno usando la fórmula:
- calificación = (asistencia * 0.1) + (trabajos * 0.2) + (proyectos * 0.3) + (exámenes
* 0.3) + (participación * 0.1).
4.4. Redondear el resultado a 2 decimales y almacenarlo en la lista calificaciones.
4.5. Mostrar el nombre del alumno junto con su calificación final.
[Link] un resumen de las calificaciones para todos los alumnos.
[Link] las calificaciones:
6.1. Crear un gráfico de barras donde el eje X corresponda a los nombres de los
alumnos y el eje Y a las calificaciones.
6.2. Dibujar una línea punteada para representar el límite de aprobación (60).
6.3. Agregar título, etiquetas a los ejes, y una leyenda.
6.4. Mostrar el gráfico.
Fin
CODIGO
import math
import [Link] as plt
# Función para calcular la calificación final
def calcular_calificacion(asistencia, trabajos, proyectos, examenes, participacion):
# Ponderaciones de los criterios
peso_asistencia = 0.1
peso_trabajos = 0.2
peso_proyectos = 0.3
peso_examenes = 0.3
peso_participacion = 0.1
# Calificación final
calificacion = (
(asistencia * peso_asistencia) +
(trabajos * peso_trabajos) +
(proyectos * peso_proyectos) +
(examenes * peso_examenes) +
(participacion * peso_participacion)
return round(calificacion, 2)
# Simulación de datos para varios alumnos
def generar_calificaciones(num_alumnos):
nombres = []
calificaciones = []
for i in range(num_alumnos):
# Pedir el nombre del alumno
nombre = input(f"Ingrese el nombre del alumno {i+1}: ")
[Link](nombre)
# Pedir calificaciones para cada criterio
asistencia = float(input(f"Asistencias (0-100) para {nombre}: "))
trabajos = float(input(f"Trabajos entregados (0-100) para {nombre}: "))
proyectos = float(input(f"Proyectos (0-100) para {nombre}: "))
examenes = float(input(f"Exámenes (0-100) para {nombre}: "))
participacion = float(input(f"Participación (0-100) para {nombre}: "))
# Calcular calificación final
calificacion = calcular_calificacion(asistencia, trabajos, proyectos, examenes,
participacion)
[Link](calificacion)
print(f"Calificación final de {nombre}: {calificacion}")
print("-" * 30)
return nombres, calificaciones
# Función para graficar las calificaciones
def graficar_calificaciones(nombres, calificaciones):
[Link](figsize=(10, 6))
[Link](nombres, calificaciones, color='skyblue')
[Link](y=60, color='r', linestyle='--', label='Límite de aprobación') # Límite de
aprobación
[Link]("Calificaciones de los alumnos", fontsize=16)
[Link]("Alumnos", fontsize=14)
[Link]("Calificación Final", fontsize=14)
[Link](rotation=45)
[Link](0, 100)
[Link]()
[Link](axis='y', linestyle='--', alpha=0.7)
plt.tight_layout()
[Link]()
# Función principal
def main():
print("Calculadora de calificaciones de alumnos\n" + "-"*40)
num_alumnos = int(input("Ingrese el número de alumnos: "))
nombres, calificaciones = generar_calificaciones(num_alumnos)
print("\nResumen de calificaciones:")
for i in range(num_alumnos):
print(f"{nombres[i]}: {calificaciones[i]}")
# Graficar resultados
graficar_calificaciones(nombres, calificaciones)
if _name_ == "_main_":
main()