UNIVERSIDAD NACIONAL HERMILIO VALDIZÁN DE HUÁNUCO Facultad de Ingeniería Civil y Arquitectura “Año de la Universalización de la Salud” Cuestionario de la Tarea Nº 04 Curso: Programación Digital Docente: Ing. MSc. Dr. Aland Bravo Vecorena Datos del Alumno/a Nombre Apellido Paterno Apellido Materno Luis Pablo Fecha 14/06/2020 Torres Correo [email protected] Ochavano Teléfono 9304714.34 A: Iniciando el Proyecto Pluralidad Implemente un programa que ejecute una elección de pluralidad, según lo siguiente: $ ./python plurality.py Alice Bob Charlie Número de Votantes: 4 Voto: Alice Voto: Bob Voto: Charlie Voto: Alice Alice Antecedentes Las elecciones vienen en todas las formas y tamaños. En el Reino Unido, el primer ministro es nombrado oficialmente por el monarca, que generalmente elige al líder del partido político que gana la mayoría de los escaños en la Cámara de los Comunes. Estados Unidos utiliza un proceso de Colegio Electoral de varios pasos donde los ciudadanos votan sobre cómo cada estado debe asignar a los Electores que luego eligen al Presidente. UNIVERSIDAD NACIONAL HERMILIO VALDIZÁN DE HUÁNUCO Facultad de Ingeniería Civil y Arquitectura “Año de la Universalización de la Salud” Sin embargo, quizás la forma más simple de celebrar una elección es a través de un método comúnmente conocido como "voto de pluralidad" (también conocido como "primero pasa la posta" o "el ganador se lleva todo"). En la votación de la pluralidad, cada votante puede votar por un candidato. Al final de las elecciones, el candidato que tenga el mayor número de votos es declarado ganador de las elecciones. Empezando Aquí le mostramos cómo descargar el "código de distribución" de este problema (es decir, el código de inicio) en su propio IDE. En una ventana de terminal, ejecute cada uno de los siguientes pasos: Entendiendo el Proyecto Ahora echemos un vistazo a plurality.py y leamos el código de distribución que se le ha proporcionado. La línea #define MAX 9 es una sintaxis utilizada aquí para significar que MAX es una constante (igual a 9) que se puede usar en todo el programa. Aquí, representa el número máximo de candidatos que puede tener una elección. El archivo luego define una estructura struct llamada candidate. Cada candidate tiene dos campos: una cadena string llamada name que representa el nombre del candidato y un int llamado votes que representan el número de votos que tiene el candidato. A continuación, el archivo define una matriz global de candidatos candidates, donde cada elemento es en sí mismo un candidato candidate. Ahora, eche un vistazo a la función principal main. Vea si puede encontrar dónde el programa establece una variable global candidate_count que representa el número de candidatos en las elecciones, copia los argumentos de la línea de comandos en la matriz de candidatos candidates y le pide al usuario que escriba el número de votantes. Luego, el programa permite que cada votante escriba un voto (¿ve cómo?), Llamando a la función de vote para cada candidato votado. Finalmente, main llama a la función print_winner para imprimir el ganador (o ganadores) de la elección. Sin embargo, si mira más abajo en el archivo, notará que las funciones vote y print_winner se han dejado en blanco. ¡Esta parte depende de usted para completarlo! UNIVERSIDAD NACIONAL HERMILIO VALDIZÁN DE HUÁNUCO Facultad de Ingeniería Civil y Arquitectura “Año de la Universalización de la Salud” Especificaciones Técnicas Complete la implementación de elección de voto de pluralidad. plurality.py de tal manera que el programa simule una Completa la función de vote. o vote toma un solo argumento, una cadena string llamada name, que representa el nombre del candidato por el que se votó. o Si el nombre name coincide con uno de los nombres de los candidatos en la elección, actualice el total de votos de ese candidato para dar cuenta de la nueva votación. La función de voto vote en este caso debería ser verdadera para indicar una votación exitosa. o Si el nombre name no coincide con el nombre de ninguno de los candidatos en la elección, no se debe cambiar el total de votos, y la función de voto vote debe ser falsa para indicar una votación inválida. o Puede suponer que no habrá dos candidatos con el mismo nombre. Complete la función print_winner. o La función debe imprimir el nombre del candidato que recibió la mayoría de los votos en las elecciones y luego imprimir una nueva línea. o Es posible que la elección termine en empate si varios candidatos tienen cada uno el número máximo de votos. En ese caso, debe mostrar los nombres de cada uno de los candidatos ganadores, cada uno en una línea separada. No debe modificar nada más en plurality.py que no sean las implementaciones de las funciones vote y print_winner (y la inclusión de archivos de encabezado adicionales, si lo desea). Modo de Uso Su programa debe comportarse según los ejemplos a continuación: $ ./plurality Alice Bob Number of voters: 3 Vote: Alice Vote: Bob Vote: Alice Alice UNIVERSIDAD NACIONAL HERMILIO VALDIZÁN DE HUÁNUCO Facultad de Ingeniería Civil y Arquitectura “Año de la Universalización de la Salud” $ ./plurality Alice Bob Number of voters: 3 Vote: Alice Vote: Charlie Invalid vote. Vote: Alice Alice $ ./plurality Alice Bob Charlie Number of voters: 5 Vote: Alice Vote: Charlie Vote: Bob Vote: Bob Vote: Alice Alice Bob Pruebas Asegúrese de probar su código para asegurarse de que maneja los escenarios: Una elección con cualquier número de candidatos (hasta un máximo de 9) Votar por un candidato por nombre Votos inválidos para candidatos que no están en la lista Imprimir el ganador de la elección si solo hay uno Imprimir el ganador de la elección si hay varios ganadores UNIVERSIDAD NACIONAL HERMILIO VALDIZÁN DE HUÁNUCO Facultad de Ingeniería Civil y Arquitectura “Año de la Universalización de la Salud”