Está en la página 1de 6

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

FACULTAD DE INGENIERIA DE SISTEMAS E INFORMTICA


Estructuras o Registros
Introduccin
Una estructura o registro es un conjunto de variables, del mismo tipo o no, agrupadas bajo
un mismo nombre, con la finalidad de facilitar el trabajo con ellas. A cada dato dentro de la
estructura se le llama miembro, campo o elemento.
1. Definicin de estructuras
La definicin de una estructura se hace de la siguiente manera:
struct identificador_estructura
{
tipo1 dato1;
tipo2 dato2;
...
tipoN datoN;
};
Observe que despus de la ltima llave debe colocar ;.
Supongamos que queremos hacer una agenda con el nmero de telfono y la edad de
una persona. Sin el uso de estructuras, el programa quedara desordenado. Pero gracias
a la estructura el problema se simplifica. Aqu el ejemplo de la definicin de la estructura:

struct persona {
char nombre[30];
char apellido[40];
char telefono[10];
int edad;
};
2. Declaracin de variables de estructura
Una vez definida la estructura, se puede usar igual que cualquier otro tipo de dato, por lo
tanto podemos usarla declarando una variable con esa estructura:
struct identificador_estructura identificador_variable
Por ejemplo:
1

struct persona amigo;

La palabra struct es obligatorio usarla en C pero opcional en C++.


Ahora la variable amigo es de tipo persona.
3. Acceder a los campos de la estructura
Para acceder a los campos de la estructura, lo haremos de la manera siguiente:

identificador_variable.campo;
Donde identificador_variable es el identificador de la variable de tipo estructura que
hemos creado, y campo es el nombre de la variable que forma parte de la estructura. Lo
veremos mejor con un ejemplo basado en la estructura definida anteriormente:

amigo.edad=27;

Con esta sentencia lo que estamos haciendo es almacenar el valor 27 en el campo edad
de la variable amigo.
Una opcin que nos permiten las estructuras es pasar el contenido de una estructura a
otra, siempre que sean del mismo tipo naturalmente. Por ejemplo, si hemos declarado las
variables de estructuras del mismo tipo, persona1 y persona2, podemos asignarle los
datos almacenados en todos los campos de la estructura persona1, a la persona2 de la
siguiente manera:
persona2=persona1;
4. Inicializar una estructura
Primero se define la estructura (como se hizo en la parte 1) y luego al declarar una
variable como estructura le damos el valor inicial que queramos. Ejemplo:

struct persona amigo = {


"Juan Jose",
"Segura",
"8564235",
60
};
2

Por supuesto se debe ingresar en cada campo el tipo de datos correcto.


Para ingresar datos a una variable de estructura se puede usar las sentencias que
normalmente emplea con ese fin como cin, scanf, gets, etc. Por ejemplo:
cin >> amigo.edad;
5. Anidamiento de estructuras
Las estructuras tambin pueden anidarse. Es decir, podemos usar como campo de una
estructura, otra estructura. Por ejemplo.

struct pareja
{
persona juan;
persona rosa;
};
6. Estructuras y funciones
Las estructuras pueden pasarse como argumentos de funciones, bien por valor o por
referencia. Por ejemplo:
Si hemos declarado ya la siguiente estructura:

struct punto {
float x;
float y;
};
Podremos definir la siguiente funcin:

struct punto sumaPunto(struct punto p1,struct punto p2) {


p1.x=p1.x+p2.x;
p1.y=p1.y+p2.y;
return p1;
}
7. Caso
Usar estructuras y subprogramas para guardar las notas de Examen Parcial, Final y
Prctica Calificada de un alumno. Hallar el promedio considerando que el Parcial y Final
tienen cada uno peso 2. Finalmente mostrar el resultado.
3

# include <iostream>
using namespace std;
struct Nota
{
int parcial;
int final;
int practica;
};

struct Alumno
{
char codigo[8];
char nombre[40];
Nota notas;

// Campo que es variable de Estructura

float promedio;
};

//Prototipos
void llenarEst(Alumno &alum);
void hallarProm(Alumno &alum);
void mostrarProm(Alumno alum);

// Programa Principal
int main( )
{
int i, nro;
4

Alumno alu;

llenarEst(alu);
hallarProm(alu);
mostrarProm(alu);

system("pause");
return 0;
}

//Desarrollo
void llenarEst(Alumno &alum) {
cout<<"=====================================";
cout<<"\nCodigo Alumno : ";
gets(alum.codigo);
cout<<"\nNombre Alumno : ";
gets(alum.nombre);
cout<<"\nNota de Examen Parcial del alumno : ";
cin>>alum.notas.parcial;
cout<<"\nNota de Examen Final del alumno : ";
cin>>alum.notas.final;
cout<<"\nNota de Practica del alumno : ";
cin>>alum.notas.practica;
}
void hallarProm(Alumno &alum) {
alum.promedio= (2*alum.notas.parcial+2*alum.notas.final+alum.notas.practica)/5.0;
5

}
void mostrarProm(Alumno alum) {
cout<<" CODIGO

PROMEDIO \n";

cout<<"-----------------------\n";
cout<<" "<<alum.codigo<<"

"<<alum.promedio<<"\n";

También podría gustarte