Durante esta actividad, los alumnos serán capaces de:
Esta actividad promueve las siguientes habilidades, valores y actitudes: análisis y síntesis, capacidad de resolver problemas, creatividad, y uso eficiente de la informática y las telecomunicaciones.
Esta actividad puede ser elaborada de manera individual o en parejas.
NOTA: La siguiente descripción es una adaptación del clásico problema de Josefo.
Durante este periodo académico te fuiste de intercambio a la escuela de hechicería y brujería de Hogwarts para llevar los cursos de "Santería 1" e "Introducción a los Fenómenos Metafísicos Relacionados al Chupacabras", los cuales te van a revalidar por los tópicos II y III de tu carrera.
Se te ha indicado que tu compañero de dormitorio durante tu estancia debe ser seleccionado siguiendo el siguiente proceso:
Todos tus compañeros se colocan en un círculo tomados de las manos. Posteriormente escoges arbitrariamente un número entero positivo n (2 ≤ n ≤ 7) y a uno de tus compañeros del círculo. Comenzando con el compañero que seleccionaste, se empieza a contar en el mismo sentido que las manecillas del reloj alrededor del círculo. Cuando la cuenta alcanza el valor de n, esta persona es retirado del círculo y la cuenta empieza de nuevo, a partir del siguiente compañero en el círculo. El proceso continúa de tal manera que cada vez que la cuenta alcanza el valor de n, se remueve una persona del círculo. La persona que es removida del círculo, por supuesto, no se vuelve a contar. El último que queda será tu compañero de dormitorio.
El director Dumbledore, sabiendo que estudias una carrera de computación en el Tec de Monterrey, te ha pedido que desarrolles un programa en Python para simular todo este proceso. Este programa debe:
fin
indica que no se introducirán más nombres. Cada nombre se agrega al círculo en el mismo sentido que las manecillas del reloj.
Deberás implementar la solución a este problema usando una lista circular sencillamente encadenada.
Una corrida ejemplo del programa se muestra a continuación (los caracteres en azul corresponden a la entrada del usuario):
Dame el valor de n (entre 2 y 7): 4 Nombre de compañero: Euan Nombre de compañero: Ron Nombre de compañero: Keneth Nombre de compañero: Fred Nombre de compañero: Lee Nombre de compañero: Harry Nombre de compañero: fin ¿Con quién se va a comenzar a contar?: Ron Sale Lee Sale Keneth Sale Ron Sale Fred Sale Euan Tu compañero de dormitorio es: Harry
Coloca la solución al problema en un archivo llamado circular.py
.
Sube el archivo circular.py
usando el Sistema de Entrega de Tareas Automatizado. No se aceptan tareas por ningún otro medio.
Fecha límite: Viernes, 19 de octubre.
IMPORTANTE: El archivo fuente debe incluir hasta arriba la información personal de los autores (nombre y matrícula) dentro de un comentario. Por ejemplo:
#-------------------------------------------------------------------- # Actividad de programación: Harry Potter y la lista circular # Fecha: 19-Oct-2012 # Autores: # 1166611 Pepper Pots # 1160611 Anthony Stark #--------------------------------------------------------------------
Esta actividad será evaluada usando los siguientes criterios:
100 | La actividad cumple con todos los requerimientos. |
---|---|
-10 | No se incluyó en comentario los datos de los autores. |
10 | El programa fuente contiene errores sintácticos. |
50-90 | El programa produce algunos errores al momento de correrlo. |
DA | La solución es un plagio. |