Estructuras Compuestas.

Slides:



Advertisements
Presentaciones similares
Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Advertisements

ING SEC 3 - UCSC Agosto 2009 Laboratorio Lenguaje de Programación ING – Universidad Católica SSMA Concepción Semestre II Tema:
Curso de Java Capitulo 2: Introducción a Java Profesor:
Instrucciones Básicas Entrada de Información
Fundamentos de Programación I Agradecimientos al Ing. Namuel Solórzano Peralta por el contenido de esta presentación.
Estructuras en C++ Roger Morera Fallas.
Diseño de algoritmos “Estructuras”
Ing. Eduard Antonio Lozano Córdoba
Repaso para la construcción del intérprete 2012
Fundamentos de la Programación Estructurada
Programación I Teoría III
Programación I Teoría IV
Direcciones, Arreglos y Argumentos de Funciones
Estructuras de datos. Programación, Algoritmos y Estructuras de Datos.
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Tipos de Datos Básicos y Estructurados
Variables Prof. Gonzalo Pastor.
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
MANEJO DE ARRAYS EN C.
ESTRUCTURAS DE DATOS.
INFORMATICA I Arreglos 1 CLASE 17.
INFORMATICA I Arreglos 2 CLASE 18.
Cadenas de caracteres.
Programación 1 Presentación de c++
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Ismael Camarero1. 2 ¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria.
Introducción al lenguaje C++
Una breve introducción
Unidad 3 Punteros.
¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No.
String o Cadenas Prof. Gonzalo Pastor. Cadenas o String ► En C, una cadena o texto se define como un vector de caracteres de longitud determinada que.
Conceptos Básicos de Java

Programación Orientada a Objetos usando C++
POO Java Módulo 3 Elementos de programas Identificadores
Diseño de algoritmos “Estructuras”
Diseño de algoritmos “Punteros”
 2003 Prentice Hall, Inc. All rights reserved. 1 Capítulo 6: Clases y Abstracción de Datos Índice del capítulo 6.1 Introducción 6.2 Estructuras 6.3 Clases.
Tema 3 Entrada y Salida.
Tema 9 Estructuras.
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
Introducción a los punteros
Capítulo 5. Punteros y Cadenas de Caracteres
Informática Ingeniería en Electrónica y Automática Industrial
Índice. Revisando conceptos acerca de la memoria.
Estructuras.
 2003 Prentice Hall, Inc. All rights reserved. 1 Capítulo 4 - Arrays Índice del Capítulo 4.1Introducción 4.2Arrays 4.3Declaración de Arrays 4.4Ejemplos.
Unidad VI Registros (estructuras, uniones y enumeraciones)
El lenguaje de programación C - Identificadores y variables – Isidro González Caballero ( Introducción.
El lenguaje de programación C - Vectores y matrices -
Introducción a la Programación “El lenguaje C” Manuel Crisosto M., Claudio Gutiérrez S., Christian Vidal C.
Informática Ingeniería en Electrónica y Automática Industrial
Programación en C para electrónicos
PUNTEROS Y REFERENCIAS
APUNTADORES.
Elementos básicos del lenguaje
Los punteros Programación modular.
Términos algoritmo diseñar algoritmo implementar algoritmo
Computación II Capitulo VII Punteros. Presentación de la unidad Objetivos: –Ser capaces de utilizar punteros. –Comprender las relaciones entre punteros,
Registros Departamento de Computación
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings

LENGUAJE “C” Programación.
Fundamentos de Programación
Lenguaje de programación c
Introducción al Lenguaje C (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
3.6 Manejo de E/S Estructuras En la creación de soluciones para algunos problemas surge la necesidad de agrupar datos de diferente tipo o de manejar datos.
Lenguaje de Programación II Prof. Rafael Montenegro B. Carrera: T.S.U en Informática Periodo: 2014-I.
Computación I :: Prof. Yeniffer Peña Lenguaje C Presentación Computación I.
Transcripción de la presentación:

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

Declaración de estructuras. Programación, Algoritmos y Estructuras de Datos. Curso 2011. Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. Introducción. 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). Declaración de estructuras. 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: Alejandro R. Moyano

Declaración de la estructura. Miembros de la Estructura. Programación, Algoritmos y Estructuras de Datos. Curso 2011. 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. Etiqueta de la estructura. Declaración de la estructura. struct punto { int x; int y; }; Miembros de la Estructura. Alejandro R. Moyano 3

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

Define una variable pt que es una estructura de tipo struct punto. Programación, Algoritmos y Estructuras de Datos. Curso 2011. Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. 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, Define una variable pt que es una estructura de tipo struct punto. struct punto pt; Alejandro R. Moyano 5

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

Autorreferencias en Estructuras: Programación, Algoritmos y Estructuras de Datos. Curso 2011. Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. 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 . Alejandro R. Moyano

Inicialización de estructuras al momento de declararlas. Programación, Algoritmos y Estructuras de Datos. Curso 2011. Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. 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. Alejandro R. Moyano 8

Programación, Algoritmos y Estructuras de Datos. Curso 2011 Programación, Algoritmos y Estructuras de Datos. Curso 2011. Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. Otro ejemplo de inicialización de estructuras. 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}; Inicialización de todos los miembros de la estructura empleado_1 Alejandro R. Moyano 9

etiqueta_estructura.nombre_miembro Programación, Algoritmos y Estructuras de Datos. Curso 2011. Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. 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: etiqueta_estructura.nombre_miembro El operador punto conecta el nombre de la estructura y el nombre del miembro al que se desea acceder. Alejandro R. Moyano 10

struct punto{ /*declaración */ int x; int y; }; Programación, Algoritmos y Estructuras de Datos. Curso 2011. Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. 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); Alejandro R. Moyano 11

Programación, Algoritmos y Estructuras de Datos. Curso 2011 Programación, Algoritmos y Estructuras de Datos. Curso 2011. Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. 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); Alejandro R. Moyano 12

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

Programación, Algoritmos y Estructuras de Datos. Curso 2011 Programación, Algoritmos y Estructuras de Datos. Curso 2011. Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. 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 Alejandro R. Moyano 14

Punteros a Estructuras. Programación, Algoritmos y Estructuras de Datos. Curso 2011. Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. 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. Declaración de un puntero a una Estructura. pp es un puntero a una estructura de tipo struct punto. struct punto *pp ; Alejandro R. Moyano

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

Programación, Algoritmos y Estructuras de Datos. Curso 2011 Programación, Algoritmos y Estructuras de Datos. Curso 2011. Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. 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 Acceso a los miembros de una estructura usando un puntero. Alejandro R. Moyano 17

Programación, Algoritmos y Estructuras de Datos. Curso 2011 Programación, Algoritmos y Estructuras de Datos. Curso 2011. Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. 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 Consiste de un “signo menos” seguido de un signo “mayor que”. No se permiten espacios en blanco entre “ - ” y “ >”. 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); Tienen el mismo significado. Imprime los miembros de par_ordenado . Alejandro R. Moyano

Conclusiones: Referencia: Programación, Algoritmos y Estructuras de Datos. Curso 2011. Introducción teórica al Trabajo Práctico 6. Tema: Estructuras. Conclusiones: 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. Referencia: Kernighan Brian W. y Ritchie Dennis M. "El lenguaje de programación C", 2a. Ed. Prentice Hall 1991. Alejandro R. Moyano 19