La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Alejandro R. Moyano1 Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 6. Estructuras Compuestas. Programación,

Presentaciones similares


Presentación del tema: "Alejandro R. Moyano1 Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 6. Estructuras Compuestas. Programación,"— Transcripción de la presentación:

1 Alejandro R. Moyano1 Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 6. Estructuras Compuestas. Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras.

2 Alejandro R. Moyano2 Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. Una estructura es una colección de variables, posiblemente de diferente tipo, agrupadas bajo un único nombre. Las estructuras permiten tratar variables relacionadas como una unidad y no como entidades separadas (Kernighan- Ritchie). Consideremos como que entidad básica es un punto. Asumiremos que tiene una coordenada x y una coordenada y, ambas enteras. Las dos componentes pueden ubicarse en una estructura declarada como sigue: Declaración de estructuras. Introducción.

3 Alejandro R. Moyano33 struct punto { int x; int y; }; Etiqueta de la estructura. Miembros de la Estructura. Declaración de la estructura. Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. La palabra reservada struct introduce la declaración de una estructura que es una lista de declaraciones encerrada entre llaves.

4 Alejandro R. Moyano44 struct punto { int x; int y; }; Declaración de la estructura: no reserva almacenamiento; es solamente una plantilla o forma de una estructura. Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. struct elemento_quimico { int num_atomico; char nombre[10]; char simbolo[3]; float masa; char *p1; }; 4 Otro ejemplo de declaraciones de estructuras: Cadena de caracteres. Variable tipo Puntero como miembro de una estructura.

5 Alejandro R. Moyano55 Definición de una variable tipo struct : La etiqueta puede usarse luego de una declaración en definiciones de instancias de la estructura. Por ejemplo, dada la declaración precedente de punto, struct punto pt ; Define una variable pt que es una estructura de tipo struct punto. Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras.

6 Alejandro R. Moyano6 Define una variable pt que es una estructura de tipo struct punto. struct punto { int x; int y; } pt ; Otra manera de definir una variable tipo struct. Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras.

7 Alejandro R. Moyano7 Autorreferencias en Estructuras: Una estructura no puede contener una instancia de sí misma entre sus miembros. Sin embargo, puede contener un puntero a una estructura del mismo tipo. struct empleado { char nombre[20]; char apellido[20]; int edad; char sexo; double salario_por_hora; struct empleado e; struct empleado *ptr; }; /*****ERROR*****/ Puntero a una struct empleado. Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras.

8 Alejandro R. Moyano88 Inicialización de estructuras al momento de declararlas. Una estructura puede inicializarse a continuación de su definición con una lista de inicialización. struct punto pt = { 1, 3 }; Inicialización de todos los miembros de la estructura pt. Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras.

9 Alejandro R. Moyano99 struct ficha_personal{/*Declaración de la estructura.*/ char nombre[20]; char apellido[20]; int edad; char sexo; float salario_por_hora; /*en pesos*/ };.. /* Inicialización de una estructura tipo: struct ficha_personal*/ struct ficha_personal empleado_1 = {Roger", Waters", 15, M, 15.35}; Otro ejemplo de inicialización de estructuras. Inicialización de todos los miembros de la estructura empleado_1 Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras.

10 Alejandro R. Moyano10 etiqueta_estructura. nombre_miembro El operador punto conecta el nombre de la estructura y el nombre del miembro al que se desea acceder. 10 Acceso a miembros de una estructura. Se puede hacer acceder a un miembro particular de una estructura por medio de una construcción de la forma: Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras.

11 Alejandro R. Moyano11 Ejemplo: Podemos imprimir las coordenadas del punto pt como sigue. struct punto{ /*declaración */ int x; int y; }; /*definición e inicialización*/ struct punto pt = { 1, 3 }; /*se imprimen los miembros de la estructura pt */ printf("%d,%d", pt. x, pt. y ); Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras.

12 Alejandro R. Moyano12 Ejemplo: Podemos ingresar por teclado las coordenadas del punto pt. struct punto{ /*declaración */ int x; int y; }; struct punto pt; /*definición*/ /*Podemos ingresar por teclado las coordenadas de pt*/ printf( " Ingrese el valor de la coordenada x:"); scanf("%d", &pt.x); printf( " Ingrese el valor de la coordenada y:"); scanf("%d", &pt.y); fflush(stdin); Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras.

13 Alejandro R. Moyano13 Estructuras anidadas. struct circunferencia{ struct punto centro; int radio; }; struct punto{ /*declaración */ int x; int y; };... Estructura como un miembro de una estructura. Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras.

14 Alejandro R. Moyano14 Miembros de la estructura struct circunferencia struct circunferencia centro radio x y Acceso a los miembros de centro: circunferencia.centro.x circunferencia.centro.y Acceso a radio: circunferencia.radio Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras.

15 Alejandro R. Moyano15 Punteros a Estructuras. También podemos acceder a los miembros de una estructura usando punteros a estructuras. Los punteros a estructuras son como punteros a variables ordinarias char, int, etc. struct punto *pp ; Declaración de un puntero a una Estructura. pp es un puntero a una estructura de tipo struct punto. Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras.

16 Alejandro R. Moyano16 Por medio del puntero pp accedemos a los miembros de la estructura como sigue: (*pp).x; (*pp).y; Acceso a los miembros de una estructura con punteros. Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. Los paréntesis en (*pp) son necesarios porque el operador miembro. tiene precedencia superior a la del operador indirección *.

17 Alejandro R. Moyano17 Ejemplo: struct punto{ /*declaración */ int x; int y; };... struct punto par_ordenado, *pp; par_ordenado.x=8; par_ordenado.y=23; pp = &par_ordenado; (*pp).x=12; (*pp).y=3; printf( " El par ordenado es:(%d, %d)\n", (*pp).x, (*pp).y); Asignación de una dirección a un puntero. La dirección de una estructura es la misma que la dirección de su primer miembro. Por ejemplo: &par_ordenado es &par_ordenado.x Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. Acceso a los miembros de una estructura usando un puntero.

18 Alejandro R. Moyano18 Notación alternativa para punteros a estructuras. Si p es un puntero a una estructura, entonces es posible hacer referencia a un miembro en particular de la siguiente manera: p -> miembro_de_la_estructura Formas equivalentes de acceso a los miembros de una estructura. (*pp).x=12; pp->x=12;... printf("El par ordenado es:(%d, %d)\n", pp->x, pp->y); Imprime los miembros de par_ordenado. Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. Tienen el mismo significado. Consiste de un signo menos seguido de un signo mayor que. No se permiten espacios en blanco entre - y >.

19 Alejandro R. Moyano19 Las estructuras permiten manipular datos de complejidad mayor comparada a la de los tipos básicos de datos (char, int, etc). A través del uso de estructuras, el programador puede extender el lenguaje con nuevos tipos. Kernighan Brian W. y Ritchie Dennis M. "El lenguaje de programación C", 2a. Ed. Prentice Hall Conclusiones: Programación, Algoritmos y Estructuras de Datos. Curso Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. Referencia:


Descargar ppt "Alejandro R. Moyano1 Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 6. Estructuras Compuestas. Programación,"

Presentaciones similares


Anuncios Google