martes, 25 de febrero de 2014

Estilo de Programación en el Lenguaje C (Extras)


Trataremos de dar unas breves indicaciones acerca de cuál es la forma más correcta de programar. Qué aspecto dar al código fuente para que sea más legible y elegante, cómo distribuir el código fuente, etc

Aspecto del código

Obsérvese el siguiente código:

#include <stdio.h>
int main(void){ char cadena[20]; printf("Introduce una cadena:"
);
gets(cadena);printf("Has escrito: %s",cadena);return 0;}

Ahora compárese con este otro:

#include <stdio.h>

int main(void)
{
 char cadena[20];

 printf( "Introduce una cadena:" );
 gets(cadena);
 printf("Has escrito: %s",cadena);

 return 0;
}

Parece claro que la segunda es más conveniente. Desde luego no es la única forma, ni la más correcta; es, simplemente, un estilo. Cada uno tiene su estilo personal, aunque conviene que tampoco sea 'muy personal', si es para compartirlo. Otra forma muy habitual es poner '{' justo después de la función:

#include <stdio.h>

int main(void){
 char cadena[20];

 printf( "Introduce una cadena:" );
 gets(cadena);
 printf("Has escrito: %s",cadena);

 return 0;
 }

Los comentarios

El código fuente debe estar bien documentado, de tal forma que si se lo pasamos a otra persona pueda entenderlo sin grandes dificultades. Quizá se piense: "mi código es mío y nunca se lo voy a dejar a nadie, así que para que voy a comentarlo". Parece lógico, pero imagínese que se abandona temporalmente y en el futuro se quiere retocar el programa. Es muy probable el olvido de por qué se hizo tal o cual cosa, (pasa muy a menudo) y es preciso gastar un montón de tiempo descifrando algo que en su día estaba entendido perfectamente.

Aquí está un ejemplo de un programa mal comentado:

#include <stdio.h>

int main(void)  /* declaro la función main */
{  /* Abro llaves */
 char cadena[20];   /* declaro una variable llamada cadena */

 printf( "Introduce una cadena:" );  /* Imprimo el mensaje 'Introduce una cadena */
 gets(cadena);   /* pregunto por el valor de cadena */
 printf("has escrito: %s",cadena);   /* muestro el valor que han introducido */

 return 0;  /* hago que el programa devuelva el valor 0;
}  /* cierro llaves */

Estos comentarios están bien si el código forma parte de algún curso, pero no de un programa de uso habitual. Todo el mundo (que lleva un tiempo programando en C) sabe que con int main (void) se declara una función y que conchar cadena[20] se declara una variable.

Los comentarios deben decirnos qué es lo que hace el programa, para qué sirven las variables y explicar las partes críticas o confusas del programas. Algo mas correcto sería:

/* Programa ejemplo creado para el curso de C */

#include <stdio.h>

int main(void)
{
 char cadena[20];  /* En la variable cadena se almacenará el valor a introducir */

 printf( "Introduce una cadena:" );
 gets(cadena);
 printf("has escrito: %s",cadena);

 return 0;
}

Este programa es tan sencillo que no tiene puntos oscuros para comentar.

Es importante indicar para qué se van a usar las variables. Cuando tengamos muchas y pase el tiempo es difícil descifrar para que era cada una.

Los nombres de las variables

Cuando hacemos un programa con prisas o por no pensar mucho damos a las variables cualquier nombre. Supongamos un programa con una sección de declaración de variables como la que sigue:

 int i, j, k;
 double x1, x2, x3, x4;
 char a, b;
 /* ... muchas más variables */

¿Cómo podemos acordarnos al cabo de un tiempo de qué era cada variable?. Por eso es conveniente que aparte de indicar para qué sirve cada variable les demos nombres descriptivos:

 int cuenta_x, cuenta_y, cuenta_z;  /* Nº de posiciones x, y, z */
 double x_minimo, x_maximo, 
        y_minimo, y_maximo;    /* Esquinas del rectángulo */
 char tecla_inicio, tecla_fin;    /* Pulsaciones de comienzo y fin */
 /* ... etc */

0 comentarios:

Publicar un comentario

Aprende a Programar tus propias aplicaciones