Lenguaje C
surich2524 de Octubre de 2011
5.745 Palabras (23 Páginas)472 Visitas
CONCEPTOS GENERALES
1.1.1 Definición de caracteres
Constantes carácter. Cualquier carácter individual encerrado entre apóstrofos (tal como 'a', 'Y', ')', '+', etc.) es considerado por C como una constante carácter, o en realidad como un número entero pequeño (entre 0 y 255, o entre -128 y 127, según los sistemas). Existe un código, llamado código ASCII, que establece una equivalencia entre cada carácter y un valor numérico correspondiente.
1.1.2 Definición de campo
Un campo un elemento de la estructura el cual puede ser procesado en forma individual o en forma conjunta dentro de la estructura.
1.1.3 Definición de estructura
Es un conjunto de una o más variables, de distinto tipo, agrupadas bajo un mismo nombre para que su manejo sea más sencillo. Su utilización más habitual es para la programación de bases de datos, ya que están especialmente indicadas para el trabajo con registros o archivos.
1.2 ESTRUCTURAS EN C
1.2.1 Construcción de una estructura
La sintaxis de su declaración es la siguiente:
struct tipo_estructura
{
tipo_variable nombre_variable1;
tipo_variable nombre_variable2;
tipo_variable nombre_variable3;
};
Donde tipo_estructura es el nombre del nuevo tipo de dato que hemos creado. Por último, tipo_variable y nombre_variable son las variables que forman parte de la estructura.
Para definir variables del tipo que acabamos de crear lo podemos hacer de varias maneras, aunque las dos más utilizadas son éstas:
Una forma de definir la estructura:
struct trabajador
{
char nombre[20];
char apellidos[40];
int edad;
char puesto[10];
};
struct trabajador fijo, temporal;
Otra forma:
struct trabajador
{
char nombre[20];
char apellidos[40];
int edad;
char puesto[10];
}fijo, temporal;
En el primer caso declaramos la estructura, y en el momento en que necesitamos las variables, las declaramos. En el segundo las declaramos al mismo tiempo que la estructura. El problema del segundo método es que no podremos declarar más variables de este tipo a lo largo del programa. Para poder declarar una variable de tipo estructura, la estructura tiene que estar declarada previamente. Se debe declarar antes de la función main().
1.2.2 Acceso a miembros de una estructura de datos
El manejo de las estructuras es muy sencillo, así como el acceso a los campos (o variables) de estas estructuras. La forma de acceder a estos campos es la siguiente:
variable.campo;
Donde variable es el nombre de la variable de tipo estructura que hemos creado, y campo es el nombre de la variable que forma parte de la estructura. Lo veremos mejor con un ejemplo basado en la estructura definida anteriormente:
temporal.edad=25;
Lo que estamos haciendo es almacenar el valor 25 en el campo edad de la variable temporal de tipo trabajador.
Otra característica interesante de las estructuras es que permiten pasar el contenido de una estructura a otra, siempre que sean del mismo tipo naturalmente:
fijo=temporal;
Al igual que con los otros tipos de datos, también es posible inicializar variables de tipo estructura en el momento de su declaración:
struct trabajador fijo={"Pedro","Hernández Suárez", 32, "gerente"};
Si uno de los campos de la estructura es un arreglo de números, los valores de la inicialización deberán ir entre llaves:
struct notas
{
char nombre[30];
int notas[5];
};
struct notas alumno={"Carlos Pérez",{8,7,9,6,10}};
1.2.3 Arreglos de estructuras
Es posible agrupar un conjunto de elementos de tipo estructura en un arreglo. Esto se conoce como arreglo de estructuras:
struct trabajador
{
char nombre[20];
char apellidos[40];
int edad;
};
struct trabajador fijo[20];
Así podremos almacenar los datos de 20 trabajadores. Ejemplos sobre como acceder a los campos y sus elementos: para ver el nombre del cuarto trabajador, fijo[3].nombre;. Para ver la tercera letra del nombre del cuarto trabajador, fijo[3].nombre[2];. Para inicializar la variable en el momento de declararla lo haremos de esta manera:
struct trabajador fijo[20]={{"José","Herrero Martínez",29},{"Luis","García Sánchez",46}};
2.1 Conceptos generales de archivos
Un fichero en sentido global puede ser desde un monitor hasta una impresora, pasando por un archivo en disco.
La idea más común del concepto de fichero es un conjunto de posiciones de memoria situadas en un disco de los dispositivos externos de almacenamiento del sistema, en las cuales podemos almacenar y recuperar información.
El lenguaje C nos proporciona un acceso secuencial y directo a los registros de un fichero, pero no soporta el acceso indexado a un registro dado.
Los ficheros en C los podemos clasificar, según la información que contengan, en dos grupos: ficheros de texto y ficheros binarios.
Los ficheros de texto se caracterizan por estar compuestos por una serie de caracteres organizados en líneas terminadas por un carácter de nueva línea (carácter 'n'). Esto nos hace pensar en la idea de usar la impresora como si fuese un fichero de texto. Por otro lado, los ficheros binarios constan de una secuencia de bytes. Podemos decir que cualquier fichero que no sea de texto, será binario. A la hora de trabajar con ficheros, tendremos que especificar antes de usarlos, si serán de texto o binarios. Podemos establecer una segunda clasificación de los ficheros, atendiendo al modo de acceso a su información. De este modo, distinguiremos entre ficheros secuenciales y ficheros directos. Los ficheros de acceso secuencial se basan en el hecho de que, para acceder a una determinada posición de los mismos, hemos de recorrer desde el principio todas las posiciones hasta llegar a la deseada. Las impresoras son un claro ejemplo de acceso secuencial, así como las cintas magnéticas. Con el uso de ficheros de acceso directo podemos acceder de forma directa a la posición que queramos sin tener que pasar por las posiciones anteriores. El dispositivo de acceso directo por excelencia es el disco magnético.
2.2 Archivos de estructuras
El lenguaje C trata a los ficheros como punteros. En realidad un fichero es un puntero a una estructura de nombre predefinido FILE, cuyas componentes son las características de la variable fichero declarada. Cada fichero deberá tener una estructura FILE asociada. La estructura FILE se encuentra definida en el archivo de cabecera stdio.h, con lo cual es necesario incluirla en todos los programas que trabajen con ficheros mediante la conocida directiva #include <stdio.h>
La forma de declarar variables de tipo FILE es la siguiente:
FILE *f, *f1, ...
Como podemos observar se trata de punteros que apuntan a estructuras de tipo FILE.
En realidad lo que ocurre con el tipo FILE es que define a una estructura de los siguiente forma:
typedef struct
{
short level;
unsigned flags;
char fd;
unsigned char hold;
short bsize;
unsigned char *buffer, *curp;
unsigned istemp;
short token;
}FILE;
Esta estructura la podrás ver editando el fichero stdio.h. El programador no tendrá que definirla puesto que ya existe.
2.2.1 Declaración
Los ficheros, en contraposición con las estructuras de datos vistas hasta ahora (variables simples, vectores, registros, etc.), son estructuras de datos almacenadas en memoria secundaria.
Para utilizar la información
...