Está en la página 1de 6

Carátula para entrega de prácticas

Facultad de Ingeniería Laboratorio de docencia

Laboratorios de computación
salas A y B
.
Profesor:
Asignatura:
Grupo:

No de Práctica(s):
Integrante(s):
No. de Equipo de
cómputo empleado:

No. de Lista o Brigada:


Semestre:

Fecha de entrega:

Observaciones:

CALIFICACIÓN VÍA RUBRICA EN LÍNEA EN


PLATAFORMA TEAMS
Ing. Patricia Del Valle Morales
Practica #5
Estructuras Pilas y colas
La práctica cubre los atributos de egreso A2-CD1, A2-CD2 y A2-CD3 del CACEI:

✔ A2-CD1: Simular las especificaciones del diseño requerido

✔ A2-CD2: determinar el proceso de diseño más adecuado para alcanzar los requerimientos indicados

✔ A2-CD3: Desarrollar proyectos o programas que satisfacen las necesidades especificadas

La práctica cubre los siguientes resultados de aprendizaje para la certificación europea ANECA:
1. Reconocimiento y comprensión de las ciencias básicas y de las disciplinas de la ingeniería
2. Análisis en ingeniería. Capacidad de identificar, formular y resolver problemas de ingeniería.
Capacidad de analizar productos, procesos y sistemas complejos.
3. Investigación e innovación. Capacidad para realizar búsquedas, consultas y fuentes de información.
4. Aplicación práctica de la ingeniería.

Objetivos
Comprender el uso de la estructura de datos pila y cola

Actividades

1) El alumno experimentará el uso de los métodos que ofrecen las pilas para resolver problemas de
naturaleza recursiva.
2) Desarrollar la habilidad para implementar una estructura cola

Introducción
**apuntes de la clase en plataforma

Desarrollo de la práctica

Ejercicio 1. Escribir un programa que implemente la funcionalidad de una estructura cola estática. Para
ello debe completar el código faltante de los archivos:
● Cola.h

● Cola.c

● Main_cola.c

● Menú.h

● Menu.c
a) Analizar el archivo cola.h que contiene:
i. La estructura Cola, con los siguientes datos:

Ing. Patricia Del Valle Morales


✔ arrCola

✔ h

✔ t

✔ max
ii. Los prototipos de las funciones
o void insertar(int dato, Cola *cola);
o int borrar(Cola *cola);
Funciones auxiliares:
o Cola *crearCola(int max);
o int validarEspacio(Cola cola);
o int validarVacio(Cola cola);
o void listar(Cola cola);

b) Completar el código de las funciones en el archivo cola.c .


c) Escribir el código faltante en el archivo main_cola.c que implemente y manipule una estructura
cola de enteros.
d) Correr el programa para 3 números y colocar aquí las imágenes del código y su corrida

Ejercicio 2. Escribir un programa que implemente la funcionalidad de una estructura pila estática. Para ello
debe completar el código faltante de los archivos:
● Pila.h

● Pila.c

● Main_ Pila.c

● Menú.h

● Menu.c
e) Analizar el archivo Pila.h que contiene:
i. La estructura Pila, con los siguientes datos:
✔ arrPila

✔ max

✔ tope
ii. Los prototipos de las funciones
o void push(Pila *pila, int dato);
o int pop(Pila *pila);
Funciones auxiliares:
o Pila *crearPila(int max);
o int pilaVacia(Pila *pila);

Ing. Patricia Del Valle Morales


o int pilaLlena(Pila *pila);
o void listar(Pila pila);

f) Completar el código de las funciones en el archivo pila.c .


g) Escribir el código faltante en el archivo main_pila.c que implemente y manipule una estructura
pila de enteros.
h) Correr el programa para 3 números y colocar aquí las imágenes del código y su corrida

Ejercicio 3. Escribir un programa que lea un número N de enteros, los almacene en una pila y realice la
suma de estos.

