Estructura de Datos
Enviado por pilyy • 31 de Mayo de 2012 • 362 Palabras (2 Páginas) • 434 Visitas
XI. Estructura de Datos
11.1 Definicion de Struct
Una estructura es una agrupación, bajo un mismo nombre de variable, distintos
datos que pueden ser de diferente tipo. Las estructuras vienen a salvar la
limitación de los arrays, que solo almacenan un único tipo de dato.
Una estructura también es llamada registro y cabe su analogía con los registros
de una tabla, donde un registro tiene varios datos (campos) y estos pueden
diferir en su tipo:
Ejemplo:
struct usuarios_t {
int dni;
char nombres[50];
char apellido[30];
time_t nacimiento;
};
//un registro usuarios:
struct usuarios_t usuario;
usuario.dni=27651109
strcpy(usuario.nombres,"Jose Maria");
...
//un array de registros:
struct usuarios_t usuarios[10];
usuario[0].dni=27651109
strcpy(usuario[0].nombres,"Jose Maria");
usuario[1].dni=26852789
strcpy(usuario[1].nombres,"Juan Carlos");
...
Ejemplo:
struct Date {
int day;
int month;
int year;
} today;
int main() {
today.day = 4;
today.month = 7;
today.year = 1776;
}
11.2 Union
Una union se declara de la misma forma que una estructura, reemplazando
struct por union. La diferencia está en que todos los miembros de la union
comparten el mismo espacio en memoria, por lo que solo se puede tener
almacenado un miembro de ellos en cada momento. El tamaño de la union
estará dado por el miembro más largo de la misma.
Ejemplo:
struct usuarios_t {
int dni;
char nombres[50];
char apellido[30];
time_t nacimiento;
};
union usuario_t usuario; /* Declaración de la variable */
11.3 Enum
Una enumeración es un conjunto de constantes enteras. A la enumeración se le
puede asignar un nombre, que se comportará como un nuevo tipo de dato que
solo podrá contener los valores especificados en la enumeración.
Ejemplo:
enum dias_semana {Lunes=1, Martes=2, Miercoles=3, Jueves=4, Viernes=5,
Sábado=6, Domingo=7 };
dias_semana dia;
dia = Lunes;
dia = 1; /* Ambas asignaciones son equivalentes */
Ejemplo con estructuras:
1. Datos del alumno y su promedio de notas
#include "iostream.h"
#include "iomanip.h"
struct Alumno { int codigo;
char curso[50];
int nota1;
int nota2;
int nota3;
float promedio;
};
Alumno AlumnoSec[2];
int main()
{ int i, n;
cout<<"cuantos datos desea ingresar? ";
cin>>n;
for(i=1;i<=n;i++)
{ cout<<"Ingrese el código del estudiante "<<i<<" ";
cin>>AlumnoSec[i].codigo;
cout<<"Ingrese el curso del estudiante: ";
cin>>AlumnoSec[i].curso;
cout<<"Ingrese nota1: ";
cin>>AlumnoSec[i].nota1;
cout<<"Ingrese nota2: ";
cin>>AlumnoSec[i].nota2;
cout<<"Ingrese nota3: ";
cin>>AlumnoSec[i].nota3;
AlumnoSec[i].promedio =
(AlumnoSec[i].nota1+AlumnoSec[i].nota2+
AlumnoSec[i].nota3)/3.0;
cout<<"el promedio es:"<<AlumnoSec[i].promedio<<endl;
}
cout<<setw(20)<<"CODIGO";
cout<<setw(20)<<"CURSO";
cout<<setw(20)<<"PROMEDIO"<<endl;
...