4
Laboratorio de Programación I Página 138 Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero Sesión N° 25 UNIVERSIDAD CATÓLICA DE SANTA MARÍA PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS SESIÓN 25: Arreglos de Estructuras en C/C++ I OBJETIVOS Comprender los conceptos de arreglos de variables tipo struct y su implementación dentro de programas. Aplicar arreglos de variables tipo struct en la solución de problemas de gestión de datos. Valorar las ventajas y capacidades que proporcionan los arreglos de variables tipo struct. II TEMAS A TRATAR Introducción. Arreglos de Estructuras Resumen. III MARCO TEORICO 1. INTRODUCCIÓN Lenguaje C proporciona formas diferentes de creación de tipos de datos propios. Uno de ellos es la agrupación de variables bajo un mismo nombre, Otra es permitir que la misma parte de memoria sea definida como dos o más tipos diferentes de variables y también crear una lista de constantes entera con nombre. Existen circunstancias en que son especialmente importantes y útiles las estructuras, cuando se trata de almacenar y recuperar registros de datos en medios externos (disco por ejemplo). En estos casos, las estructuras son especialmente idóneas para escribir y recuperar toda la información contenida en ellas en una sola operación de lectura/escritura. Las estructuras son tipos nuevos definidos por el usuario (nuevos en el sentido de que no están predefinidos en el lenguaje), se engloban dentro de la categoría general de tipos derivados. Representan conjuntos de miembros que pueden ser a su vez de tipo básico o derivado con ciertas; además también pueden ser miembros los campos de bits. En otros lenguajes se les denomina registros ( records); sus componentes se denominan "miembros", aunque en ocasiones también se suelen llamar "campos". 2. ARREGLOS DE ESTRUCTURAS Las estructuras actúan como variables tipo registro, es conveniente en vez de manejar una única estructura, manejar una agrupación de ellas que pueda ser gestionada como se

Guia de Practicas de Programacion I - Sesion 25 - 2012

Embed Size (px)

DESCRIPTION

PROGRAMACION 1

Citation preview

Page 1: Guia de Practicas de Programacion I - Sesion 25 - 2012

Laboratorio de Programación I Página 138

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero Sesión N° 25

UNIVERSIDAD CATÓLICA DE SANTA MARÍA PROGRAMA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN N° 25:

Arreglos de Estructuras en C/C++

I

OBJETIVOS

Comprender los conceptos de arreglos de variables tipo struct y su implementación dentro de programas.

Aplicar arreglos de variables tipo struct en la solución de problemas de gestión de datos. Valorar las ventajas y capacidades que proporcionan los arreglos de variables tipo struct.

II

TEMAS A TRATAR

Introducción. Arreglos de Estructuras Resumen.

III

MARCO TEORICO

1. INTRODUCCIÓN

Lenguaje C proporciona formas diferentes de creación de tipos de datos propios. Uno de ellos es la agrupación de variables bajo un mismo nombre, Otra es permitir que la misma parte de memoria sea definida como dos o más tipos diferentes de variables y también crear una lista de constantes entera con nombre.

Existen circunstancias en que son especialmente importantes y útiles las estructuras, cuando se trata de almacenar y recuperar registros de datos en medios externos (disco por ejemplo). En estos casos, las estructuras son especialmente idóneas para escribir y recuperar toda la información contenida en ellas en una sola operación de lectura/escritura.

Las estructuras son tipos nuevos definidos por el usuario (nuevos en el sentido de que no están predefinidos en el lenguaje), se engloban dentro de la categoría general de tipos derivados. Representan conjuntos de miembros que pueden ser a su vez de tipo básico o derivado con ciertas; además también pueden ser miembros los campos de bits.

En otros lenguajes se les denomina registros (records); sus componentes se denominan "miembros", aunque en ocasiones también se suelen llamar "campos".

2. ARREGLOS DE ESTRUCTURAS

Las estructuras actúan como variables tipo registro, es conveniente en vez de manejar una única estructura, manejar una agrupación de ellas que pueda ser gestionada como se

Page 2: Guia de Practicas de Programacion I - Sesion 25 - 2012

Laboratorio de Programación I Página 139

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero Sesión N° 25

hacen con los arreglos convencionales, este mecanismo nos permite simplificar el almacenamiento de datos, y nos permite a su vez manejar colecciones de datos de variados tipos..

A. DECLARACIÓN DE ARREGLOS DE ESTRUCTURAS

Para C++ se sigue siempre un mismo patrón:

struct loc { int piso; char habit; char nombre[30]; } ;

struct loc hotel[5];

La primera línea define un tipo de estructura loc con tres miembros (un int, un char y una matriz de 30 char); la segunda declara una matriz, hotel de 5 elementos cuyos miembros son estructuras de tipo loc.

La declaración puede hacerse en una sentencia:

struct loc { int piso; char habit; char nombre[30]; } hotel[5];

Es posible hacerlo de la forma anónima, aunque de este modo perderíamos la posibilidad de declarar más tarde estructuras "hermanas" de los elementos de hotel:

struct { int piso; char habit; char nombre[30]; } hotel[5];

Es posible hacer la inicialización (definición) de la matriz en la misma sentencia siguiendo la norma general para las matrices.

