Ejercicio: 2Eva_IT2005_T4 Registrar mejores calificaciones
Propuesta de solución en Python: py_pdf, también en versión matlab: m_pdf
Se propone realizar el ejercicio mediante el uso de menú, separando las actividades, permitiendo luego añadir opciones.
Tarea: validar en el ingreso que las notas sean entre 0 y 100, y encontrar los datos de calificación más alta y más baja
Instrucciones en Python
# ICM00794-Fundamentos de Computación - FCNM-ESPOL # 2Eva_IT2005_T4 Registrar mejores calificaciones # propuesta: edelros@espol.edu.ec # Se usará menú y diccionario para cada registro # Tarea: opcion 4 con nota mas alta y mas baja # Tarea: aumentar opciones para grabar o leer archivo # Tarea: Se puede hacer también con listas y sin menu lista = [] suma = 0 opcion = '0' while not(opcion=='5'): print('1. Ingresar registro') print('2. Ingresar ponderaciones') print('3. Calcular calificaciones') print('4. Mostrar lista y extremos') print('5. Salir') opcion = input('-cual opcion: ') if (opcion=='1'): print('REGISTRO ******') nombre = input('nombre: ') leccion = int(input('leccion: ')) proyecto = int(input('proyecto: ')) examen = int(input('examen: ')) estudiante = {'nombre':nombre, 'leccion':leccion, 'proyecto':proyecto, 'examen':examen, 'calif':0} lista.append(estudiante) elif (opcion=='2'): print('PONDERACION') pondlecc = int(input('% leccion: ')) pondproy = int(input('% proyecto: ')) pondexam = int(input('% examen: ')) suma = pondlecc + pondproy + pondexam while not(suma==100): print('ponderación no suma 100') pondlecc = int(input('% leccion: ')) pondproy = int(input('% proyecto: ')) pondexam = int(input('% examen: ')) suma = pondlecc + pondproy + pondexam elif (opcion=='3'): print('CALCULAR') tamano = len(lista) if (suma==100): for i in range(0,tamano,1): suma = lista[i]['leccion']*pondlecc suma = suma + lista[i]['proyecto']*pondproy suma = suma + lista[i]['examen']*pondexam prom = suma/100 lista[i]['calif'] = prom print('Recalculadas las notas, proceder a mostrar') else: print('** las ponderaciones no son validas **') print('** volver a opcion de ponderaciones **') elif (opcion=='4'): print('LISTA') tamano = len(lista) print('nombre, leccion, proyecto, examen, calif') for i in range(0,tamano,1): texto = lista[i]['nombre'] + ', ' + str(lista[i]['leccion']) texto = texto + ', '+str(lista[i]['proyecto']) texto = texto + ', ' + str(lista[i]['examen']) texto = texto +', '+str(lista[i]['calif']) print(texto) elif (opcion=='5'): print('Gracias por usar el software...') else: print('** NO es una opcion disponible **')
resultado de algoritmo
1. Ingresar registro 2. Ingresar ponderaciones 3. Calcular calificaciones 4. Mostrar lista y extremos 5. Salir -cual opcion: 1 REGISTRO ****** nombre: juan leccion: 50 proyecto: 70 examen: 80 1. Ingresar registro 2. Ingresar ponderaciones 3. Calcular calificaciones 4. Mostrar lista y extremos 5. Salir -cual opcion: 1 REGISTRO ****** nombre: Maria leccion: 70 proyecto: 60 examen: 90 1. Ingresar registro 2. Ingresar ponderaciones 3. Calcular calificaciones 4. Mostrar lista y extremos 5. Salir -cual opcion: 2 PONDERACION % leccion: 30 % proyecto: 20 % examen: 50 1. Ingresar registro 2. Ingresar ponderaciones 3. Calcular calificaciones 4. Mostrar lista y extremos 5. Salir -cual opcion: 3 CALCULAR Recalculadas las notas, proceder a mostrar 1. Ingresar registro 2. Ingresar ponderaciones 3. Calcular calificaciones 4. Mostrar lista y extremos 5. Salir -cual opcion: 4 LISTA nombre, leccion, proyecto, examen, calif juan, 50, 70, 80, 69.0 Maria, 70, 60, 90, 78.0 1. Ingresar registro 2. Ingresar ponderaciones 3. Calcular calificaciones 4. Mostrar lista y extremos 5. Salir -cual opcion: 5 Gracias por usar el software... >>>