Ejercicios‎ > ‎

Ejercicios Adicionales

SUBitE

Nuestro heroe Pepe utiliza el colectivo para moverse por la ciudad. Queremos modelar como Pepe va usandolo.
  • Pepe usa las dos formas de pago, la tarjeta SUBitE y monedas.
  • La tarjeta SUBitE es recargable y tiene una cantidad de dinero disponible.
  • Además Pepe tiene un monedero con monedas que usa para el colectivo.
  • Cuando Pepe se toma un colectivo usa primero las monedas hasta que le queda 1.25, porque le pesan; dejando un restito de emergencia. Si ya no tiene monedas o tiene las de emergencia solamente usa la tarjeta SUBitE. En caso de que no tenga credito usa su cargo de emergencia.
  • En caso de que no tenga ni una ni la otra, el sistema SUBitE permite fiar.
  • Pepe puede cargar plata en sus bolsillos o en la tarjeta SUBitE.
  • Pepe se toma 3 colectivos distintos, el 101, el 33 y el 43. Cada uno tiene un valor distinto, ya que va a distintos lugares. 1.25, 2.00 y 1.10 respectivamente.
  • Se pide:
    • Que Pepe pueda tomar un colectivo y se refleje en el estado de su monedero y su tarjeta SUBitE.
    • Que Pepe pueda cargar monedas o su tarjeta SUBitE.

PUNTO BONUS

  • Ahora el sistema SUBitE tiene una promoción. Si tomas el mismo colectivo dos veces en el dia, la 2da te cobra la mitad. Solo aplica con la tarjeta.
  • Ahora Pepe va a tener que tener una forma de borrar esta historia de viajes, esto lo usa una vez al día.


Descuentos

Una importante cadena de electrodomésticos, llamada PepeStore, nos pide que le demos una mano con su sistema de precios.

  • La empresa vende 3 productos, televisores Sorni, reproductores de dvd Panafornics y computadoras Impel.
  • Cada producto tiene un precio de lista.
  • Para aumentar las ventas, la empresa decidió tener un día de descuento para cada producto, los lunes los televisores, los miércoles los DVDs y los sábados las computadoras. Para comodidad vamos a representar los dias con un texto con el nombre en minúscula.
  • Además los productos tienen descuentos según los medios de pago, para efectivo 10% de descuento, para débito 3% y para crédito 5% de recargo.
  • PepeStore usa un sistema muy personalizado, y genera una factura para cada producto vendido. 
  • Queremos poder enviarle a la factura el siguiente mensaje:
    • factura valor -> y nos devuelve el precio final que debe pagar el cliente.
  • Es bueno recordar que la factura es para un cliente determinado y un producto determinado en un día determinado. 
  • La factura puede recibir muchos más mensajes :) .

Descuentos con colecciones

        Sobre el ejercicio anterior, realice los siguientes cambios:
  • La factura sirve para un conjunto de productos. de manera que el precio sea la suma de los precios de los productos, con los descuentos aplicados.
  • Poder preguntarle a la factura cuales productos son caros. Un producto es caro si supera los  1000 pesos (con descuentos incluidos)
  • Saber si una factura tiene más de N productos
  • Saber si una factura contiene un producto caro. Un producto es caro si supera los 1000 pesos.

Alquiler de vehículos

Una empresa de alquiler de vehículos maneja bicicletas, motos y autos. De cada vehículo interesa el gasto cada 100 km, la velocidad máxima y la cantidad de pasajeros que pueden llevar.

Para las bicicletas:
  • la velocidad máxima es (rodado de la bicicleta * 1.2), p.ej. para una bicicleta de rodado 20 la velocidad máxima es 24 km/h. 
  • el gasto cada 100 km es 1 peso 
  • pueden llevar 1 pasajero. 
Para las motos: 
  • la velocidad máxima es (cilindrada / 5), p.ej. para una moto de 1000 cm3 de cilindrada la velocidad máxima es 200 km/h. 
  • el gasto cada 100 km es 5 pesos + (cilindrada / 200), p.ej. para una moto de 1000 cm3 de cilindrada el gasto cada 100 km es 10 pesos.
  • las motos de hasta 150 cm3 de cilindrada pueden llevar un pasajero, las de mayor cilindrada pueden llevar dos pasajeros. 