b. Pedir al usuario el número de valores a sumar (almacenar en la pila)


c. Generar aleatoriamente los números (entre 0- 10) y almacenarlos en una pila
d. Sumar los números empezando por los 2 últimos y el resultado se guarda en la misma pila,
se toman nuevamente los 2 últimos números (el resultado parcial de la suma anterior y el
siguiente número a sumar) se suman y el resultado se guarda en la misma pila,…. Así
sucesivamente hasta obtener el resultado final.
e. Desplegar los datos que se van sumando y el resultado final en la pantalla.
f. Deberá de hacer uso de los archivos pila.h y pila.c

Ejemplo:

PIL PIL
A PILA PILA PILA A
4 2 4   4   4   4  
3 4 3 6 3   3   3  
2 8 2 8 2 14 2   2  
1 1 1 1 1 1 1 15 1  
0 3 0 3 0 3 0 3 0  18

RESULTADO: 18
Salida del programa:

Ing. Patricia Del Valle Morales


Ejercicio 4. Escriba un programa que determine si una cadena de entrada es un palíndromo, es decir si
puede leerse de la misma manera hacia adelante y hacia atrás.
Ejemplo:
(sol --- > los) no es palíndromo
(oso --- > oso) si es palíndromo
(ala -- > ala) si es palíndromo
(anita lava la tina) -- > si es palíndromo

Deberá utilizar por lo menos una pila. PREFERENTEMENTE TODO EL PROCESO IMPLEMENTARLO
CON PILAS

Nivel intermedio. Ejercicios extra (opcional): Para reafirmar conocimiento en casa

Ejercicio 5. Escribir un programa que determine si una expresión está bien balanceada o equilibrada
a) Leer una expresión del teclado que contiene paréntesis anidados y no anidados
b) Para determinar si una expresión esta equilibrada. Deberá de determinar si los paréntesis tienen su
apertura y correcto cierre. Para ello deberá de hacer uso de una pila, NO deberá de contar los
paréntesis.
c) Agregar los siguientes tipos de paréntesis (,),[,],{,} y <,>
d) Para determinar si una expresión esta equilibrada para todos los tipos de paréntesis usados.
Deberá de determinar si todos los tipos de paréntesis usados tienen su apertura y correcto cierre.
Para ello deberá de hacer uso de una pila, NO deberá de contar los paréntesis.

Una cadena de entrada es válida si:

1. Los corchetes abiertos deben cerrarse con el mismo tipo de corchetes.

Ing. Patricia Del Valle Morales


2. Los corchetes abiertos deben cerrarse en el orden correcto.

Ejemplo 1: Salida: falso


Entrada: s = "(3*5)"
Salida: verdadera Ejemplo 4:
Entrada: s = "(8*[5)-1]"
Ejemplo 2: Salida: falso
Entrada: s = "(3*5)+[4/2]-{0}"
Salida: verdadera Ejemplo 5:
Entrada: s = "{1+[4/2]-2}"
Ejemplo 3: Salida: verdadera
Entrada: s = "2+(1/5]"

Nivel avanzado. Ejercicios extra (opcional): Para reafirmar conocimiento en casa

Ejercicio 6. Implementar una calculadora con notación polaca para números de un dígito.
Ejercicio 7. Implementar una calculadora con notación polaca para números de más de un dígito.
Reflexión del alumno (Esta es una actividad de reflexión para el alumno, donde deberá de realizar una
conclusión identificando áreas de oportunidad para fortalecer el conocimiento que le hace falta)

Evaluación:

Porcentaje Proceso Puntuación obtenida TIEMPO

30% Ejercicio 1 30 MINUTOS

30% Ejercicio 2 30 MINUTOS

30% Ejercicio 3 30 MINUTOS

10% Reflexión 10 MINUTOS

100% TOTAL 1 HORA 40 MINUTOS

Ing. Patricia Del Valle Morales

También podría gustarte