Sei sulla pagina 1di 12

GUÍA DE TRABAJO Código FDE 048

Tecnología en Sistemas de Versión 03


Información Fecha 2009-06-09

Práctica Colas y Pilas.


Sugerencias:
– Elabore el DIAGRAMA DE CLASES. Y luego elabore los algoritmos pertinentes
para la solución del problema.

1. Situación:
La embajada norteamericana desea otorgar la fecha de entrevista para otorgar visa
a partir de dos pilas de documentos. La primera pila corresponde a las solicitudes
radicadas en enero y la segunda pila corresponde a las solicitudes radicadas en
febrero. Los documentos de cada persona están separados por carpetas. Cada
carpeta contiene información básica y financiera. En concreto, la embajada está
interesada el nombre, la edad, ciudad en la que vivirá en USA, el balance de todas
las cuentas bancarias de la persona y el título académico más alto.

2. PROCEDIMIENTO
2.1 Definir una clase DocumentosPersonales con la información concreta que le
interesa a la embajada.

2.2 Definir dos pilas de DocumentosPersonales de acuerdo con: (no lea esta
información por teclado).
posición Pila Enero Pila Febrero
0 Documentos< Documentos<
nombre:Mario, edad:20, nombre:María, edad:33,
CiudadDestino: Dallas, CiudadDestino: Phoenix,
BalanceBancario:28 Millones, BalanceBancario:28 Millones,
Título:Tecnologo> Título:Profesional>
1 Documentos< Documentos<
nombre:Laura, edad:28, nombre:Carlos, edad:50,
CiudadDestino: Phoenix, CiudadDestino: Miami,
BalanceBancario:28 Millones, BalanceBancario:430 Millones,
Título:PhD> Título:Profesional>
2 Documentos< Documentos<
nombre:Eduardo, edad:36, nombre:Adriana, edad:30,
CiudadDestino: Austin, CiudadDestino: Dallas,
BalanceBancario:230 Millones, BalanceBancario:60 Millones,
Título:Tecnologo> Título:Profesional>
4 Documentos< Documentos<
nombre:Camila, edad:34, nombre:Estefa, edad:36,
CiudadDestino: Phoenix, CiudadDestino: Miami,
BalanceBancario:1000 Millones, BalanceBancario:358 Millones,
Título:Profesional> Título:Magister>
2.3 Definir una clase Embajada que reciba en su constructor las 2 pilas del punto
anterior.
GUÍA DE TRABAJO Código FDE 048
Tecnología en Sistemas de Versión 03
Información Fecha 2009-06-09

2.4 Definir un método en la clase embajada que retorne una cola con cada uno de los
documentos contenidos en las dos pilas, ordenados de acuerdo al balance bancario.

2.5 Imprimir la cola del punto 2.4.

2.6 Definir un método en la clase embajada que tome la cola del punto 2.5 y que
retorne otra cola, asignando a cada carpeta su fecha de entrevista, dando prioridad a
las personas que pretendan vivir en Dallas. Para llevar a cabo las entrevistas se
requiere mucho tiempo por lo que solo se asignan dos por día a partir del 6 de junio
de 2018. En caso de haber empates al momento de asignar la cita =, dar prioridad a
teniendo en cuenta la ciudad, y en caso de persistir el empate, tener en cuenta el
grado de educación.

(mayor prioridad) Dallas > Austin > Phoenix > Miami (menor Prioridad)
(mayor prioridad) PhD > Magister > Profesional > Tecnologo (menor Prioridad)

2.7 Imprimir el nombre de las personas correspondiente a cada carpeta con la fecha
asignada para la entrevista (usar el método definido en 2.6)
GUÍA DE TRABAJO Código FDE 048
Tecnología en Sistemas de Versión 03
Información Fecha 2009-06-09

1. IDENTIFICACIÓN

Asignatura Estructura de Datos Guía No. 3


Área Básicas de la Tecnología o Nivel
de la Ingeniería
Código EDI32 Pensum 10
Correquisito(s) Prerrequisito(s)
Créditos TPS TIS TPT TIT
TRABAJO INDEPENDIENTE TRABAJO PRESENCIAL
Trabajo Trabajo X Trabajo Trabajo
Teórico Práctico Teórico Práctico
2. IDENTIFICACIÓN

CONTENIDO INDICADOR DE LOGRO


COMPETENCIAS
TEMÁTICO
Resolver problemas de Arboles Plantea una solución
información basados en el algorítmica basada en
uso de estructuras de datos arboles ligados a un
complejas. problema que lo requiere

