Estructuras #14

Capítulo 14: Estructuras

Imaginaos que queremos almacenar información sobre los alumnos de una clase. Utilizaríamos cadenas para sus nombres, otras para sus apellidos, vectores de float para sus notas y otras cadenas para diversas observaciones. Hay que tener en cuenta que deberemos conta con todas estas variables por cada alumno, imaginad si tenemos 30 en una clase. La cantidad de variables a a manejar sería brutal e incómodo.

Para ello usamos las estructuras, podemos decir que se trata de una colección de variables del tipo que queramos agrupadas en un conjunto. Definimos una estructura despues de los includes de las bibliotecas y antes de las cabeceras de las funciones que hayamos creado. La forma de definirlas es las siguientes:

struct estructura{

tipodevariable campo1;

tipodevariable campo2;



};

Cada parte de la estructura se llama campo y pueden tener tipos distintos. Cuando declaramos una variable lo hacemos:

struct estructura nombredelavariable;

Para acceder a un campo determinado de la variable veremos el siguiente ejemplo. Haremos un ejemplo de asignación, hay que tener en cuenta que si el campo es una variable vector, no podemos asignarlos, este ejemplo valdría para campos que fueran enteros, caracteres…



nombredelavariable.campo1 = 5;

Accedemos a los campos de las variables estructura con el operador “.”.

Veamos un ejemplo de creación de una estructura y acceso a sus campos:

typedef struct{

char nombre[20];

char apellidos[40];

float notas[10];

}alumno;

int main(void){

int i, j;

alumno alumnos [30];

printf(“Introduzca los datos de los alumnos ->nn”);

for(i = 0; i < 30; i++){

printf(“Datos alumno %d:n”, i);

printf(“Nombre: “);

scanf(“%s”, &alumnos[i].nombre);

fflush(stdin);

printf(“Apellidos: “);

gets(alumnos[i].apellidos);

for(j = 0; j < 10; j++){

printf(“Nota del examen n %d: ”,j);

scanf(“%d”, &alumnos[i].notas[j]);

fflush(stdin);

}

}

}

En el próximo capítulo veremos como usar los punteros en las estructuras, como pasar estructuras a funciones y como crear estructuras dentro de estructuras. Las estructuras son tipos de datos muy útiles que harán mucho más cómoda la programación.

Os voy a mandar un poco de tarea: quiero que creeis un programa con una estructura para almacenar información sobre los contactos de una agenda. Deberéis almacenar información como: nombre, apellidos, número de teléfono, dni, dirección… Así mismo, me gustaría que crearáis las líneas necesarias para leer e imprimir la información de la estructura.




    el 01.11.08

 

Especiales