Download - Estructuras
ESTRUCTURASEs un nuevo tipo de dato que colecciona diferentes tipos de datos lógicamente relacionados.
A las estructuras también se conocen como dato de tipo heterogéneo
En otros lenguajes de programación se conoce a laestructura como registros y se manipula a través de unúnico nombre de variable.
A los elementos individuales (miembros) de la estructura se llama también campos.
Para trabajar con estructuras, se requiere declarar yluego asignar valores a los miembros de la estructura.
1A L G O R I T M O S Y E S T R U C T U R A D E D A T O S
DECLARACION DE LA ESTRUCTURA
Una estructura es necesario declarar antes de usar asícomo cualquier otra variable.
struct <Nombre Estructura>
{ <tipo dato> variable;
<tipo dato> variable;
};
Ejem.
struct Producto
{ char Nparte[15];
char descrip[70];
float cant,costou;
};costou
Nparte Descrip unidad cant.
Imagínese la estructura se llama Producto
2A L G O R I T M O S Y E S T R U C T U R A D E D A T O S
hc71 Cascos Und. 250 5.60 …. …..
DECLARACION
Otra manera de declarar siguiente manera.
struct <Nombre Estructura>
{ <tipo dato> variable;
<tipo dato> variable;
}<Lista Variable>
DE
una
LA ESTRUCTURA
estructura es realizadoEjem.
de la
struct Producto
{ char Nparte[15];
char descrip[70];
float cant,costou;
}P, Q,R;
En este caso lasestructura) y son
variables P, Q y Rson de tipo Producto (de alcance global
3A L G O R I T M O S Y E S T R U C T U R A D E D A T O S
DECLARACION DE VARIABLES ESTRUCTURA
Una vez definida la estructura, lo siguiente es declarar las variables bajo la siguiente sintaxis:
<tipo dato> <Nombre Variable(s);
Para nuestro ejemplo
Producto
Producto
A, B, C;
T, M;
// A, B y C son variables tipo Producto osea struct
Nparte descrip unidad cant costou
4A L G O R I T M O S Y E S T R U C T U R A D E D A T O S
ASIGNACION DE DATOS
Para almacenar datos en una estructura podemosrealizar al momento de declarar la variable o usandoinstrucciones de lectura conocidas.
Durante la declaración de la variable
<tipo dato> NombreVariable={<Lista de datos>};
las
Los datos deben ir separado por comas(,) y si soncadenas encerrado entre comillas(“”)
Ejemplo
Producto Items={“HC71","Cascos", 150, 5.6};
5A L G O R I T M O S Y E S T R U C T U R A
D E D A T O S
ASIGNACION DE DATOS
Mediante las instrucción de Lectura
Para leer datos numéricos y almacenar en los campos dela estructura usamos la instrucción cin.
Para leer datos tipo cadena utilizarems las funcionespredefinidas gets o cin.getline
Para leer datos tipo caracter(un solo carácter) podemosusar la instrucción cin o cin.get
6A L G O R I T M O S
Y E S T R U C T U R A D E D A T O S
ACCESO A LOS CAMPOS DE UNA ESTRUCTURA
Para acceder a los campos de una variable estructurautilizar el operador punto (.)
Si la variable estructura es tipo puntero utilizar el carácterflecha ( )
Ejemplo
o el operador de indireccion (*)
Para mostrar el contenido de los campos deestructura Items se tiene que realizar asi:
la variable
cout<<Items.nparte<<Items.descrip<<Items.cant;
cout<<Items.costou<<endl;
7A L G O R I T M O S Y E S T R U C T U R A D E D A T O S
EJEMPLO
#include <iostream>using namespace std;
ESTRUCTURA
struct fingdd,mm,aa;{
};int
struct{ char
regcodigo[10],nombre[25],cargo[15];
float sueldo;fing fecha;
};
8A L G O R I T M O S
Y E S T R U C T U R A
D E D A T O S
EJEMPLO ESTRUCTURA
//Implementacion de las funciones
void Leer(reg &T){ cout<<"Codigo:"; cin.getline(T.codigo,8);
cout<<"Nombres:"; cin.getline(T.nombre,25);cout<<"Cargo:"; cin.getline(T.cargo,15);cout<<"Sueldo:";cin>>T.sueldo;cout<<"Fecha Ingreso\n"; cout<<"Dia:";cin>>(T.fecha.dd); cout<<"Mes:";cin>>T.fecha.mm; cout<<"Año:";cin>>T.fecha.aa;
}
9A L G O R I T M O S
Y E S T R U C T U R A
D E D A T O S
EJEMPLO ESTRUCTURA
void Leer1(reg *R){ cout<<"Codigo:"; cin.getline(R->codigo,6);
cout<<"Nombres:"; cin.getline(R->nombre,25); cout<<"Cargo:"; cin.getline(R->cargo,15); cout<<"Sueldo:";cin>>R->sueldo;cout<<"Fecha Ingreso\n"; cout<<"Dia:";cin>>R->fecha.dd; cout<<"Mes:";cin>>R->fecha.mm; cout<<"Año:";cin>>R->fecha.aa;
}
10A L G O R I T M O S
Y E S T R U C T U R A
D E D A T O S
EJEMPLO ESTRUCTURA
void Ver(reg T){
cout<<"Codigo :"<<T.codigo<<endl; cout<<"Nombres :"<<T.nombre<<endl; cout<<"Cargo :"<<T.cargo<<endl; cout<<"Sueldo :"<<T.sueldo<<endl;
cout<<"Fecha Ingreso:"<<T.fecha.dd<<"/“<<T.fecha.mm<<"/“<<T.fecha.aa<<endl;}void Ver1(reg *R){ cout<<"Codigo :"<<R-
>codigo<<endl; cout<<"Nombres :"<<R->nombre<<endl; cout<<"Cargo :"<<R->cargo<<endl; cout<<"Sueldo :"<<R->sueldo<<endl;
cout<<"Fecha Ingreso:"<<R->fecha.dd<<"/"<<R->fecha.mm<<"/"<<R-
>fecha.aa<<endl;}
11A L G O R I T M O S Y E S T R U C T U R A D E D A T O S
EJEMPLO ESTRUCTURA
//Programa Principal int main(){ reg Ficha, Ficha1; reg *F;
cout<<"LECTURA DELeer(Ficha); Ver(Ficha); F=&Ficha1; Leer1(F); Ver1(F);
DATOS"<<endl;
}
12A L G O R I T M O S
Y E S T R U C T U R A
D E D A T O S
EJEMPLO ESTRUCTURA
13A L G O R I T M O S Y E S T R U C T U R A
D E D A T O S
ARREGLO DE ESTRUCTURAS
El verdadero poder de las estructuras radican cuando seemplean para procesar grandes lista de datos.
Trabajar con un arreglo de estructuras, simplifica muchonuestro programa, ya que se usa una única variablesubindicada en vez de usar varios arreglosindependientes para cada tipo de dato.
Declarardeclarar
un arreglo de estructuras es lo mismo queun arreglo de cualquier otro tipo de variable.
14A L G O R I T M O S Y E S T R U C T U R A D E D A T O S
ARREGLO DE ESTRUCTURAS
Una vez definida la estructura podemos crearestructura.
Para declarar un arreglo tipo estructura usar ya conocida:
la variable
la sintaxis
<tipo dato> <Nombre Variable>[N];
Donde N: Indica el tamaño de arreglo unidimensional
Ejemplo
Producto A[50], B[30]; //A y B son arreglo de estructuras
// de 50 y 30 elementos respectivamente
15A L G O R I T M O S Y E S T R U C T U R A D E D A T O S
ARREGLO DE ESTRUCTURAS
La declaración anterior se muestra así
16A L G O R I T M O S
Y E S T R U C T U R A
D E D A T O S
EJEMPLO ARRAYS DE ESTRUCTURA
#include <iostream>using namespace std;const int N=40;struct nReg{ long int id;char nombre[20];float
};tasa;
17A L G O R I T M O S Y E S T R U C T U R A D E D A T O S
EJEMPLO ARRAYS DE ESTRUCTURA//Implementacion de las funciones void Leer(nReg X[],int n){ int i;
for(i=0;i<n;i++){ cout<<"Id["<<i<<"]="; cin>>X[i].id;
cout<<"Nombre["<<i<<"]="; cin.getline(X[i].nombre,20);cout<<"Tasa["<<i<<"]="; cin>>X[i].tasa;
}}
void Ver(nReg X[],int n){ int i;
for(i=0;i<n;i++)cout<<X[i].id<<"\t"<<X[i].nombre<<"\t"<<X[i].tasa<<endl;}
18A L G O R I T M O S Y E S T R U C T U R A
D E D A T O S
EJEMPLO ARRAYS DE ESTRUCTURA
//Programa principalint main(){ nReg A[N];
int n; cout<<"Numero Leer(A,n); Ver(A,n);
de registros:";cin>>n;
}
19A L G O R I T M O S
Y E S T R U C T U R A D E D A T O S
EJEMPLO ARRAYS DE ESTRUCTURA
20A L G O R I T M O S Y E S T R U C T U R A D E D A T O S