Está en la página 1de 4

Programacion estructurada. Constantes.

Las constantes son aquellos datos que no pueden cambiar a lo largo de la ejecucin de un programa. #include <stdio.h> int main() { int radio, perimetro; radio = 20; perimetro = 2 * 3.1416 * radio; printf( "El permetro es: %i", perimetro return 0; } radio y perimetro son variables, su valor puede cambiar a lo largo del programa. Sin embargo 20, 2 y 3.1416 son constantes, no hay manera de cambiarlas. El valor 3.1416 no cambia a lo largo del programa , ni entre ejecucin y ejecucin. Slo cambiar cuando edites el programa y lo cambies tu mismo. Esto es obvio, y no tiene ningn misterio as que no le des vueltas. Slo quera indicarlo porque en algunos libros le dan muchas vueltas.
[Arriba]

);

Constantes con nombre


Supongamos que tenemos que hacer un programa en el que haya que escribir unas cuantas veces 3.1416 (como todos sabreis es PI). Es muy fcil que nos confundamos alguna vez al teclearlo y al compilar el programa no tendremos ningn error, sin embargo el programa no dar resultados correctos. Para evitar esto usamos las constantes con nombre. Al definir una constante con nombre estamos dando un nombre al valor, a 3.1416 le llamamos PI. Estas constantes se definen de la manera siguiente: #define nombre_de_la_constante valor_de_la_constante Ejemplo: #include <stdio.h> #define PI 3.1416

int main() { int radio, perimetro; radio = 20; perimetro = 2 * PI * radio; printf( "El permetro es: %i", perimetro return 0; } De esta forma cada vez que el compilador encuentre el nombre PI lo sustituir por 3.1416. A una constante no se le puede dar un valor mientras se ejecuta, no se puede hacer PI = 20;. Slo se le puede dar un valor con #define, y slo una vez. Tampoco podemos usar el scanf para dar valores a una constante: #define CONSTANTE 14 );

int main() { ... scanf( "%i", CONSTANTE ); ... } eso sera como hacer: scanf( "%i", 14 ); Esto es muy grave, estamos diciendo que el valor que escribamos en scanf se almacene en la posicin 14 de la memoria, lo que puede bloquear el ordenador. Las constantes se suelen escribir en maysculas slo se puede definir una constante por fila. No se pone ";" al final. Las constantes nos proporcionan una mejor comprensin del cdigo fuente. Mira el siguiente programa: #include <stdio.h> int main() { int precio; precio = ( 4 * 25 * 100 ) * ( 1.16 ); printf( "El precio total es: %i", precio return 0; } );

Quien entiende lo que quiere decir este programa? Es difcil si no imposible. Hagmoslo de otra forma. #include <stdio.h> #define #define #define #define CAJAS UNIDADES_POR_CAJA PRECIO_POR_UNIDAD IMPUESTOS 4 25 100 1.16

int main() { int precio; precio = ( CAJAS * UNIDADES_POR_CAJA * PRECIO_POR_UNIDAD ) * ( IMPUESTOS ); printf( "El precio total es: %i", precio return 0; } A que ahora se entiende mejor? Claro que s. Los nmeros no tienen mucho significado y si revisamos el programa un tiempo ms tarde ya no nos acordaremos qu cosa era cada nmero. De la segunda forma nos enteraremos al momento. Tambin podemos definir una constante usando el valor de otras. Por supuesto las otras tienen que estar definidas antes: );

#include <stdio.h>

#define CAJAS #define UNIDADES_POR_CAJA #define PRECIO_POR_UNIDAD #define PRECIO_POR_CAJA PRECIO_POR_UNIDAD #define IMPUESTOS 1.16 25 100

UNIDADES_POR_CAJA *

int main() { int precio;

precio = ( CAJAS * PRECIO_POR_CAJA ) * ( IMPUESTOS );

printf( "El precio total es: %i", precio

);

return 0; }

#define tiene ms usos aparte de ste, ya los veremos en el captulo de directivas.

También podría gustarte