struct { int piso; char habit; char nombre[30]; } hotel[5] = { {1, 'A', {'M','a','r','t','i','n','e','z'} },

{1, 'A', {'G','o','m','e','z'} }, {1, 'A', {'A','l','v','a','r','e','z'} }, {1, 'A', {'G','i','r','e','l','a'} },

{1, 'A', {'P','e','r','e','z'} }, };

Incluso se podría haber economizado alguna información al compilador:

struct { int piso; char habit; char nombre[30]; } hotel[] = { 1, 'A', {'M','a','r','t','i','n','e','z'} ,

1, 'A', {'G','o','m','e','z'} ,

1, 'A', {'A','l','v','a','r','e','z'} , 1, 'A', {'G','i','r','e','l','a'} , 1, 'A', {'T','r','e','s','c','a','s','t','r','o'} ,

};

la dimensión del arreglo puede deducirse del número de datos usados en la inicialización; de igual forma, los separadores de los elementos también, porque la propia estructura declarada (un int seguido de un char seguido de un array), hace que el compilador pueda conocer cuando termina una estructura y comienza la siguiente. Ejemplo:

struct ficha {

char* marca;

int fecha; double peso;

} Matriz_de_fichas[]= { { "Ford", 1956, 1950 }, {"Mercedes",1999,2050 }, };

Observe que en este caso, las matrices alfanuméricas "Ford" y "Mercedes" son externas a

Page 3: Guia de Practicas de Programacion I - Sesion 25 - 2012

Laboratorio de Programación I Página 140

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero Sesión N° 25

las estructuras y por tanto, externas también a la propia matriz_de_fichas de dos estructuras tipo ficha.

3. RESUMEN

Los arreglos de estructuras son agrupaciones de estructuras que tiene los mismos datos agrupados y nos permiten manejar un grupo de información de varios tipos la cual esta referida a un solo ítem o individuo, bajo este esquema es posible almacenar en memoria un grupo de datos con múltiples campos, hay que tener en cuenta que las estructuras son consideradas los tipos de datos registros en Lenguaje C, todos los datos miembro de la estructura son públicos por lo que se puede accesar en cualquier momento.

IV

(La práctica tiene una duración de 2 horas) ACTIVIDADES

1. Encender el equipo de cómputo, si existe algún desperfecto o faltante en el equipo comunicarlo inmediatamente.

2. Al aparecer la solicitud de contraseña hacer clic en el botón Cancelar o ingresar el nombre de cuenta(login) y contraseña(password) que especifique el Docente. Esperar que aparezca el mensaje de Inicio de sesión.

3. Crear una carpeta que se llame Programación I y dentro de ella una que se llame Práctica Nº 25 dentro de la carpeta Mis Documentos.

4. Ejecute el Visual Studio 2010, crear un nuevo proyecto CRL, para esto elegir en la pestaña Archivo y aquí elegir la opción más adecuada.

5. Nombrar los archivos como se indica en el archivo Actividades N° 25 que se adjunta y asegurarse de almacenarlos en la carpeta Práctica Nº 25 al momento de crearlos.

6. Realizar las acciones indicadas en el archivo adjunto. 7. Al finalizar la práctica de be guardar todos sus archivos, ya sea en su memoria USB o por

correo electrónico y luego eliminar los archivos del equipo y vaciar la papelera de reciclaje.

V

EJERCICIOS

1. Agregue al programa una funcionalidad que permita mostrar la cantidad de espacio utilizado en memoria por una estructura.

2. Agregue al programa una funcionalidad que permita mostrar por pantalla a los alumnos que pertenecen al tercio superior.

3. Agregue una funcionalidad al programa que permita mostrar a los alumnos del quinto superior.

VI

CUESTIONARIO

1. ¿Qué es un arreglo de estructuras?. 2. ¿Cómo se declarar un arreglo de estructuras?. 3. ¿Cómo se almacena en memoria un arreglo de estructuras?. 4. ¿Porqué se debe declarar primero la estructura y luego el arreglo de estructuras?. 5. ¿Qué ventajas permite la gestión de datos mediante arreglos de estructuras?. 6. ¿Cómo se define un arreglo de estructuras?. 7. ¿Cuántas dimensiones puede tener un arreglo de estructuras?. 8. ¿Qué tipos de operadores podemos usar para acceder a los datos miembro en un arreglo

de estructuras?. 9. ¿Cómo accedemos a los datos miembros de un arreglo de estructuras?. 10. ¿Dentro de una estructura se puede incluir una función?.

VII

Page 4: Guia de Practicas de Programacion I - Sesion 25 - 2012

Laboratorio de Programación I Página 141

Mgter. Ángel Montesinos Murillo, Mgter. Manuel Zúñiga Carnero Sesión N° 25

BIBLIOGRAFIA Y REFERENCIAS

Deitel, Paul J., Deitel, Harvey M., "Cómo Programar en C++", 6ta Edición, Ed. Pearson Educación, México 2009.

Ceballos Sierra, Francisco J., "Curso de Programación C++. Programación Orientada a Objetos"; MADRID, RA-MA, 1991.

Kernighan, Brian W., Ritchie, Dennis M., "El Lenguaje de Programación C", 2da Edición, Ed. Prentice Hispanoamérica S. A., México 1991.