Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

09Desafío_ ¡Es hora de practicar! uso de estructuras de repetición como el while y el for (Parte 3)

estructuras de repetición como el while y el for (Parte 3) ejercicio 9


"""
9 - En una elección para la gerencia de una empresa con 20 empleados, hay cuatro candidatos. Escribe un programa que calcule al ganador de la elección. La votación se realizó de la siguiente manera:

Cada empleado votó por uno de los cuatro candidatos (representados por los números 1, 2, 3 y 4).

También se contaron los votos nulos (representados por el número 5) y los votos en blanco (representados por el número 6).

Al final de la votación, el programa debe mostrar el número total de votos para cada candidato, los votos nulos y los votos en blanco. Además, debe calcular y mostrar el porcentaje de votos nulos con respecto al total de votos y el porcentaje de votos en blanco con respecto al total de votos.

"""
# 9 - Simulación de elección con 20 empleados.-  Elección para la gerencia

print("\n--- Desafío 9: Elección de Gerencia ---")
TOTAL_VOTOS = 20

# Contadores para votos.
candidato_1 = 0
candidato_2 = 0
candidato_3 = 0
candidato_4 = 0
votos_nulos = 0     # Opción 5
votos_blancos = 0   # Opción 6

print("Opciones: 1, 2, 3, 4 (Candidatos); 5 (Nulo); 6 (Blanco)")

# Uso de 'for' para controlar los 20 votos.
for i in range(1, TOTAL_VOTOS + 1): #el valor final de range sera 20
    voto_valido = False
    
    # Ciclo ((lazo o bucle) 'while' para la validación del voto
    while voto_valido == False:
        # se asume que el usuario ingresa un entero, aunque podría ser incorrecto.
        voto = int(input(f"Voto del empleado {i} de {TOTAL_VOTOS}: "))
        
        if voto >= 1 and voto <= 6:
            voto_valido = True
            # Contabilizar el voto válido
            if voto == 1:
                candidato_1 = candidato_1 + 1
            elif voto == 2:
                candidato_2 = candidato_2 + 1
            elif voto == 3:
                candidato_3 = candidato_3 + 1
            elif voto == 4:
                candidato_4 = candidato_4 + 1
            elif voto == 5:
                votos_nulos = votos_nulos + 1
            elif voto == 6:
                votos_blancos = votos_blancos + 1
        else:
            print("Opción inválida. Ingresa 1, 2, 3, 4, 5 o 6.")


# --- Cálculos y Resultados --- Estadistica

# Calcular porcentajes %. Un % = razon matematica entre la parte y el todo.
if TOTAL_VOTOS > 0:
    porcentaje_nulos = (votos_nulos / TOTAL_VOTOS) * 100
    porcentaje_blancos = (votos_blancos / TOTAL_VOTOS) * 100
else:
    porcentaje_nulos = 0
    porcentaje_blancos = 0

# Determinar el ganador (simplificado para los 4 candidatos). max_votos y ganador son variables para controlar o comparar estado de c/candidato.
max_votos = -1
ganador = -1
empate = False

# Candidato 1
if candidato_1 > max_votos:
    max_votos = candidato_1
    ganador = 1
    empate = False
elif candidato_1 == max_votos:
    empate = True

# Candidato 2
if candidato_2 > max_votos:
    max_votos = candidato_2
    ganador = 2
    empate = False
elif candidato_2 == max_votos:
    empate = True

# Candidato 3
if candidato_3 > max_votos:
    max_votos = candidato_3
    ganador = 3
    empate = False
elif candidato_3 == max_votos:
    empate = True
    
# Candidato 4
if candidato_4 > max_votos:
    max_votos = candidato_4
    ganador = 4
    empate = False
elif candidato_4 == max_votos:
    empate = True
    
# Mostrar el resultado final del ganador
if empate == True or max_votos == -1: # Si hubo empate o no hubo votos
    resultado_ganador = "¡Empate entre los candidatos principales!"
else:
    resultado_ganador = f"El ganador es el Candidato {ganador} con {max_votos} votos."


print("\n--- Resultados de la Elección ---")
print(f"Total de votos emitidos: {TOTAL_VOTOS}")

print("\nVotos por Candidato:")
print(f"Candidato 1: {candidato_1} votos")
print(f"Candidato 2: {candidato_2} votos")
print(f"Candidato 3: {candidato_3} votos")
print(f"Candidato 4: {candidato_4} votos")

print("\nOtros Votos:")
print(f"Votos Nulos (5): {votos_nulos} votos ({porcentaje_nulos:.2f}%)")
print(f"Votos en Blanco (6): {votos_blancos} votos ({porcentaje_blancos:.2f}%)")

print(f"\n**{resultado_ganador}**")

print("\n**Gracias por haber participado del proceso de eleccion de Gerente **")
1 respuesta

Hola,

Gracias por compartir tu experiencia con nosotros. Recuerda que estamos aquí para ayudarte. Si necesitas ayuda, no dudes en buscarnos en el foro.

¡Gracias nuevamente!

Saludos,

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!