Para los autos: 
  • la velocidad máxima y la cantidad de pasajeros que pueden llevar son específicas de cada auto. 
  • el gasto cada 100 km es 20 pesos + (capacidad en pasajeros * 10), p.ej. para un auto que lleva 4 pasajeros el gasto cada 100 km es 60 pesos. 
Se pide conocer:
  1. los vehículos de la empresa con velocidad máxima mayor a un parámetro. 
  2. los vehículos de la empresa que cada 100 km consuman menos que un parámetro.
  3. el vehículo con mayor coeficiente de eficiencia, que se calcula así: (cant. pasajeros * velocidad máxima) / gasto cada 100 km
  4. la cantidad total de pasajeros que pueden transportar los vehículos de la empresa a más de cierta velocidad, p.ej. "¿cuántos pasajeros podemos llevar a más de 80 km/h?".
  5. si algún vehículo me sirve para transportar al menos X pasajeros gastando menos de Y pesos cada 100km, siendo X e Y dos parámetros.
  6. si todos los vehículos son eficientes (es decir, que su coeficiente de eficiencia sea < 15)
  7. el promedio de pasajeros por vehículo
BONUS
Sin repetir código, saber la cantidad total de pasajeros que pueden transportar los vehículos que cumplan una cierta condición que se pasa por parámetro. Por ejemplo:
    1. ¿cuántos pasajeros podemos llevar en vehículos de más de 4 asientos?
    2. ¿cuántos pasajeros podemos llevar con un costo menor a $10 cada 100km?


Cupones

Un sitio web de cupones de descuentos quiere modelar su sistema.

Tenemos a los descuentos:

  • dermolipolaser es del rubro estética, vale por 2000 pesos pero sale 600. Si el usuario que lo compra es VIP, le regalan otro cupón igual.
  • diaDeCampoParaDos es del rubro viajes, vale por 500 pesos pero sale 125. Si el usuario que lo quiere comprar ya compró antes algún cupón del rubro viajes, tiene un 10% adicional de descuento.
  • docenaDeMedialunas es del rubro gastronomía, vale por 50 pesos pero sale 24. Si el usuario que lo compra nunca había comprado un cupón, gana $20 pesos de crédito para una próxima compra.


Por otro lado, tenemos a las usuarias laura y vicky, de las cuales vicky es VIP. A los usuarios VIP siempre se les regala $10 de crédito cada vez que se compra un cupón, para una próxima compra. Los usuarios tienen un conjunto de cupones comprados, y pueden comprar más. Cuando un usuario compra un cupón, siempre gasta de su crédito. Sólo puede comprar un cupón si le alcanza el crédito. Por otro lado, puede recargar crédito para seguir comprando cupones.


Se requiere:

1) Hacer que un usuario cargue crédito.

2) Saber la cantidad de cupones comprados de un usuario.

3) Saber el valor total de los cupones de un usuario. Ejemplo: si laura tuviera un cupon de dermolipolaser y otro de docenaDeMedialunas, el valor total de sus cupones sería 2050 pesos.

4) Saber el total de ahorro que tuvo un usuario (el ahorro de un cupón es la diferencia entre lo que vale y lo que sale)

5) Saber cuánto pagaría un usuario por un cupón determinado. Por ejemplo: cuánto pagaría laura por dermolipolaser, cuánto pagaría vicky por docenaDeMedialunas, etc.

6) Hacer que un usuario compre un cupón.



Radios


Un grupo multimedio que maneja varias emisoras de radio está organizando la programación para el próximo año, renovándola totalmente para todas las emisoras.
La programación de una emisora se compone de un conjunto de programas, que van “de tal hora a tal hora” (p.ej. de 10 a 13).  Para simplificar, suponemos que todos los días va la misma programación, y que todos los programas empiezan y terminan “en punto”. O sea, no se contempla la posibilidad de que un programa p.ej. termine 13.30, o termina a las 13.00 o termina a las 14.00. Todos los programas de estas emisoras son musicales.
Algunos programas son organizados por la emisora, a estos se los llama programas autónomos. Para cada programa autónomo se define qué estilos musicales incluirá (rock, pop, electrónica, clásica, etc.), y un presupuesto de lo que se puede gastar por día para ese programa.

