Realizar Sugerencias

Deje su comentario, consulta o bug, estamos trabajando para realizar un mejor servicio.



Final PPR ultimos turnos 2014 - UTN FRC - Sistemas

(Nota Clase)

Acá hay algunos comentarios que se hacen a tener en cuenta para rendir paradigma de programacion PPR

Debe iniciar sesión para votar

Acá hay algunos comentarios que se hacen a tener en cuenta para rendir paradigma de programacion PPR:

Una empresa de seguros necesita gestionar la información referida a las pólizas que tiene contratadas por sus clientes. Para ello se han identificado las siguientes clases:

Clase Cliente (ya codificada), con los siguientes datos:

- número de DNI del cliente

- nombreYapellido

- datos de ubicación, instancia de la clase Ubicación

Clase Ubicación (ya codificada), que posee los siguientes atributos:

- provincia (entero)

- localidad (entero)

Clase Vehiculo (ya codificada), que posee los siguientes atributos:

- Patente

- Año

- Marca

- Modelo

Clase PólizaSeguroVehiculo (debe codificar el método +=, el resto ya esta codificado), que posee los siguientes atributos:

- número de la póliza

- número de dni del cliente (int)

- monto mensual a abonar por el cliente (float)

- descripción de la póliza, cadena de caracteres para almacenar la descripción general de la póliza (String).

- datos del vehículo sobre el cual se realiza la póliza

Clase EmpresaDeSeguro (la debe codificar el alumno), esta clase posee como atributos:

-  una colección de pólizas de seguro llamada polizasDeSeguro,

- una colección de clientes llamada clientes,

Nota: un cliente puede poseer más de un vehículo, cada vehículo poseerá su propia póliza de seguro.

Se debe desarrollar:

1)    En la clase PolizaSeguroVehiculo: el método += que incrementa el monto del seguro un valor pasado por parámetro

2)    La clase EmpresaSeguro, con la declaración de atributos y su Método constructor

En la clase EmpresaSeguro desarrollar los métodos:

3)    Método eliminarPoliza: que borra de la colección “polizasDeSeguro” la póliza cuyo número se pasa como colaborador externo. Si el cliente al que pertenece la póliza a borrar no posee ninguna otra póliza, borrar dicho cliente de la colección clientes.

En caso de no existir el código de póliza, indicarlo a través del mensaje: “Número de póliza Inexistente”. Caso contrario, devolver el valor booleano verdadero. 

4)    Método asPolizaPorDni: Retorna los datos de cada una de las pólizas que posee un cliente junto con los datos del mismo, cuyo dni de cliente es pasado por parámetro. Nota: los datos del cliente deben figurar completos una sola vez, y no repetirse por cada póliza que posea el cliente. Recuerde que un cliente puede tener una póliza, más de una póliza o ninguna. 

Programación Funcional

Caso de estudio: Método de Búsqueda Binaria

Si tuviéramos una lista de números ordenados (por ejemplo de menor a mayor), se puede aplicar un método de búsqueda mucho más eficiente que la secuencial, conocido como búsqueda binaria. La idea básica es la siguiente: se usan dos índices auxiliares izq y der cuya función es marcar los límites dentro de una lista en donde se buscará el valor. Como al principio la búsqueda se hace en toda la lista, originalmente izq comienza en 0 (cero) y der comienza valiendo n-1 (siendo n la cantidad de elementos que posee la lista). Dentro del intervalo marcado por izq y der, se toma el elemento centro, cuyo índice es:

centro = (izq + der) / 2

o sea, el promedio de los valores de izq y der.

Luego de esto se verifica si el valor contenido en la lista en la posición centro coincide o no con el número buscado.

Si coincide, es entonces cuando se indica el true.

Si no coincide, es entonces cuando se aprovecha que la lista esta ordenada de menor a mayor: si el valor x es menor que el valor ubicado al centro de la lista, se busca el valor de x a la izquierda del valor del centro, y por lo tanto, el nuevo intervalo de búsqueda debe ir desde izq hasta el valor del centro-1. Por lo tanto, se ajusta der para que valga centro-1, y se repite el proceso descripto. Si el valor de x es mayor que el valor ubicado en el centro de la lista, entonces la situación es la misma pero simétrica hacia la derecha, y debe ajustarse izq para valer centro+1. El proceso continua hasta que se encuentra el valor o hasta que el valor de izq sea mayor al valor de der, lo cual indicará que ya no hay intervalos en los cuales buscar, y por lo tanto el valor x no se encuentra en la lista (y en este caso debe indicar false).

Se pide desarrollar las siguientes funciones en Haskell:

