AGENDA
Declaracin de Estructuras
Uso de Estructuras
Vectores de Estructuras
Estructuras en Funciones
Uniones
ESTRUCTURAS
Agrupacin de variables de distintos tipos. Utilizado para representar una entidad y sus
caractersticas. Se declaran de la siguiente manera:
Agrupa variables de tipo char, double e int
struct alumno{
char nombres[100];
Agrupa variables de tipo char
char apellidos [100];
double promedioPonderado;
int anioIngreso;
int edad;
Es posible asignar valores al declarar
};
Importante
struct alumno a1 = {"Juan P.","Cheng H.",11,2013,17};
USO DE ESTRUCTURAS
struct alumno computo;
strcpy(computo.nombres,"Juan Francisco");
strcpy(computo.apellidos,"Perez Juarez");
computo.promedioPonderado = 18.5;
computo.anioIngreso = 2014;
computo.edad = 17;
Declaracin de la estructura
Asignacin de valores
VECTORES DE ESTRUCTURAS
La siguiente estructura de datos representa la nota obtenida por un determinado
estudiante en el curos de LPE.
struct evaluacionLPE{
char codigo[20];
char nombreCompleto[200];
int nota;
};
Cmo utilizaramos esta estructura para mostrar almacenar todas las notas del aula y
mostrarlas en pantalla?
struct evaluacionLPE lista[20];
VECTORES DE ESTRUCTURAS
Cmo iterar una lista de estructuras.
for(int i=0; i<CANT_ALUMNOS; i++){
if(strlen(lista[i].codigo)!=0){
cout.fill('*'); cout.width(40);
cout<<endl<<""<<endl<<endl;
cout<< "Codigo: "<< lista[i].codigo<<endl;
cout<< "Nombre: "<< lista[i].nombreCompleto<<endl;
cout<< "Nota: "<< lista[i].nota<<endl;
cout.width(40); cout<<endl<<""<<endl;
}
}
ESTRUCTURAS EN FUNCIONES
Es posible utilizar estructuras en la declaracin de funciones (como cualquier otro tipo)
void imprimirNotas(struct evaluacionLPE lista[]){
for(int i=0; i<CANT_ALUMNOS; i++){
if(strlen(lista[i].codigo)!=0){
}
}
}
struct
struct
struct
struct
evaluacionLPE
evaluacionLPE
evaluacionLPE
evaluacionLPE
lista[CANT_ALUMNOS];
a1 = {"20151111A","C. Perez A.",17};
a2 = {"20151112B","J. Cheng P.",14};
a3 = {"20151113K","H. Quispe A.",18};
Declaracin de vector
Instanciar nuevos miembros
Asignar Elementos
imprimirNotas(lista);
Llamado a Funcin
UNIONES
Tratamiento muy similar a las estructuras. Comparten la misma memoria por lo que
se utilizan en casos en que sea necesario un ahorro de la misma.
Debemos tener en cuenta que solo es posible utilizar un campo de la unin cada vez.
union nota{
int notaEntera;
int notaReal;
};
USO DE TYPEDEF
Permite utilizar un nombre para denominar a nuestras estructuras o uniones (como si
fueran un tipo de dato nuevo)
typedef struct alumno alumno;
typedef union nota notaExamen;
void pruebaTypeDef(){
alumno delegado;
delegado.edad = 18;
notaExamen n1;
n1.notaEntera = 19;
}
Cul es el equivalente
de la expresin?