Estructura de Datos

Páginas: 5 (1080 palabras) Publicado: 19 de febrero de 2014
Estructuras o Registros en C

1. Estructura: tipo de dato en lenguaje C que permite almacenar información de diferentes tipos de datos.
2. Miembros: cada uno de los componentes o datos que guarda una estructura.




Una estructura es una colección de uno o más tipos de elementos denominados miembros, cada uno de los cuales puede ser de diferentes tipos.


Los miembros de unaestructura tienen nombre y un tipo de dato. Ejemplo: estructura de datos para almacenar un estudiante:

Nombre del miembro
Tipo del dato
Nombre y apellidos
Cadena de caracteres de tamaño máximo 120
Edad
Entero positivos
Domicilio
Cadena de caracteres de tamaño máximo 100
Carrera
Cadena de caracteres de tamaño máximo 40
Calificaciones
Arreglo de números floatantes



3. Definición de unaestructura:

struct
{
;
;

;

};


Ejemplos:
struct Punto
{
int x;
int y;

};


struct FechaNacimiento{
int day;
int month;
int year;


};



4. Declaración de una estructura:


struct Punto
{
int x;
int y;

} p1, p2;

struct FechaNacimiento{
int day;
int month;
int year;


}fech1,fech2;


ó

struct Puntop1,p2;
struct FechaNacimiento fech1, fech2;

5. Anidamiento de estructuras


struct Linea
{

struct Punto p1; // la estructura tiene como miembros a
struct Punto p2; // datos de tipo estructura también.

};

No se permite tener un miembro que sea del mismo tipo de la estructura que se define.
Lo que si se permite es un puntero a la estructura que se define, en calidad demiembro.


6. Inicialización de una estructura, durante la declaración

struct Punto pt={12.5, 4.8};

No está permitida la asignación de valores a los miembros de una estructura durante la definición de la estructura


Ejemplo:

struct Punto
{
float x= 12.5;
float y ;

};






Nota : es posible inicializar estructuras anidadas en la definición. Por ejemplo:

//estructura de datos para almacenar una fecha.
struct fecha
{
unsigned int dia, mes, anyo;
}
// estructura de datos para almacenar los datos de una persona.

struct persona
{
char nombre [ 20];
unsigned int edad;
int altura;
int peso;
struct fecha fec; // vea en la declaración e inicialización lo que sucede aquí.
};


struct persona Luis= { "Irene" , 80, 110, 55, {20, 10, 1936}};7. Tamaño de una estructura

#include
/* definición una estructura llamada persona */

struct persona
{
char nombre [30];
int edad;
float altura;
float peso;
};


void main( )
{
struct persona martha;
printf ("Sizeof (persona) es: %d \n", sizeof (martha) ) ;
}


Usando el comando sizeof y entre parentésis el nombre de la esstructura, podemos saber sutamaño.


8. Acceso a los datos de una estructura


1. Mediante el operador punto. Ejemplo: martha.edad = 15;
2. Mediante punteros. Ejemplo:
struct persona *pmartha;

pmartha->altura = 1.20;

9. Lectura de información hacia una estructura.

struct complejo
{
float pr;
float pi;
float modulo;
} ;

int main()
{
struct complejo z;
printf ("\n Indique parte real: ") ;scanf ("%f",&z.pr);
printf ("\nIndique parte imaginaria: " ) ;
scanf ("%f",&z.pi);
/* calculo del módulo */
z.modulo = sqrt(z.pr*z.pr + z.pi*z.pi);
….
}

10. Recuperación de información de una estructura
Se recupera información de una estructura utilizando el operador de asignación o una sentencia de salida(printf ( ) , puts ( ) , ...). Se puede emplear el operador punto o el operador flecha(puntero). El formato general toma uno de estos formatos:




1. = .;
ó
2. = -> ;

para salida:

printf("... ",.);
printf("... ",-> );

Ejemplos :

float x,y;
struct complejo z;
struct complejo *pz; struct complejo *pz


pz = &z;
x = z.pr;
y = z.pi;
...
printf("\nNúmero complejo (%.lf,%.lf), módulo: %.2f", pz->pr,pz->pi,pz->modulo) ;


Un programa ejemplo...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Estructura de Datos
  • Estructura De Datos
  • Estructura de datos
  • Estructura de datos
  • Estructura de datos
  • Estructuras de datos
  • Estructura de Datos
  • estructura de datos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS