Algoritmo para convertir minutos a horas y minutos

La división entera y el residuo, dos operaciones que aparecen una y otra vez: horas completas y lo que sobra.

El problema y su planteamiento

Lee una cantidad de minutos y muéstrala en horas y minutos.

Con 125, muestra:
2 horas y 5 minutos

Planteamiento: entrada, proceso y salida
EntradaProcesoSalida
Una cantidad de minutos (un número entero).Dividir entre 60 para obtener las horas completas y sacar el residuo para los minutos que sobran.El texto con las horas y los minutos, por ejemplo 2 horas y 5 minutos.

Diagrama de flujo

Así se dibuja el algoritmo: el óvalo marca el inicio y el fin, el paralelogramo es una entrada o una salida, el rectángulo es un proceso y el rombo es una decisión.

Diagrama de flujo del algoritmo minutos a horasInicioLeer minutoshoras <- Trunc(minutos / 60)resto <- minutos MOD 60Escribir horas, " horas y ", resto, " minutos"Fin

Pseudocódigo

Esta es una solución. Léela línea por línea con el diagrama al lado y compara con lo que tú escribirías.

Algoritmo minutos_a_horas
    Leer minutos
    horas <- Trunc(minutos / 60)
    resto <- minutos MOD 60
    Escribir horas, " horas y ", resto, " minutos"
FinAlgoritmo
Pruebas del reto
EntradaSalida esperada
1252 horas y 5 minutos
1853 horas y 5 minutos

Con estas entradas, el programa debe mostrar exactamente esa salida.

Cómo pensarlo

En 125 minutos caben 2 horas completas (120 minutos) y sobran 5. Las horas son la parte entera de 125 entre 60, y los minutos que sobran son el residuo de esa división.

En pseudocódigo la parte entera se obtiene con Trunc(minutos / 60), y el residuo con el operador MOD: minutos MOD 60. MOD significa módulo: lo que queda al dividir.

Con menos de 60 minutos, por ejemplo 59, las horas dan 0 y el residuo son los mismos 59 minutos. El programa funciona sin tratar ese caso aparte.

Errores comunes

  • Dividir con / y mostrar el resultado completo: 125 / 60 da 2.0833, no 2 horas y 5 minutos.
  • Calcular los minutos como minutos - horas: hay que restar horas por 60, o usar MOD.
  • Olvidar Trunc: sin él, las horas saldrían con decimales.

El mismo programa en Python

Si más adelante pasas a Python, así se ve la misma lógica. Cambian las palabras (print, input, if) y los bloques se marcan con sangría en lugar de FinSi o FinPara.

# Algoritmo minutos_a_horas
minutos = int(input())
horas = int(minutos / 60)
resto = minutos % 60
print(horas, " horas y ", resto, " minutos", sep="")

Preguntas frecuentes

¿Qué hace MOD en pseudocódigo?

Da el residuo de una división. Por ejemplo, 125 MOD 60 es 5, porque 125 entre 60 es 2 y sobran 5.

¿Cómo obtengo solo la parte entera de una división?

Con la función Trunc, que corta los decimales: Trunc(125 / 60) es 2.

Sigue con otro reto