Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Practica 3 Estructuras, Ejercicios de Estructuras de Datos y Algoritmos

Practica 3 Estructuras estructuras de datos y algoritmos I

Tipo: Ejercicios

2020/2021

Subido el 11/03/2022

martinez-jimenez-israel
martinez-jimenez-israel 🇲🇽

1 documento

1 / 14

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Carátula para entrega de prácticas
Facultad de Ingeniería Laboratorio de docencia
Laboratorios decomputación
salas A y B
Profesor:
Edgar Tista
Asignatura: Estructuras de datos y algoritmos.
Grupo:
1
No de Práctica(s):
3
Integrante(s):
De la Cruz Diaz Lucero Michelle
No. de Equipo de
cómputo empleado:
No. de Lista o Brigada:
.
Semestre:
2020-1
Fecha de entrega:
19 de Agosto de 2019
Observaciones:
CALIFICACIÓN: __________
Práctica 3. Tipo de dato abstracto.
Objetivo:
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe

Vista previa parcial del texto

¡Descarga Practica 3 Estructuras y más Ejercicios en PDF de Estructuras de Datos y Algoritmos solo en Docsity!

Carátula para entrega de prácticas

Facultad de Ingeniería (^) Laboratorio de docencia

Laboratorios decomputación

salas A y B

Profesor:

Edgar Tista

Asignatura:

Estructuras de datos y algoritmos.

Grupo:

No de Práctica(s):

Integrante(s):

De la Cruz Diaz Lucero Michelle

No. de Equipo de

cómputo empleado:

No. de Lista o Brigada:

Semestre:

Fecha de entrega:

19 de Agosto de 2019

Observaciones:

CALIFICACIÓN: __________

Práctica 3. Tipo de dato abstracto.

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)

INCISO C)

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.