3. PROCEDIMIENTO
1. Usted requiere explicar a un compañero la forma en que las operaciones matemáticas
son resueltas en un lenguaje de programación. Para esto usted quiere representar un
suma de enteros como un árbol de acuerdo con la gráfica. Diseñe un programa que
construya el árbol y que lo imprima por pantalla.

2. Imprima la suma total y el promedio de los nodos en el árbol anterior.


3. Se requiere crear un sistema para búsqueda de antecedentes penales. Dado que la
búsqueda de personas es un proceso importante, usted decidió usar arboles para
representar los datos. Para probar su teoría y proponerla a otros investigadores, usted
GUÍA DE TRABAJO Código FDE 048
Tecnología en Sistemas de Versión 03
Información Fecha 2009-06-09

decide crear un árbol para representar los nombres de las personas en una banda
criminal compuesta por 7 personas. Defina un programa que construya una estructura
jerárquica con los nombres de 7 sospechosos e imprima el resultado en inorden
(izquierdo-raiz-derecho.)
GUÍA DE TRABAJO Código FDE 048
Tecnología en Sistemas de Versión 03
Información Fecha 2009-06-09

Práctica Aerolíneas
Sugerencias:
– Enfóquese en resolver el problema haciendo uso de varias clases y no con una
sola que parezca un main. Comunicación de varias clases
– No se utilizan arreglos, ni ningún medio de almacenamiento de la información
por ahora, solo se elaboran los algoritmos sin ningún vector.
– Elabore el DIAGRAMA DE CLASES. Y luego elabore los algoritmos pertinentes
para la solución del problema.

1. PROCEDIMIENTO

Se requiere un sistema sencillo para calcular el costo de los viajes de una aerolínea.
Para resolver el problema construya:

1.1. Un programa principal que permita leer por teclado tanto el nombre de cliente
como la cédula. El programa debe leer tres clientes. Para cada uno de ellos, debe leer
dos viajes. De cada viaje interesa la ciudad origen, la ciudad de destino y el costo total
del viaje.
import java.util.Scanner; BufferedReader reader = new BufferedReader
Scanner keyboard = new Scanner(System.in); (new InputStreamReader(System.in));

int myint = keyboard.nextInt(); username = reader.readLine();

1.2. Elabore la clase cliente y la clase viaje de modo que cada cliente pueda almacenar
dos viajes. Debe usar el constructor y los métodos get() set().

1.3. Identifique de entre los tres clientes, aquel que hará el viaje más costoso. Imprima
su nombre y cédula en pantalla.

1.4. Elabore la clase aerolínea de modo que pueda almacenar a los 3 clientes. Luego
defina un método findExpensive() que busque los tres viajes más costosos de entre
todos los viajes de los clientes. Imprima por pantalla el costo de cada uno de esos viajes
y el nombre del cliente. Este resultado podría incorporar más de un viaje de un cliente o
no incorporar viajes de un cliente particular.
Calcule este punto en base a los siguientes clientes<nombre, cedula> (se
debieron ingresar por teclado en el main).
< Ana ,123>- viaje 1<500usd>, Viaje 2<800 usd>
<Juan, 456> viaje 1<100usd>, Viaje 2<200 usd>
<Joe, 789> viaje 1<700usd>, Viaje 2<1500 usd>
1.5. Defina en la clase aerolínea un método llamado averageExpensive() que calcule
el promedio de los tres viajes más costosos. Para esto debe usar el método
findExpensive().
GUÍA DE TRABAJO Código FDE 048
Tecnología en Sistemas de Versión 03
Información Fecha 2009-06-09

Sugerencias:
– No se utilizan arreglos, ni ningún medio de almacenamiento de la información
por ahora, solo se elaboran los algoritmos sin ningún vector.
– Elabore el DIAGRAMA DE CLASES. Y luego elabore los algoritmos pertinentes
para la solución del problema.
1. Problema

Una agencia de viajes ha perdido mucho dinero debido a descontroles en la generación


y pago de tiquetes. Para remediar la situación se requiere un sistema capaz de calcular
el precio del tiquete de acuerdo a la siguiente información:

• El precio básico de todo viaje se calcula en función de las tres rutas que administra
la agencia.
o Ruta 1 Medellín – Ciudad Bogótica. 200 usd
o Ruta 2 Ciudad Bogótica – Villa Chica. 300 usd
o Ruta 3 Villa Chica – Mordor: 600 usd
• Al precio básico se agrega el IVA (19%) para obtener el precio final.
• El cliente puede decidir pagar con puntos, en cuyo caso cada punto se canjea por
1 usd. Además, puede cancelar la totalidad del viaje excepto el IVA; el impuesto
siempre se paga con dinero.

Calcule el costo total de los siguientes viajes (haciendo uso de las rutas que sean
necesarias).