P.ej. un programa autónomo puede definir que incluirá pop y electrónica, y que se pueden gastar por día hasta $700.
Los otros programas son armados a la medida de una empresa, que paga para que un determinado programa se llame p.ej. “la hora Acme”; a estos se los llama programas financiados. Las características de un programa financiado se ajustan a los deseos de la empresa que lo financia. Una misma empresa puede financiar más de un programa, en la misma o distintas emisoras. Para estos programas, los estilos musicales que incluirá son los de los grupos que prefiere el financiador. De cada grupo se conoce a qué estilo musical se dedica.
De los deseos de cada empresa financiadora nos van a interesar: los grupos musicales que prefiere, y los conductores con los que quiere trabajar.
P.ej. una empresa financiadora puede ser Acme S.A., que prefiere a Ratones Paranoicos, Intoxicados y Babasónicos, y le gustan Elizabeth Vernaci y Bobby Flores. Los estilos musicales que incluirán los programas que financie Acme serán rock (Ratones e Intoxicados) y pop (Babasónicos).
Dar un modelo de la situación descripta en el que se pueda resolver lo siguiente:
   1.    Saber si un programa se puede incorporar a la programación de una emisora determinada. Las condiciones son:
   a.    que no se superpongan los horarios con otros programas ya incluidos en la programación de la estación, p.ej. si ya hay un programa de 10 a 12, no se puede incorporar otro que va de 11 a 13.
   b.    que alguno de los estilos musicales incluidos en el programa esté dentro de los estilos que se definen para la emisora.
   2.    Registrar la incorporación de un programa en una emisora. El programa ya está creado y configurado. Si el programa no se puede incorporar, simplemente no se agrega, no se genera un error ni nada.
   3.    Obtener los programas de una emisora ordenados por hora de inicio.
   4.    Saber en qué programas de una emisora puede trabajar un determinado conductor. 
Para los programas financiados, la condición es que la financiadora quiera trabajar con el conductor.
Para los programas autónomos, la condición es que lo que cobra el conductor por día (dato que se conoce) no supere el presupuesto diario del programa.
   5.    Conocer el presupuesto diario de una emisora. El presupuesto de un programa financiado es cero, porque todos sus gastos están cubiertos por la financiadora.
   6.    Saber en qué programas puede incluirse un determinado tema musical. De cada tema se sabe el grupo musical que lo interpreta y la duración.
Para los programas financiados, la condición es que el grupo esté entre los preferidos de la financiadora.
Para los programas autónomos, la condición es que el estilo musical del grupo esté entre los estilos musicales incluidos en el programa.
Además, si el tiempo de los temas ya asignados al programa más el del tema que se quiere averiguar supera el tiempo total del programa, entonces no se puede incorporar el nuevo tema; esto vale independientemente del tipo de programa.
   7.    Agregar un tema a un programa. El tema ya está creado y configurado. Si el tema no se puede agregar, simplemente no se agrega, no se genera un error ni nada.
   8.    Obtener los programas cargados, donde un programa se dice cargado si tiene temas asignados para más del 80% de su tiempo total.

Mensajeros de Película

1. Desarrollar y probar un programa que me permita saber si un paquete puede ser entregado por un mensajero. Un paquete puede entregarse cuando el mensajero puede llegar al destino indicado y además el paquete está pago.

Sin embargo, ésto depende del destino. Hay 2 destinos posibles:

  • Puente de Brooklyn: deja pasar a todo lo que pese hasta una tonelada.
  • La Matrix: deja entrar a quien pueda hacer una llamada.

