Ejercicio: 1Eva_IIT2005_T3 Entrenamiento atleta: promedios
Propuesta de solución en Python: py_pdf, también en matlab: m_pdf
Ingresar todos los tiempos en un arreglo de n elementos.
# Inicia tabla de tiempos tiempo = np.zeros((n+1),dtype=int) dia = 1 while (dia<=n): print('tiempo[' + str(dia) + ']: ') tiempo[dia] = float(input('')) dia = dia + 1
Empezar con el promedio anual, acumular todos los tiempos y dividirlos para n.
# Promedio anual s = 0 dia = 1 while (dia<=n): s = s + tiempo[dia] dia = dia+1 pranual = s/n
Para el promedio mensual, desarrollar el algoritmo para el primer mes (día 1 al 30) y luego revisar la relación que existe entre el primer día del mes y el número del mes, revisar también para el último día del mes.
Determinar la relación también para los días de la semana y el número de la semana, comparar resultados.
Tarea: completar el algoritmo, pues la solución propuesta no desarrolla el promedio semanal.
En el caso de Python, es necesario declarar el vector, al menos con valores de 0. Como la primera posición del arreglo es 0 y no existe el día 0, se aumentará el tamaño del vector en 1, a fin de usar el indicador de día de forma más natural.
Se requiere importar la librería numpy, para trabajar con los arreglos.
# ICM00794-Fundamentos de Computación - FCNM-ESPOL # 1Eva_IIT2005_T3 Entrenamiento atleta: promedios # Propuesta de solución. edelros@espol.edu.ec # Tarea: realizar promedio por semana import numpy as np # INGRESO n = int(input('¿días a cronometrar?: ')) # Inicia tabla de tiempos tiempo = np.zeros((n+1),dtype=int) dia = 1 while (dia<=n): print('tiempo[' + str(dia) + ']: ') tiempo[dia] = float(input('')) dia = dia + 1 # PROCEDIMIENTO # Promedio anual s = 0 dia = 1 while (dia<=n): s = s + tiempo[dia] dia = dia+1 pranual = s/n # Promedio mensual mes = 1 maxmes = int(n/30) while (mes<=maxmes): s = 0 dia = 1+30*(mes-1) while (dia<=(30*mes)): s = s+tiempo[dia] dia = dia+1 prm[mes] = s/30 mes = mes+1 # SALIDA print('Promedio anual: ') print(pranual) print('Promedio mensual: ') mes = 1 if maxmes==0: print('Meses completos: 0') while (mes<=maxmes): print(prm[mes]) mes = mes+1 # Se modificó el algoritmo para # probar con n de pocos días.
Ejecución del algoritmo
¿días a cronometrar?: 5 tiempo[1]: 20 tiempo[2]: 18 tiempo[3]: 23 tiempo[4]: 19 tiempo[5]: 22 Promedio anual: 20.4 Promedio mensual: Meses completos: 0 >>>