Diseño de algoritmos “Estructuras”

16
Diseño de algoritmos “Estructuras” Claudio Gutiérrez-Soto.

description

Diseño de algoritmos “Estructuras”. Claudio Gutiérrez-Soto. Estructuras. Las estructuras son un conjunto de variables que se referencian bajo un mismo nombre, proporcionando un medio conveniente para mantener reunida la información relacionada. Estructuras. - PowerPoint PPT Presentation

Transcript of Diseño de algoritmos “Estructuras”

Page 1: Diseño de algoritmos “Estructuras”

Diseño de algoritmos“Estructuras”

Claudio Gutiérrez-Soto.

Page 2: Diseño de algoritmos “Estructuras”

Estructuras

Las estructuras son un conjunto de variables que se referencian bajo un mismo nombre, proporcionando un medio conveniente para mantener reunida la información relacionada

Page 3: Diseño de algoritmos “Estructuras”

EstructurasLas variables "campos" que abarca la estructura se llaman elementos

de la estructura. En general cada elemento de la estructura está relacionada lógicamente con los otros.

Ejemplo: Definición de una estructura para almacenar datos básicos de una persona.

struct usuario{char nombre[30];char calle[40];char cuidad[20];char region[3];char fono[7];int edad;

};

Page 4: Diseño de algoritmos “Estructuras”

Estructuras

La palabra clave struct, le indica al compilador que está siendo declarada una estructura. Obsérvese que la definición termina con un ; .

Esto es debido a que la definición de una estructura es una sentencia. Note que los campos dentro de una estructura no requieren ser del mismo tipo de dato. El número de estructuras y el número de campos dependerá del problema a resolver.

Page 5: Diseño de algoritmos “Estructuras”

Estructuras

Declaración de Variables de tipo estructuraSintaxis: struct nombre_estructura var1,var2,.... ,varN;o struct nombre_estructura{

Elementos de estructura }var1,var2,....,varN;

Page 6: Diseño de algoritmos “Estructuras”

EstructurasEjemplo: Definición de variables

struct usuario user1, user2;

Otra forma de poder haber hecho esto seria:

struct usuario{char nombre[30];char calle[40];char cuidad[20];char region[3];char fono[7];int edad;} user1,user2;

Page 7: Diseño de algoritmos “Estructuras”

Estructuras

Referencia a los elementos de una estructuraPara hacer referencia a los elementos de una

estructura se utiliza el operador punto “.” .Sintaxis:

var_tipo_struct.elementoEl nombre de la variable estructura va seguido del

punto y del nombre del elemento, referenciando ese elemento individual de la estructura.

Page 8: Diseño de algoritmos “Estructuras”

Estructuras

Ejemplo:printf("Ingrese el nombre para el primer usuario \n");gets(user1.nombre);printf("Ingrese la edad del primer usuario \n");scanf("%d",&user1.edad);

Page 9: Diseño de algoritmos “Estructuras”

Estructuras Inicialización de variables tipo estructurastruct usuario{

char nombre[30];char calle[40];char cuidad[20];char region[3];char fono[7];int edad;} user1,user2;

main(){ struct user1={“Claudio”,”Collao”,”Conce”,”Octava”,111,35}; printf(“Saludos %s \n”,user1.nombre);}

Page 10: Diseño de algoritmos “Estructuras”

Estructuras

Arreglos de estructuras

Supongamos nuestra estructura: struct usuarioy que deseamos declarar N usuarios, se suscitaría lo siguiente:struct usuario{

char nombre[30];char calle[40];char cuidad[20];char region[3];char fono[7];int edad;} user1,user2,..., userN;

Page 11: Diseño de algoritmos “Estructuras”

Estructuras

Arreglos de estructuras

Lo cual para acceder a cada variable se traduce en algo realmente complejo; Para resolver esta complejidad podemos utilizar un arreglo.

struct usuario{char nombre[30];char calle[40];char cuidad[20];char region[3];char fono[7];int edad;}user[N];

Page 12: Diseño de algoritmos “Estructuras”

Estructuras

Arreglos de estructuras

Por lo tanto se puede definir un arreglo de estructuras de la forma anterior o de la siguiente forma:

struct usuario user[N];

Page 13: Diseño de algoritmos “Estructuras”

Estructuras

Arreglos de estructuras

Para poder acceder a algún elemento del arreglo, se indica el nombre del arreglo, el índice del arreglo y el elemento de la estructura.

Por ejemplo: for(i=0;i<N ;i++) { printf("Ingrese el nombre para user[%d] \n",i); gets(user[i].nombre); }

Page 14: Diseño de algoritmos “Estructuras”

Estructuras

Estructuras en las funciones

Funciones de tipo estructuraSon las funciones que devuelven datos de tipo estructura.

Sintaxis:struct nombre_estructura nombre_funcion(parametros){}

Page 15: Diseño de algoritmos “Estructuras”

EstructurasEjemplo: En este ejemplo se crea una estructura

que almacena los elementos de los número complejos, o sea el valor real y el imaginario.

struct complejos{float real;float imaginario;

};

typedef struct complejos COMPLEX;

COMPLEX asignar(float Real , float Imag){

COMPLEX a;a.real=Real;a.imaginario=Imag;return(a);

}

main(){

COMPLEX a; float aR,aI;

printf(“ingrese la parte real para a\n”); scanf(“%f”,&aR);printf(“ingrese la parte imaginaria para a\n”); scanf(“%f”,&aI);a=asignar(aR,aI);}

Page 16: Diseño de algoritmos “Estructuras”

¿Preguntas?