estructuras

Post on 08-Dec-2015

212 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Curso de algoritmos

TRANSCRIPT

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

top related