¿Qué tan inteligente es mi programa (C)?
No evaluémos el algoritmo de conversión de grados en sí, sino tu manejo del código y veo muchos detalles en los que podrías trabajar:
- Trata de evitar el uso de “system”. “system” es una función que hace llamada a comandos del sistema operativo en el que corre tu programa; lo malo de esto es que si digamos, llevas este tu programa de Windows a Linux, “cls” o “pause” pueden no interpretarse correctamente y no se comportarán de la manera que tú esperas.
- Todo tu sistema de menúes hace de tu programa bastante fácil de usar, pero es caótico ver código algorítmico mezclado con código de interfaz de usuario; así que te sugeriría que separes ambas cosas. Por ejemplo, podrías hacerte una función “int mostrar_menu()”, que te mostraría el menú y te devolvería la opción que el usuario seleccionó; otra función “double calcular_celsius(double f)” para hacer una conversión y otra función para la otra conversión. De esta manera: Tu código es más fácil de leer, es mucho más mantenible y es incluso muy fácil de refactorar y mover a otras librerías.
- Trata de no usar “float” y usar sólo “double”. En estos tiempos en los que hasta los celulares tienen procesadores de 64-bits, no tiene mucho sentido el hacer cálculos con coma flotante en variables de 32-bits.
- Es buena idea tener constantes globales, pero es muy mala idea tener variables globales. Hacen difícil portar un programa o mover el código a otros lados y estar seguros de que funciona bien, es muy probable que te confundas de nombre de variables y tengas choques de nombres y lo más complicado, en entornos multiusuario/multitarea, las variables globales serán un dolor de cabeza.
- Realizas 6 cálculos SIEMPRE por más de que el sistema sólo provee una conversión a la vez. No tiene sentido. Si bien tu sistema produce un costo negligible en tiempo de ejecución, no tienes por qué consumir más recursos de procesador si es que no lo necesitas.
- El significado y contenido de tu array valMaxMin no es evidente para el que lee tu código.
- “999” es un valor arbitrario que decidiste que produzca un efecto especial, ¿verdad? Intenta solucionar eso de otra manera; no es buena idea (ni nada legible ni mantenible), tener “magic numbers” por ahí.
No hay comentarios:
Publicar un comentario