Mostrando entradas con la etiqueta progrramas. Mostrar todas las entradas
Mostrando entradas con la etiqueta progrramas. Mostrar todas las entradas

viernes, 12 de enero de 2018

¿Qué tan inteligente es mi programa (C)?

dato curioso:

¿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í.

 

 
biz.