You are on page 1of 34

Algoritmos, Estructuras y Programacin II

Tema: Estructuras
Ing. Vanessa Borjas

La capacidad de crear nuevos tipos de datos es una caracterstica importante y potente de C y libera a un programador de restringirse al uso de los tipos ofrecidos por el lenguaje. Una estructura contiene mltiples variables, que pueden ser de tipos diferentes.

Los arrays son estructuras de datos que contienen un nmero determinado de elementos (su tamao) y todos los elementos han de ser del mismo tipo de datos; es una estructura de datos homognea. Por ejemplo, si se dispone de una lista de temperaturas, es muy til un array; sin embargo, si se necesita una lista de informacin de clientes que contengan elementos tales como el nombre, la edad, la direccin, el nmero de cuenta, entre otros, los arrays no son adecuados. La solucin a este problema es utilizar un tipo de dato registro, en C llamado ESTRUCTURA.

ESTRUCTURA
Es una coleccin de uno o ms tipos de elementos denominados miembros, cada uno de los cuales puede ser un tipo de dato diferente.

Miembros de una estructura


Los componentes individuales de una estructura se llaman miembros. Cada miembro (elemento) de una estructura puede contener datos de un tipo diferente de otros miembros. Por ejemplo, se puede utilizar una estructura para almacenar diferentes tipos de informacin sobre una persona, tal como nombre, estado civil, edad y fecha de nacimiento. Cada uno de estos elementos se denominan nombre del miembro.

Una estructura puede contener cualquier nmero de miembros, cada uno de los cuales tiene un nombre nico, denominado nombre del miembro. Supongamos que se desea almacenar los datos de una coleccin de discos compactos (CD) de msica. Estos datos pueden ser: Ttulo. Artista. Nmero de canciones. Precio. Fecha de compra.

La estructura CD contiene cinco miembros. Tras decidir los miembros, se debe decidir cules son los tipos de datos para utilizar por los miembros. Ejemplo:
Nombre miembro Ttulo Artista Nmero de canciones Precio Fecha de compra Tipo de dato Array de caracteres de tamao 30. Array de caracteres de tamao 25. Entero. Coma flotante. Array de caracteres de tamao 10

Declaracin de una estructura


struct <nombre de la estructura> { <tipo de dato miembro > <nombre miembro1_> <tipo de dato miembro> <nombre miembro_2> ... <tipo de dato miembro> <nombre miembro_n> };

La estructura es un tipo de dato definido por el usuario, que se debe declarar antes de que se pueda utilizar.

Ejemplo:

Diferencia entre declaraciones y definiciones de estructuras.


Una declaracin especifica simplemente el nombre y el formato de la estructura de datos, pero no reserva almacenamiento en memoria. En este caso, la declaracin especifica un nuevo tipo de dato: struct <nombre-estructura>. Cada definicin de variable para una estructura dada crea un rea en memoria en donde los datos se almacenan de acuerdo al formato estructurado declarado.

Las variables de estructuras se pueden definir de dos formas.

Listndolas inmediatamente despus de la llave de cierre de la declaracin de la estructura.

Listando el tipo de la estructura creado seguido por las variables correspondientes en cualquier lugar del programa antes de utilizarlas.

Ejemplo:
1 2

Existen dos formas de inicializar una estructura:

Dentro de la seccin de cdigo de su programa (de la estructura).

Se puede inicializar la estructura como parte de la definicin.

Ejemplo:
1

Acceso a estructuras
Cuando se accede a una estructura, o bien se almacena informacin en la estructura o se recupera la informacin de ella. Se puede acceder a los miembros de una estructura utilizando el operador punto [.] La sintaxis es:
<nombre_variable_estructura>.<nombre_miembro>=datos;

Ejemplo

Nota: para poder usar la funcin strcpy se necesita la librera string.h

Arrays de Estructuras
Se puede crear un array de estructuras tal como se crea un array de otros tipos. Los arrays de estructuras son idneos para almacenar un archivo completo de empleados, un archivo de inventario, o cualquier otro conjunto de datos que se adapte a un formato de estructura.

Arrays de Estructuras
La declaracin de un array de estructuras cd se puede hacer de un modo similar a cualquier array, es decir,

asigna un array de 3 elementos denominado mis_cds. Para acceder a los miembros de cada uno de los elementos estructura se utiliza una notacin de array.

Para inicializar el primer elemento de mis_cds, por ejemplo, su cdigo debe hacer referencia a los miembros de mis_cds[0] de la forma siguiente:

Ejemplo de Estructuras
El ejemplo a continuacin es un programa donde se declara una estructura cd con los miembros: ttulo, artista, nmero de canciones, precio y fecha de compra. Se cre un array de 3 elementos de tipo estructura cd. Los miembros de cada elemento del array sern llenados por el usuario del programa.

Libreras, declaraciones, prototipos y variables.

Funcin para leer los datos

Funcin para mostrar los datos

Men de opciones

Men de opciones
(continuacin)

Men de opciones
(continuacin)

Funcin Principal

Ejercicio Propuesto
Una empresa de venta de productos necesita un programa que le permita hacer un registro de sus proveedores, clientes, empleados y productos. Al abrir el programa, lo primero que debe aparecer es un mensaje de bienvenida con el nombre de la empresa. Seguidamente, debe mostrar un men principal con las opciones:

1) 2) 3) 4) 5)

Proveedores. Clientes. Empleados. Productos. Salir del sistema.

La opcin 1 (Proveedores) debe llevar al submen: 1) Nuestros Proveedores. 2) Registrar proveedores. 3) Mostrar lista de proveedores. 4) Volver al men inicial.

La opcin 2 (Clientes) debe llevar al submen: 1) Registrar clientes. 2) Mostrar lista de clientes. 3) Volver al men inicial. La opcin 3 (Empleados) debe llevar al submen: 1) Nuestra gente. 2) Registrar empleados. 3) Mostrar lista de empleados. 4) Volver al men inicial.

La opcin 4 (Productos) debe llevar al submen: 1) Nuestros productos. 2) Registrar productos. 3) Mostrar lista de productos. 4) Volver al men inicial. La opcin 5 debe salir del sistema.

Las opciones nuestros proveedores, nuestra gente y nuestros productos, deben dar una breve resea. Por ejemplo:

Nuestros productos: Nuestra empresa est comprometida a poner en las manos de nuestros clientes los productos de mayor calidad dentro del mercado. Nuestro objetivo es lograr la satisfaccin del cliente, dndoles el producto que necesitan al precio ms accesible.

El programa debe aceptar el registro de al menos: 3 proveedores. 3 clientes. 3 empleados. 3 productos. Haga uso de estructuras y arreglos de estructuras.

Fuente: PROGRAMACIN EN C. Metodologa, algoritmos y estructuras de datos. Autores: Luis Joyanes Aguilar, Ignacio Zahonero Martnez.

You might also like