You are on page 1of 8

Estrategias de Programacin y Estructuras de Datos

Enunciado de la Prctica Curso 2012-2013

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)&&not(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.

Estrategias de Programacin y Estructuras de Datos 2012/2013 5

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.

4. EVALUACIN Y CALENDARIO DE ENTREGA 4.1. Fases de la realizacin de la prctica


Para llevar a cabo la prctica, el alumno deber seguir las siguientes fases de desarrollo, si bien algunas de ellas, no necesariamente tienen por qu realizarse en el orden en que se detallan a continuacin: 1. Asistencia a la sesin de control obligatoria. Durante el desarrollo del cuatrimestre, tendr lugar en los centros asociados de la UNED una sesin de control con carcter orientativo y asistencia obligatoria para aprobar la asignatura. Pngase en contacto con su tutor o Centro Asociado para conocer la fecha de celebracin de estas sesiones. 2. Implementacin documento. de la prctica segn las instrucciones de este

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.

4.2. Fechas de entrega


La evaluacin de la prctica implica los cuatro pasos que deben ser satisfechos para aprobarla. Cada uno tiene una fecha concreta para su realizacin. En particular, la fecha de los 3 primeros pasos la establece el Tutor de su Centro Asociado. Pngase en contacto con l para obtener informacin al respecto de este calendario. El paso 4 - el envo del cdigo de la prctica al Equipo Docente - se realizar telemticamente a travs del entorno virtual de la asignatura mediante un enlace que permanecer habilitado hasta el 23 de junio de 2013 para la convocatoria de junio y hasta el 15 de septiembre para la convocatoria extraordinaria. Cualquier cambio al respecto de esta planificacin inicial, tanto de retraso como adelanto, ser convenientemente publicado en el tabln de noticias de la asignatura, accesible desde el entorno virtual. Recomendamos al alumno que revise este tabln con frecuencia.

4.3. Evaluacin y calificacin


Segn aparece publicado en la normativa de la asignatura la evaluacin de la prctica supone un 20% sobre el total de la nota final. Es decir, la nota del examen se pondera en rango [0 10] al 80% y la de esta prctica en rango [0 Estrategias de Programacin y Estructuras de Datos 2012/2013 7

10] al 20% de manera que: NotaFinal = 0,8 x NotaExamen + 0,2 x NotaPrctica.

4.4. Criterios de calificacin


A continuacin se discuten algunos de los criterios ms relevantes de correccin que deben ser tenidos en cuenta por el estudiante durante la realizacin de la prctica para la obtencin de una calificacin apta en la misma. Ntese que no cumplir alguno de estos criterios puede suponer un suspenso automtico. 1. La realizacin de la prctica tiene carcter obligatorio. No puede aprobarse la asignatura sin haber aprobado la prctica. 2. La prctica es individual. Las prcticas cuyo cdigo coincida significativamente con el de otro alumno sern motivo de suspenso para todos los implicados, no pudiendo aprobar ninguno de ellos en el presente curso acadmico. 3. El alumno deber implementar su prctica utilizando, exclusivamente, los TAD explicados en el curso. Toda utilizacin de otras abstracciones o implementaciones (por ejemplo, las clases de utilidad que Java proporciona para las estructuras lineales, o las estructuras propias del lenguaje) implicar el suspenso inmediato de la prctica con las consecuencias descritas en los puntos 1 y 2. 4. El alumno deber cumplir con el protocolo y fechas de entrega descritas anteriormente. No se admitirn excepciones a esta norma, por lo que se recomienda una adecuada planificacin temporal as como la observancia de unas mnimas normas de seguridad inexcusables, que incluyen pero no se limitan a la garanta de la ausencia de virus, troyanos, gusanos y cualquier otro malware o spyware. La deteccin de dichos elementos ajenos a la prctica provocar el inmediato suspenso en los trminos que dictan los puntos 1 y 2 de este apartado. El alumno deber consultar los foros de la asignatura (Foro de Prcticas) y contactar con el TAR o con su Tutor si tiene dudas sobre la prctica. La puesta en comn de ideas con los compaeros a travs de los foros se permite y se aconseja, siempre que no lleve asociado el intercambio de cdigo (vase el punto 2).

You might also like