Está en la página 1de 2

UNIVERSIDAD TÉCNICA DE MACHALA

FACULTAD DE INGENIERÍA CIVIL


CARRERA DE TECNOLOGÍAS DE LA INFORMACIÓN
EVALUACIÓN PARCIAL 1 (EP1)
ESTRUCTURAS DE DATOS
TERCER SEMESTRE

Machala, __________________________

NOMBRE: ____________________________________________________________ PARALELO: A

Lea detenidamente lo solicitado en el examen. Se califica sobre 10 puntos. Durante la evaluación no está
permitido el uso de celulares ni tampoco apagar la cámara web en ninguna circunstancia, esto estará sujeto
a sanción. Descargue el proyecto base de Eclipse desde el EVA. Deberá entregar en el EVA un archivo
comprimido identificado con sus dos apellidos que contenga el proyecto de Eclipse con el código fuente y
paquetes según lo solicitado. Tiempo: 90 min que incluye descarga y carga del proyecto. Solo se admite
entregas en el EVA institucional dentro del tiempo establecido.
CONTEXTO
Una empresa ha decidido regalar canastas navideñas a organizaciones de beneficencia. Para esto adquirió
una serie de productos para organizar dos tipos de canastas para regalar: Básica y Especial. La canasta básica
tiene 5 productos y la especial tiene 8 productos. Para ahorrar costos el mismo día quieren llenar y entregar
40 canastas cada vez. Deben llenar las canastas, verificar que estén bien llenas SIN PRODUCTOS REPETIDOS
y cargarlas en el transporte. Si no están bien llenas se deben volver a llenar, no se pueden transportar
canastas con productos repetidos. Primero llenan 20 canastas tipo Básica, y luego 20 tipo Especial, las van
encolando a espera de ser verificadas y transportadas.
PROBLEMA
Se pide implementar algoritmos para simular el llenado y transporte de las canastas.
REQUERIMIENTOS
1. Utilizar en la implementación únicamente los paquetes proporcionados por el profesor. Todas las
clases necesarias ya están creadas. Únicamente puede crear y editar los métodos que se solicitan en
la clase Principal. El método main no se puede modificar, salvo la sección indicada. No modifique el
vector PRODUCTOS.
2. Implementar el método public static void llenarCanasta(Canasta canasta) que llena de productos la
canasta. Tome en cuenta que el tipo 1 es Básica con 5 productos, si no es Especial con 8 productos.
Los nombres de los productos listados en cada canasta los debe obtener aleatoriamente del vector
PRODUCTOS e ingresarlos en la lista de la canasta. La lista de productos de la canasta es una lista
calificada ordenada que ya está modificada para que admita repeticiones. (2 puntos)
3. Diseñe un algoritmo recursivo que determine si una Lista Calificada Ordenada tiene elementos
repetidos: public static <T extends Comparable<T>> boolean tieneRepetidos(Lista<T> lista)). El
método recibe la lista genérica y devuelve true si hay al menos un elemento repetido, y false si no
hay repetidos. Recuerde que los datos están ordenados, bastaría que dos consecutivos sean iguales
para que haya repetición. Use salida anticipada. Puede implementar métodos adicionales. (3 puntos)
4. public static boolean transportarCanasta(Canasta canasta, TADVector<Canasta> transporte) es el
método que verificará que la canasta no tenga productos repetidos y se cargue al transporte.
Recuerde que la canasta tiene una lista de productos y que existe el método tieneRepetidos para
comprobarlo. El transporte es simulado por un TADVector, por lo que es suficiente ingresar la canasta
al mismo si ya se verificó. El método devuelve true si se cargó la canasta al transporte o false si no
pasó la verificación. (2 puntos)
5. En el programa del método main usted puede revisar que primero se llenan las canastas básicas y
luego las especiales encolando cada vez la canasta. Lo que falta es que cada canasta de la cola pase
por el proceso de transportarCanasta que verifica si tiene repetidos y si no pasa la verificación debe
apilarse en pilaPorRevisar. Para esto uso el lazo for indicado. (2 puntos)
6. NO PUEDE MODIFICAR algún método o clase de los paquetes entregados que no se hayan indicado.
Aunque NO PUEDE modificar lo indicado del método main de la clase Principal, sí puede agregar o
modificar otros métodos en dicha clase. (1 punto)
7. El programa NO TIENE interacción alguna con el usuario.
SALIDA ESPERADA

También podría gustarte