1.1. Ana viaja de Medellín a Ciudad Bogótica. Ana posee 210 puntos.
1.2. Diego viaja de Medellín a Mordor y luego a Ciudad Bogótica. Diego posee 500
puntos
1.3. Carlos viaja de Mordor a Ciudad Bogótica. Carlos posee 1000 puntos.

No lea la información de estos tres usuarios por teclado. Se recomienda leerla desde un
script: // … ana = new XXXXX(“ana”,puntos); … etc

2. Aspectos importantes
• Desarrollar el ejercicio haciendo uso de clases.
• Esconder la lógica del programa principal - Main. En otras palabras, resolver el
problema haciendo uso de las estructuras; usar métodos que minimicen el trabajo
hecho en el main.
• Codificar en inglés.
GUÍA DE TRABAJO Código FDE 048
Tecnología en Sistemas de Versión 03
Información Fecha 2009-06-09

Sugerencias:
– No se utilizan arreglos, ni ningún medio de almacenamiento de la información
por ahora, solo se elaboran los algoritmos sin ningún vector.
– Elabore el DIAGRAMA DE CLASES. Y luego elabore los algoritmos pertinentes
para la solución del problema.

1. Problema

Un banco quiere ofrecer tarjetas de crédito a sus clientes. Para hacerlo, necesita
identificar a aquellos que tienen cuentas bancarias con determinado saldo. Además, es
importante clasificar a los clientes de acuerdo al ingreso mensual que reciben en sus
cuentas.

Defina clases adecuadas para representar al banco y a los clientes teniendo en cuenta
lo siguiente: Todo cliente tiene nombre y cédula. Además, todos los clientes poseen 2
cuentas bancarias de las que interesa el código, el saldo actual y el ingreso mensual.

Los clientes del banco son:

• Juan:
o Cuenta<saldo:1 millón, ingreso: 1 millón>
o Cuenta<saldo:1.5 millones, ingreso: 0 millones>
• Juana:
o Cuenta<saldo:20 millones, ingreso: 0.5 millones>
o Cuenta<saldo:0 millones, ingreso: 0 millones>
• Jairo:
o Cuenta<saldo:10 millones, ingreso: 1 millones>
o Cuenta<saldo:12 millones, ingreso: 2 millones>
o
• Juanito:
o Cuenta<saldo: 10 millones, ingreso: 5 millones>
o Cuenta<saldo: 20 millones, ingreso: 4 millones>

No lea la información de estos tres usuarios por teclado.


GUÍA DE TRABAJO Código FDE 048
Tecnología en Sistemas de Versión 03
Información Fecha 2009-06-09

1.1. Escriba un programa principal que escriba el nombre del cliente y lo clasifique así:
Tipo de Cliente Condiciones que cumplir
Saldo sumado de ambas cuentas no menor a 7
Corriente millones de pesos
Saldo sumado de ambas cuentas no menor a 30
Apapachado millones de pesos
Ingreso mensual sumado entre no menor a 2 millones
de pesos
Saldo sumado de ambas cuentas mayor a 30 millones
Prioritario de pesos
Ingreso mensual sumado no menor a 7 millones de
pesos
El tipo de cliente no puede ser un atributo de clase y la lógica no debe pertenecer
al main sino a una clase del modelo (a cuál?).

1.2. Defina un método de clase (en qué clase?) para encontrar los dueños de las tres
cuentas que mayor saldo tienen. Para esos clientes imprima su nombre, tipo de cliente y
el código y saldo de la cuenta.

2. Aspectos importantes
• Desarrollar el ejercicio haciendo uso de clases.
• Esconder la lógica del programa principal - Main. En otras palabras, resolver el
problema haciendo uso de las estructuras, usar métodos que minimicen el trabajo
hecho en el main.
• Codificar en inglés.
GUÍA DE TRABAJO Código FDE 048
Tecnología en Sistemas de Versión 03
Información Fecha 2009-06-09

Sugerencias:
– Elabore el DIAGRAMA DE CLASES. Y luego elabore los algoritmos pertinentes
para la solución del problema.

1. Situación:
Tomar como base el taller 5 de colas con pilas (Documentos y embajada) y sus datos.
Luego, agregar el siguiente método:

Definir un método en la clase embajada que tome las dos pilas de documentos
iniciales para construir a partir de ellas una tercera pila de tamaño cuatro. Esta pila-
resultado debe contener una cola en cada posición. Cada cola en el resultado debe
agrupar los documentos personales de acuerdo con la ciudad de inmigración (primero
apilar los correspondientes a Dallas y por último Miami). Además, cada cola debe
estar ordenada de acuerdo con el ingreso de la persona (más ingreso, primero) y en
caso de haber empate, agrupar de acuerdo con el nivel educativo.

