Anda di halaman 1dari 9

ESTRUCTURAS Y UNIONES

LENGUAJE DE PROGRAMACIN ESTRUCTURADA (ST -202 V)


JOS CABALLERO ORTIZ

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

cout<< "Alumno: "<<computo.apellidos<<", "<<computo.nombres<<endl;


cout<< "Promedio: "<<computo.promedioPonderado;
Acceso a 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];

Permite almacenar los valores

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

lista[0] = a1; lista[1]=a2; lista[2]=a3;

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;
};

Muy similar a la estructura


notaEntera y notaReal comparten espacio de memoria

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;
}

Es posible esta declaracin?

Cul es el equivalente
de la expresin?

Anda mungkin juga menyukai