1) Una función llamada búsquedaBinaria, que recibe una lista de números enteros, el valor de x a buscar en la lista, izq y der (siendo izq y der la cota inferior y superior del intervalo de búsqueda dentro de la lista), y determina si el valor de x se encuentra en la lista. 

Para ello, retorna:

-  True: si el valor x coincide con el valor ubicado en el centro del intervalo de búsqueda de la lista, intervalo dado por izq y der.

-  False: si el valor de izq (cota inferior del intervalo) es mayor al valor de der (cota superior del intervalo).

- Caso contrario, el proceso busquedaBinaria se debe repetir, y cada vez que se ejecute la función busquedaBinaria se le pasará el nuevo intervalo de búsqueda (modificando el valor de izq o der de acuerdo a si el valor de x es mayor o menor al valor del centro).

2) Una función llamada buscar, que recibe una lista de números enteros ordenados (suponer que ya viene ordenados de menor a mayor) y el valor de x que se debe buscar en la lista. Y retorna True si se encuentra el valor en la lista, y false, caso contrario.

Para ello, utiliza la función busquedaBinaria del punto anterior.

       

Para los que tienen plan nuevo:

Una empresa dedicada a la logística en los aeropuertos necesita hacer una evaluación de los costos

que le provee a un Aeropuerto Internacional, para ello procedemos a explicar en líneas generales, sin

considerar chequeos de seguridad, y solo vamos a analizar arribos internacionales y cómo funciona la

logística para esos equipajes.

El proceso comienza cuando llega un Avión al aeropuerto, al mismo momento que los pasajeros

descienden, el equipaje es descargado por el personal. El equipaje es cargado en carros y luego

ingresado para su análisis a una cinta transportadora y por medio de un lector de barras que tienen

todos los bauchers, se determina si el equipaje es retirado en ese Aeropuerto, o si ese equipaje junto

con su dueño están en tránsito, toman otro vuelo hacia otro destino.

Este análisis se hace tanto para equipajes de pasajeros como para correo aéreo, sin importar si son

encomiendas o sobres, se tratan de la misma manera. Por supuesto, el análisis de la logística y

clasificación lleva un costo asociado, sobre el total de lo categorizado en el sistema por mes se le

pasa una factura al administrador del aeropuerto para su cobro.

En base a este caso de estudio, usted deberá modelar los siguientes objetos y resolver una serie de

consignas:

- El equipaje tiene un código de equipaje, un código de destino, un número de vuelo y un

costo asociado y un indicador que determina si el equipaje ya ha sido analizado o no (dato

boolean).

- El equipaje puede ser valija de pasajero, o bien puede ser bolsa de correo. La valija del

pasajero tiene un peso asociado, el bolso de correo tiene una cantidad de paquetes que tiene

asociado y el tipo de contenido, siendo 1 para sobres y 2 para encomiendas.

- Cada equipaje que circula en la cinta transportadora para su análisis debe dar a conocer el

costo de analizarlo, al pasar por el scanner. De la siguiente manera

o Si es una valija de pasajero, al costo se le suma un 1.2% por cada kilo excedente, si el

peso supera los 50 kg.

o Si es un bolsa de correo, al costo se le incrementa un 15% si es de encomienda, al ser

sobres, el costo es el mismo porque la cinta no sufre desgaste por el peso del bolso de

correo de ese tipo

- La cinta transportadora lleva los equipajes y al pasar por un scanner determina si los debe

entregar en ese aeropuerto o no, analizando el destino.

- Si el destino es otro aeropuerto se almacena en un área que le corresponde al número de

vuelo de ese destino, para luego cargarlo en el avión correspondiente

- El Aeropuerto posee un código de aeropuerto (el código destino de un equipaje corresponde

a un código de aeropuerto), una cinta transportadora (colección de equipajes que llegan al

aeropuerto), depósito de equipajes en tránsito (colección de equipajes con código de destino

distinto al aeropuerto).

- En el Aeropuerto desarrollar un mensaje escanearEquipajes que analice los equipajes de la

cinta transportadora y ubique aquellos equipajes que correspondan en el depósito de

equipajes en tránsito, quitándolos de la cinta transportadora. Marcar los equipajes que han

sido analizados.

- Determinar cuál es el costo promedio que debe abonar el Aeropuerto por el análisis de los

equipajes (tener en cuenta para el cálculo solo aquellos equipajes que ya han sido

analizados). Nombre del Mensaje: costoPromedioAPagar



Espero que les sirva para el estudio! Saludos!!

0Valor
918Visitas
Comentarios
Por favor inicia sesión para comentar.