estructuras

20
ESTRUCTURAS Es 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 la estructura 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 estructur as, se requie re declar ar y luego asignar valores a los miembros de la estructura. 1 A 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

Upload: ronaldo1962

Post on 08-Dec-2015

212 views

Category:

Documents


0 download

DESCRIPTION

Curso de algoritmos

TRANSCRIPT

Page 1: 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

Page 2: Estructuras

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 …. …..

Page 3: Estructuras

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

Page 4: Estructuras

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

Page 5: Estructuras

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

Page 6: Estructuras

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

Page 7: Estructuras

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

Page 8: Estructuras

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

Page 9: Estructuras

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

Page 10: Estructuras

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

Page 11: Estructuras

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

Page 12: Estructuras

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

Page 13: Estructuras

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

Page 14: Estructuras

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

Page 15: Estructuras

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

Page 16: Estructuras

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

Page 17: Estructuras

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

Page 18: Estructuras

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

Page 19: Estructuras

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

Page 20: Estructuras

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