(mayor prioridad) Dallas > Austin > Phoenix > Miami (menor Prioridad)
(mayor prioridad) PhD > Magister > Profesional > Tecnólogo (menor Prioridad)

2. PROCEDIMIENTO

2.8. Asignar la fecha de entrevista a cada carpeta de documentos personales usando


el método anterior. Primero a los de Dallas y por último a los de Miami y respetando
el orden en que se encolaron los documentos (en cada una de las posiciones de las
cuatro pilas). Tenga en cuenta que se asignan dos citas por día a partir del 6 de junio
de 2018.

2.9 Imprimir la pila del punto 2.8 en el orden que define la pila y cada cola. Mostrar el
nombre, la ciudad de Inmigración, el balance y el nivel de educación.
GUÍA DE TRABAJO Código FDE 048
Tecnología en Sistemas de Versión 03
Información Fecha 2009-06-09

Sugerencias:
– Elabore el DIAGRAMA DE CLASES. Y luego elabore los algoritmos pertinentes
para la solución del problema.

1. Situación:
Definir una clase ProductoExportación tomando como base la información publicada
en: https://atlas.media.mit.edu/es/profile/country/col/

Tome los 15 productos que más porcentaje aportan y cree una lista con ellos (primero
los de más porcentaje.)

2. PROCEDIMIENTO
Usted está encargado de hacer una presentación a grupos ambientalistas sobre las
posibilidades de mercado para una idea nueva de negocio. Le recomendaron no
presentar los productos derivados del petróleo y la minería.

2.1 Defina un método que tome como entrada la lista con los 15 productos y elimine
los productos derivados del petróleo y la minería.

2.2 Defina un método que ordene la lista de forma alfabética.

2.3 Imprimir la lista del punto 2.2 en orden alfabético. Mostrar el nombre del producto,
y su porcentaje.
GUÍA DE TRABAJO Código FDE 048
Tecnología en Sistemas de Versión 03
Información Fecha 2009-06-09

(se sustenta en clase)


Sugerencias:
– Elabore el DIAGRAMA DE CLASES. Y luego elabore los algoritmos pertinentes
para la solución del problema.

1. Situación:
Definir una clase Deportista Olímpico para representar su nombre, apellidos y salario.
Cada Deportista olímpico tendrá una o varias medallas olímpicas. De cada una se
desea conocer el tipo de medalla (oro, plata o bronce) y la fecha en que le fue
otorgada. (No ingrese esta información por teclado – Bonificación: leerla desde un
archivo)

ID Atleta
0 < nombre: Mario, Apellido: Marcos,Salario:2000 USD,
{medalla< oro, 2011>,medalla< oro, 2017>,medalla< oro, 2016>}
>
1 <nombre: Laura, Apellido: Lulu, Salario:1000 USD,
{medalla< oro, 2012>,medalla< plata, 2013>,medalla< bronce, 2014>}
>
2 <nombre: Eduardo, Apellido: Elo, Salario: 9000 USD
{medalla< oro, 2013>,medalla< oro, 2014>,medalla< plata, 2015>}
>
3 <nombre: Camilo, Apellido: Cal, Salario: 500 USD
{medalla< plata, 2014>,medalla< plata, 2017>,medalla< plata, 2016>}
>
4 <nombre: María, Apellido: Meil, Salario: 200 USD
{ medalla< oro, 2015>,medalla< oro, 2016>,medalla< oro, 2016>,
medalla< oro, 2017>,medalla< oro, 2017>,medalla< oro, 2018>}
>
5 <nombre: Carlos, Apellido: Cal, Salario: 5000 USD
{ medalla< oro, 2016>,medalla< oro, 2017>,medalla< oro, 2018>,
medalla< oro, 2017>,medalla< oro, 2017>,medalla< plata, 2018>}
>

Dado que esta información será útil para hacer búsquedas usted ha decidido
representarla como un árbol binario de búsqueda.

2. PROCEDIMIENTO

2.1 Construya un árbol binario de búsqueda que tenga a Mario como raíz y que
ordene los demás atletas en nodos de acuerdo con el número de medallas de oro.
Imprima el árbol por pantalla en una forma fácil de leer.
GUÍA DE TRABAJO Código FDE 048
Tecnología en Sistemas de Versión 03
Información Fecha 2009-06-09

2.2 Defina un método capaz de buscar todos los deportistas cuya cantidad de
medallas totales se encuentre entre dos números ingresados por teclado. El método
debe retornar una cola con todos los deportistas encontrados.

2.3 Imprimir la cola del punto 2.2.

Potrebbero piacerti anche