Professional Documents
Culture Documents
ndice
1. DESCRIPCIN GENERAL..................................................................................... 3 2. DESARROLLO DE LA PRCTICA..........................................................................4 3. TRABAJO A ENTREGAR....................................................................................... 6 4. EVALUACIN Y CALENDARIO DE ENTREGA .......................................................7 4.1. Fases de la realizacin de la prctica.........................................................7 4.2. Fechas de entrega...................................................................................... 7 4.3. Evaluacin y calificacin............................................................................7 4.4. Criterios de calificacin.............................................................................. 8
1. DESCRIPCIN GENERAL
Una exitosa pastelera, controlada robticamente, ofrece n tipos distintos de tartas distinguidas por un identificador. El establecimiento dispone de una mquina que produce tartas con los n tipos de molde de manera secuencial (tipo 1, tipo2, , tipo n, tipo 1, tipo 2, etc) cada 2 unidades de tiempo (u.t.) por tarta, dejndolas unas encima de otras, cuando est en funcionamiento. La mquina se activa siempre y cuando sea necesario mientras se est atendiendo un pedido. El local tambin dispone de n-1 mostradores, colocados como muestra la figura, en los que el robot puede colocar tartas de muestra de la misma manera de cmo salen de la mquina, es decir, unas encima de otras. Tanto en la mquina como en cada uno de los mostradores se pueden acumular de esta manera n-1 tartas diferentes.
La pastelera tiene capacidad para alojar a un mximo de 2n+1 clientes y debido a su xito no para de recibir clientes que van haciendo sus pedidos. Cada cliente tiene asociado un identificador, entero no negativo, que le diferencia del resto. No todos los clientes son iguales, y cada uno de ellos puede esperar un tiempo determinado dentro del local para recoger su pedido que empieza a descender desde el momento que se les atiende, de manera que el robot sirve en primer lugar a aquellos clientes ms impacientes, y a igual tiempo de paciencia, atiende antes a los que entraron antes a la pastelera. Cuando el pedido de un cliente es satisfecho, o bien su paciencia se ha agotado, el cliente correspondiente sale del local y entra otro nuevo. El precio de cada tarta es de k euros pero los clientes satisfechos dan una propina adicional dependiendo de su tiempo de paciencia restante en el momento de recibir su pedido, calculada mediante la siguiente frmula: Propina = tiempo de paciencia restante (tr)/ n tipos de tartas = tr/n. El robot lleva un informe de ventas de manera que cada vez que se satisface un pedido, escribe el identificador del cliente correspondiente, el tipo de tarta que se vendi y el dinero obtenido por dicha venta, y una vez finalizada su jornada laboral apunta, en ltimo lugar, los ingresos totales obtenidos durante el da. Cada actualizacin del informe supondremos que la hace automticamente en tiempo cero. Estrategias de Programacin y Estructuras de Datos 2012/2013 3
2. DESARROLLO DE LA PRCTICA
El algoritmo que sigue el robot a la hora de llevar a cabo el pedido del cliente ms impaciente se divide en tres fases: Fase 1: En la primera fase, el robot mira las tartas situadas encima de las torres de tartas de la mquina y de los mostradores. Si alguna de ellas se corresponde con el pedido, se entrega automticamente en tiempo cero. Fase 2: En caso contrario, se ejecuta la segunda fase consistente en mover la tarta situada encima de la mquina al primer mostrador disponible ms vaco, por orden, hasta encontrar, en la torre de tartas de la misma, alguna correspondiente con el pedido. Fase 3: Si la fase 2 no ha tenido xito, ejecuta por ltimo, la tercera fase. Esta fase consiste en activar la mquina hasta que produzca una tarta del tipo pedido por el cliente. Ntese que si el pedido se entrega durante la primera fase, no se modifica la paciencia del cliente, mientras que en las otras fases se modifica la paciencia del cliente en el momento en el que el robot mueve una tarta a un mostrador o fabrica nuevas tartas. A continuacin, damos en pseudocdigo el algoritmo que sigue el robot a la hora de atender al cliente ms impaciente:
atenderCliente(ClienteC){ TartaT=obtenerPedido(C); /*FASE1:Recorrermquinaymostradores.Silatartasituadaarribadel tododelamquinaoalgnmostradoresdeltipopedido,seleentregaal clienteautomticamenteentiempocero*/ for(M:Maquinatoltimo_Mostrador){ if(T==tarta(M)){ entregarPedido(C); return; } } /*FASE2:Recorrertartasdelamquinahastaencontrarunadeltipopedido porelcliente*/ while(moverTarta()){ /*Sielclientemantienelapacienciayseencuentraunatartadeltipo quepide,seleentregaelpedido*/ if(tienePaciencia(C)){ if(T==tarta(Mquina)){ entregarPedido(C); return; } } /*Sialclienteseleagotalapaciencia,saledellocalyentraotro nuevocliente*/ else{ nuevoCliente(); return; } }
/*FASE3:Fabricartartasmientrasqueelclientemantengalapaciencia,y entregarleelpedidosialgunadelastartasfabricadassecorrespondecon ladelpedido*/ booleansale_cliente=false; while(tienePaciencia(C)&¬(sale_cliente)){ if(fabricarTarta()){ if(T==tarta(Mquina)){ if(tienePaciencia(C))){ entregarPedido(C); return; } } else{ sale_cliente=true; } } } /*Sialclienteseleagotolapaciencia,saledellocalyentrauno nuevo*/ nuevoCliente(); return; }
Las operaciones que aparecen en el pseudocdigo anterior realizan lo siguiente: obtenerPedido(C): Devuelve el tipo de tarta del pedido del cliente C tarta(M): Devuelve el tipo de tarta situada encima de la torre de M, siendo M la mquina o alguno de los mostradores del establecimiento siempre que tengan alguna tarta. entregarPedido(C): Actualiza el informe de ventas con la informacin correspondiente al cliente C: su identificador, el tipo de tarta que pidi y el dinero que entreg. Tras ello, entra un nuevo cliente al local (operacin nuevoCliente()). moverTarta(): Mueve la tarta de encima de la torre de la Mquina al primer mostrador disponible, en orden, que est ms vaco, llevndole una u.t. la operacin, siempre y cuando se pueda llevar a cabo. Devuelve true si dicho movimiento se ha podido realizar y false en caso contrario tienePaciencia(C): Comprueba que al cliente C no se le ha acabado la paciencia. Suponemos que a los clientes se les agota la paciencia cuando sta es menor que cero. nuevoCliente(): Sale del local el cliente que estaba siendo atendido y entra un nuevo cliente. fabricarTarta(): Si la mquina no est llena y la paciencia del cliente que est siendo atendido es estrictamente positiva, tras dos u.t. la mquina fabrica una tarta y la funcin devuelve true. En caso contrario, devuelve false.
3. TRABAJO A ENTREGAR
1. Decidir las estructuras de datos necesarias para modelar el problema anterior, justificar el por qu de su uso e implementarlas siguiendo las interfaces de la asignatura. 2. Modelar, simular e implementar el problema anterior. El Equipo Docente proporcionar a los alumnos ficheros de entrada que representarn una jornada laboral en la pastelera. Estos ficheros tendrn el siguiente formato: en la primera lnea se encuentra el valor n necesario para simular el problema en la segunda lnea el valor k (entero) del precio de las tartas en las siguientes lneas, en orden, los clientes representados por su identificador (nmero entero), el tipo de tarta (nmero entero entre 1 y n) que van a pedir y su tiempo de paciencia asignado (nmero entero), separados por un espacio tabular.
El alumno deber devolver como salida el informe de ventas de la pastelera correspondiente a la jornada laboral proporcionada. Este fichero de salida deber contener una lnea por cada pedido satisfecho en la que se represente el identificador del cliente, el tipo de tarta vendida y el dinero obtenido, todos ellos separados por espacios tabulares (este tipo de fichero se conoce con el nombre de TSV). La ltima lnea del fichero contendr los ingresos totales obtenidos durante la jornada laboral representada en el fichero de entrada. 3. Qu coste asinttico temporal en el caso peor tiene la operacin de bsqueda de una tarta tal que se corresponda con el pedido ms urgente? El alumno tiene que incluir en su memoria de prctica la respuesta razonada a esta pregunta.
3. Entrega del cdigo al Tutor, que ser el encargado de evaluar la prctica, en la forma y tiempo que ste prescriba segn el calendario marcado por l. 4. Entrega del cdigo al Equipo Docente mediante el entorno virtual.