Diseño de algoritmos “Estructuras”
description
Transcript of Diseño de algoritmos “Estructuras”
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
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;
};
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.
Estructuras
Declaración de Variables de tipo estructuraSintaxis: struct nombre_estructura var1,var2,.... ,varN;o struct nombre_estructura{
Elementos de estructura }var1,var2,....,varN;
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;
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.
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);
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);}
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;
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];
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];
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); }
Estructuras
Estructuras en las funciones
Funciones de tipo estructuraSon las funciones que devuelven datos de tipo estructura.
Sintaxis:struct nombre_estructura nombre_funcion(parametros){}
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);}
¿Preguntas?