Está en la página 1de 3

Facultad de Informática Mazatlán. Programación Estructurada.

CREACION DE ARCHIVOS DE CABECERA.

Podemos crear nuestros propios archivos de cabecera para guardar las funciones hechas por nosotros y
así crear nuestras propias librerías. Para crear un archivo de cabecera simple, basta con escribir las
funciones en el editor y guardarlas en un archivo con la extensión .h. También podemos definir nuestras
propias constantes simbólicas, macros y tipos de datos, guardarlas en el archivo de cabecera, lo cual nos
evitará tener definir las funciones, constantes y macros en cada programa que hagamos. Aún cuando no
es necesario, es recomendable colocar los prototipos de las funciones al principio del archivo de
cabecera. Asimismo podemos colocar directivas de inclusión que llamen a su vez a otros archivos de
cabecera.
Para tener acceso a nuestros propios archivos de cabecera, basta con llamarlos mediante una directiva
de inclusión, tal como se hace con los archivos de cabecera de la librería estándar.

#include <archivo.h>
#include "archivo.h"

Recuerde que la diferencia entre estas dos formas de declaración, determina en donde buscará el
preprocesador el archivo a incluirse. Esto es, si el nombre del archivo está encerrado entre comillas, el
preprocesador buscará el archivo a incluirse en el mismo directorio que el del archivo que se está
compilando, esto es, el directorio actual de trabajo que puede ser a: o \tc\bin. Este método se utiliza
normalmente para incluir archivos de cabecera definidos por el programador. Por el contrario, si el
nombre del archivo está encerrado en corchetes angulares < >, la búsqueda se llevará a cabo en los
directorios predefinidos.

A continuación se presenta lo que podría ser un archivo de cabecera al cual podemos llamarlo:
"cabecera.h" (puede crearlo y ponerle su nombre o apellido –tamaño máximo 8 caracteres-).

/* Archivo de cabecera: cabecera.h */

#if ! defined (CABECERA)


#define CABECERA /* Estas dos líneas definen el nombre del archivo de cabecera,
asegurándose que se incluya sólo una vez */
#include "math.h"
#include "stdio.h"
#include "conio.h"
#include "time.h" /* Pueden incluirse otros archivos en un archivo de cabecera */
#include "stddef.h"
#include "stdlib.h"

/* Definiciones de tipos y Macros */

typedef unsigned char BYTE; /* Define un nuevo tipo de dato: BYTE */


typedef unsigned int WORD; /* Define un nuevo tipo de dato: WORD */
#define PI 3.1415927
#define E 2.718281828459
#define radianes(ang) (ang) * PI / 180.0

/* Prototipos de las funciones definidas en este archivo, no es obligatorio colocarlos. */

double cot (float ang);


double sec (float ang);
double csc (float ang);
int validaEnteros (int menor, int mayor);
Dr. José Nicolás Zaragoza González
Facultad de Informática Mazatlán. Programación Estructurada.
long int validaGrandes (long int menor, long int mayor);
float validaReales (float menor, float mayor);
void fecha (void);

double cot (float ang)


{
return 1.0 / tan (ang);
}
double sec (float ang)
{
return 1.0 / cos (ang);
}
double csc (float ang)
{
return 1.0 / sin (ang);
}

int validaEnteros (int menor, int mayor)


/* Valida la entrada de un número entero tipo: int */
{
int entero;
char cadena[ ]=" ";
do {
scanf("%s",cadena);
fflush(stdin);
entero = atoi(cadena);
} while ((entero<menor) && (entero>mayor));
return entero;
}

long int validaGrandes (long int menor, long int mayor)


/* Valida la entrada de un número entero largo tipo: long int */
{
long int grande;
char cadena[ ]=" ";
do {
scanf("%s",cadena);
fflush(stdin);
grande = atol(cadena);
} while ((grande<menor) && (grande>mayor));
return grande;
}

float validaReales (float menor, float mayor)


/* Valida la entrada de un número real de tipo: float */
{
float real;
char cadena[ ]=" ";
do {
scanf("%s",cadena);
fflush(stdin);
real = atof(cadena);
} while ((real<menor) && (real>mayor));
return real;
}

void fecha (void)


{
time_t lt;
Dr. José Nicolás Zaragoza González
Facultad de Informática Mazatlán. Programación Estructurada.
lt = time (NULL);
printf(ctime (&lt));
}

long factorial(int a)
{
int i=1;
long f=1;
for (i = a; i > 1; i--) {
f *= i;
}
return (f);
}

#endif

Crear el archivo de cabecera con su nombre o apellido, retomando las funciones


anteriores y añadirle las siguientes funciones:
Potencia. xn o x-n
Sumar dos números enteros.
Sumar dos números reales.
Restar dos números enteros.
Restar dos números reales.
Multiplicar dos números enteros.
Multiplicar dos números reales.
Dividir dos números enteros.
Dividir dos números reales.
Calcular el módulo de dos números enteros.

Dr. José Nicolás Zaragoza González

También podría gustarte