Introducción
Para el problema que vamos a resolver en este artículo partimos de un valor entero que indica una cantidad de minutos y debemos crear un algoritmo para convertir esta información en una cantidad de horas y minutos restantes. Es el ejercicio 6 de la serie de problemas básicos de programación en lenguaje C# para resolver en Unity.
Solución del ejercicio 6 en formato vídeo:
Descripción del problema y estrategia para la resolución
El código del algoritmo que resuelve el problema planteado debe ir dentro de la función AlgoritmoEjercicio del Script correspondiente, en este caso el script Ejercicio6. La función AlgoritmoEjercicio será ejecutada al pulsar el botón Ejecutar Algoritmo que hay en pantalla.
Lo que tenemos que hacer es tomar la entrada ingresada por el usuario y convertirla a un valor numérico, de esta forma podremos hacer operaciones matemáticas con ella.
Una vez tenemos el valor ingresado que corresponde a la cantidad total de minutos, tenemos que calcular a cuantas horas equivale y la cantidad restante de minutos..
Luego definimos una variable tipo string llamada «resultado», generamos el mensaje de respuesta concatenando textos junto con los valores calculados y por último escribimos este resultado en pantalla.
Solución del ejercicio
El dato ingresado por el usuario estará almacenado en las variable «dato1». Para convertir estas variables tipo string a una variable tipo entera usamos la siguiente instrucción:
int num1 = int.Parse(dato1);
De esta forma estamos definiendo una variable tipo int llamada num1 que se inicializa con el valor de la entrada convertido a int.
Es importante aclarar que si el string dato1 no tiene formato numérico (por ejemplo contiene letras), no se podrá hacer la conversión y tendremos un error en tiempo de ejecución. En este tipo de ejercicios se asume que la entrada ingresada por el usuario estará en el formato correcto.
Ahora que hemos convertido el strings a int podemos hacer cálculos. Primero calculamos la cantidad de horas tomando la entrada y dividiéndola por 60 (esto es así porque 60 minutos equivalen a 1 hora), la parte entera de esta división será la cantidad de horas. Esto lo podemos hacer con la siguiente intrucción:
int h = num1 / 60;
Un dato interesante es que debido a que num1 y 60 son valores enteros, el resultado de la división será un valor entero, aunque lo almacenemos en una variable tipo float. Osea que si realizamos la operación 70 / 60 el resultado será 1.
Para calcular los minutos restantes hay que usar el operador módulo (%), el cual vimos en el ejercicio 4 en el que determinamos si un número entero era par o impar. El operador módulo nos dará el resto de la división, entonces podemos obtener los minutos restantes con la siguiente operación:
int m = num1 % 60;
Ahora que tenemos calculadas la cantidad de horas y minutos vamos a elaborar el mensaje de respuesta concatenando un texto con los valores, esto lo podemos hacer por ejemplo con la siguiente instrucción:
string resultado = h.ToString() + » horas «+m.ToString()+ » minutos»;
Como vemos, en la instrucción anterior estamos convirtiendo nuevamente los valores a string para poder concatenarlos.
Finalmente escribimos este resultado en el texto del Canvas en pantalla con la siguiente instrucción:
componenteTexto.text=resultado;