








Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Practica 3 Estructuras estructuras de datos y algoritmos I
Tipo: Ejercicios
1 / 14
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!









Facultad de Ingeniería (^) Laboratorio de docencia
Edgar Tista
Estructuras de datos y algoritmos.
De la Cruz Diaz Lucero Michelle
19 de Agosto de 2019
Objetivo:
Utilizarás estructuras en lenguaje C para modelar tipos de dato abstracto e implementarlos en las estructuras de datos lineales. Actividades: Crear estructuras en lenguaje C. Crear tipos de datos utilizando estructuras. Introducción Un tipo de dato abstracto (TDA) es un conjunto de datos u objetos creado de manera personalizada por un programador para un fin específico. Un TDA es una abstracción que permite modelar las características de un elemento en particular. Un tipo de dato abstracto se puede manipular de forma similar a los tipos de datos que están predefinidos dentro del lenguaje de programación, encapsulando más información, según se requiera. La implementación de un tipo de dato abstracto depende directamente del lenguaje de programación que se utilice. En lenguaje C los tipos de dato abstracto se crean mediante las estructuras (struct). Estructuras en lenguaje C Una estructura es una colección de una o más variables, de iguales o diferentes tipos, agrupadas bajo un solo nombre, es decir, es un tipo de dato compuesto que permite almacenar un conjunto de datos de diferente tipo (agrupar un grupo de variables relacionadas entre sí) que pueden ser tratadas como una unidad (bajo un mismo nombre). Las estructuras pueden contener tipos de datos simples y tipos de datos compuestos. Los tipos de datos simples (o primitivos) son: carácter, números enteros o números de punto flotante. Los tipos de datos compuestos son: los arreglos y las estructuras. Por lo tanto, los tipos de datos abstractos (TDA) en lenguaje C se pueden crear a través de una estructura. Cada ente u objeto es una abstracción de un elemento y, por ende, se puede modelar a través de una estructura en lenguaje C: una película, un video, una pista musical, un documento a imprimir, las armas de un juego, etc. La sintaxis para crear estructuras en lenguaje C está definida por la palabra reservada struct, seguida del nombre de la estructura y, entre llaves, se definen el número y tipo de variables que definan al nodo (abstracción), es decir: struct nodo { tipoDato elemento1; tipoDato elemento2; … tipoDato elementoN; }; Para crear una variable de un tipo de dato abstracto, se debe especificar el nombre de la estructura y el nombre de la variable, es decir: struct nodo elemento; donde elemento es el nombre de la variable con la que se puede acceder a los datos definidos dentro de la estructura. Código (Nodo película)
datos y les asigna valores directos para inicializar las variables, al final del programa se encarga de imprimir el valor de las variables. Lista de peliculas
Empleado” Los modelos de las estructuras propuestos son los siguientes: Estuctura Tienda { Gerente (Persona encargada) Nombre (Mega, Walmart, Soriana) Zona (Norte, sur, este, centro) Sección[5] }; Estructura Gerente{ Nombre Apellido Salario (100000.00, 150000.00) }; Estructura Seccion{ Empleado (Eng¡cargado de la sección) Código sección (1234, 1235, 1236…) Categoría (abarrotes, frutas, juguetes) Producto[10] }; Estrucutra Empleado { Nombre Apellido Rango (intermedio, bajo, aprendiz) }; Estructura Producto { Clave (1234, 5678, 9012) Nombre (Atun, manzanas, leche cafe) Precio (20.00, 25.50, 12.50) }; Una buena practica de programación consiste en realizar funciones para trabajar de manera más sencilla con estructuras. Se proponen las siguientes funciones para trabajar con las estructuras descritas: crearTiendaDepartamental() crearSeccionTienda() crear Producto() inicializarGerente() inicializarEmpleado() mostrarSecciones() mostrarProductos() Realiza las siguientes actividades: a)Codifica las estructuras en el orden para que se puedan relacionar entre si. b)Define y codifica las las funciones realizadas para interactuar con las estructuras c)Para verificar las funciones realizadas, en la función principal del programa (main), agrega instrucciones para que el usuario pueda ingresar datos y se utilicen funciones. El usuario final deberá ser capaz de crear al menos 1 tienda departamental con 3 secciones, asignar al menos 2 productos por sección, (con su respectivo gerente y dos empleados) y mostrar la información en pantalla. No olvides realizar un análisis adecuado de los elementos teóricos requeridos para este ejercicio. INCISO A)
Primero, antes de declarar las estructuras, se analizó cuidadosamente el orden de cada una de ellas, posteriormente, en una hoja de papel, se numeró cada una de ellas y una vez numeradas, se declararon con cuidado y funcionaron en el primer intento. INCISOB)
Se presentaron problemas a partir de el case 4, presentaba un error indicando que los tipos de dato no eran los mismos. Me encontré con el mismo problema en el case 5 entonces asumí que había cometido el mismo error en ambos. Después de
buscarlo exhaustivamente, al no comprender muy bien como se usaban este tipo de funciones, desist y decidí comentar los case para ver si eran las únicas fallas en el programa. No fue así debido que en el case que se encargaba de imprimir los datos con la función void, no estaban declaradas de la manera correcta, pero una vez más, al no entender correctamente el uso de funciones y estructuras, me confundí. Mi teoría es que necesité del uso de los apuntadores, para que así, fuera más fácil llamar las funciones cuando fueran necesarias. COMENTARIOS: Presenté problemas al diferenciar las funciones que necesitaba en un principio. No sabía si necesitaba declararlas tipo estructura o void. Al final, cuando tenia que imprimir los datos que el Usuario me presentaba, Entendí que las funciones tipo void son para unir la información recopilada con las funciones tipo estructura. Tuve un problema al declarar el case de gerente y empleado, puesto que el compilador me indicaba que los tipos de variable no coincidian. Al no enteder el error, procedí a terminar los demás casos y al momento de unir toda la informacion, solo uní la de las funciones que corrian perfecto, que eran tienda, seccion y productos. Al final, tuve un problema al compilar mi programa, puesto que indicaba que se necesitaba algo nuevo. Tuve problemas al final al intentar unir mis datos puesto que no habia declarado apuntadores. Con tantas lineas de código, intnté agregar los apuntadores pero me confundí y decidí dejarlo así, posteriormente lo volveré a hacer con más calma. A pesar de tener mucho tiempo, me confié al tener tanto los incisos A como el B. Me tardé tres dias aproximadamente en llamarlas en main pero no me quedó muy claro como usar apuntadores, funciones y estructuras juntos. Definitivamente es un tema en el que me gustaría profundizar más.