Mensajeros posibles:

  • Roberto: Roberto viaja en bicicleta ó camión. El peso que cuenta para la entrega es el propio de Roberto más el del transporte en el que viaja. La bicicleta pesa 10 Kg y el camión pesa 1000 Kg. Roberto no tiene un mango, gracias que tiene cubiertas, y no puede llamar a nadie.
  • Chuck Norris: Chuck norris pesa 900 kg y puede llamar a cualquier persona del universo con sólo llevarse el pulgar al oído y el menique a la boca.
  • Neo: Neo vuela, así que no pesa nada. Y anda con celular, el muy canchero. El tema es que a veces no tiene crédito.

2. Ahora aparece una empresa de mensajería. Esta tiene un conjunto de mensajeros, los cuales son Roberto, Chuck y Neo. 

Se necesita saber:

2.1. Si un paquete puede ser entregado por la empresa de mensajería, es decir, si al menos uno de sus mensajeros puede entregar el paquete.
2.2. Si para la mensajería un paquete no es problemático. Un paquete no es problemático cuando cualquiera de sus mensajeros puede entregarlo.
2.3. Saber los mensajeros candidatos de una mensajería para llevar un paquete, es decir, aquellos mensajeros que son capaces de llevar el paquete.
2.4. Saber si una mensajería tiene sobrepeso. Esto sucede si el promedio del peso de los mensajeros es superior a 500 Kg (Nota: Para el peso de Roberto se cuenta el transporte).

RPG

Durante un juego de rol un personaje puede tener distintos roles, según el rol que posea se comportará de forma distinta.

Por ser esta una simplificación vamos a trabajar sobre un personaje solo, el cual llamamos José.

Existen en el juego 3 roles distintos:  Arquero, Espadachín y Mercenario. Jose adopta uno de estos personajes.


Se pide:

1) Saber si el personaje se puede equipar con un arma. Lo cual depende de dos cosas: el gusto y la tolerancia.  (No importa aqui el valor de compra)


Si el josé juega de arquero, escoje armas que disparan a distancia, Si es un Espadachin escoje armas para golpear a corta distancia. Los mercenarios agarran cualquier arma que puedan.


Existen en el juego las siguientes armas:


Exalibur: una espada que pesa 3 kg y no puede ser utilizada a distancia. El valor de compra es de 1000

Dardo (Sting, espada de frodo): Una espada que pesa 2 kg y no puede ser utilizada a distancia. El valor de compra es de 1200.

Arco: El arco dispara a distancia y pesa 2kg más las 0.1 kg por cada flecha y alcanza 100 metros. El valor de compra es de 500 + (10 * cantidad de flechas)

Piedra: La piedra puede ser arrojada o ser usada para pegar a corta en la cabeza del oponente. Pesa 1 kg. Si la piedra es arrojada alcanza los 10 metros. El valor de compra es 0.


Además del gusto por el arma, el rol del personaje tiene cierta tolerancia.

Los mercenarios no pueden transportar más de 5 kg en armas. (Por ejemplo, si el personaje ya tenía a la espada del augurio y a dardo no puede aceptar más armas.

Los espadachines son muy fuertes, por eso no le importa el peso de las armas, pero como solo usan dos manos no pueden llevar más de dos armas.

Los arqueros quieren toleran cualquier arma si se encuentran desesperados. En caso de no estar desesperado solo aceptan un arma que tenga un alcance mayor a cualquier arma que tenga dentro. Un arquero está desesperado si no tiene arma.


2) Pedirle al personaje recoja un arma. Si el personaje no puede (ya sea por tolerancia o gusto) debe tirar un error. (Para tirar un error, se debe escribir la siguiente linea de código:

self error:’no se puede aceptar el arma’


3) Cambiar de rol

Cuando josé cambia de rol, debe descartar las armas que no acepte


4) El personaje tiene dinero que puede ser usado en la casa de compra. La casa de compra tiene una sola arma en venta. Cuando el personaje entra en ella se intenta la compra de la misma. La compra tiene éxito si el personaje tiene dinero suficiente y además acepta el arma, en cuyo caso se agrega el arma al personaje y se descuenta el dinero disponible. Si la compra no tiene éxito entonces no pasa nada (no es necesario tirar un error).


Comments