Solucionado (ver solución)
Solucionado
(ver solución)
3
respuestas

Ultimo ejercicio del aula 4

¡Hola a todos!

Tengo varias dudas con el siguiente codigo: si la pregunta era escriba un programa que calcule al ganador en el codigo de respuesta ¿es posible que esta parte fuera omitida en la resolucion del codigo?, ¿Como se podría resolver si dos o mas empleados empatan en la mayoria de votos?, en este ejercicio ¿Cual es la diferencia entre voto nulo y voto anulado?, ¿no son lo mismo?


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. *

# Inicializamos las variables contadoras
votos_candidato1 = 0
votos_candidato2 = 0
votos_candidato3 = 0
votos_candidato4 = 0
votos_nulos = 0
votos_blanco = 0

# Inicio del bucle para leer los votos
for i in range(0, 20):
    voto = int(input('Ingresa tu voto: ')
    if voto == 1:
        votos_candidato1 += 1
    elif voto == 2:
        votos_candidato2 += 1
    elif voto == 3:
        votos_candidato3 += 1
    elif voto == 4:
        votos_candidato4 += 1
    elif voto == 5:
        votos_nulos += 1
    elif voto == 6:
        votos_blanco += 1
    else:
        print("Voto inválido.")

print(f'Votos candidato 1: {votos_candidato1}')
print(f'Votos candidato 2: {votos_candidato2}')
print(f'Votos candidato 3: {votos_candidato3}')
print(f'Votos candidato 4: {votos_candidato4}')
print(f'Votos nulos: {votos_nulos}')
print(f'Votos en blanco: {votos_blanco}')
print(f'Porcentaje de votos nulos: {(votos_nulos / 20 * 100)}')
print(f'Porcentaje de votos en blanco: {(votos_blanco / 20 * 100)}')
3 respuestas

¿Existe una variante mucho mas corta que la descrita teniendo en cuenta unicamente lo visto hasta ahora?

print("*****ELECCIONES GERENCIALES*****")
c1 = 0
c2 = 0
c3 = 0
c4 = 0
c5 = 0
c6 = 0
ct = 6
for i in range(6):
  n = int(input(f'Ingrese voto empleado numero {i + 1} \n 1. Candidato 1 \n 2. Candidato 2 \n 3. Candidato 3 \n 4. Candidato 4 \n 6. Voto en blanco \n' ))
  if n < 1 or n == 5 or n > 6:
    print("Voto anulado,")
    c5 += 1

  if n == 1:
    c1 += 1
  elif n == 2:
    c2 += 1
  elif n == 3:
    c3 += 1
  elif n == 4:
    c4 += 1 
  elif n == 6:
    c6 += 1

if c1 == c2 == c3 == c4:
  print('¡¡¡Hay Empate!!!')
elif c1 == c2 == c3 and c1 > c4:
    print('¡¡¡Hay Empate!!!')
elif c1 == c3 == c3 and c1 > c2:
    print('¡¡¡Hay Empate!!!')
elif c4 == c2 == c3 and c4 > c1:
    print('¡¡¡Hay Empate!!!')
elif c1 == c2 and c2 > c3 and c2 > c4:
  print('¡¡¡Hay Empate!!!')
elif c2 == c3 and c3 > c1 and c3 > c4:
  print('¡¡¡Hay Empate!!!')
elif c3 == c4 and c4 > c1 and c4 > c2:
  print('¡¡¡Hay Empate!!!')
elif c1 == c3 and c3 > c2 and c3 > c4:
  print('¡¡¡Hay Empate!!!')
elif c1 == c4 and c4 > c2 and c4 > c3:
  print('¡¡¡Hay Empate!!!')
elif c2 == c4 and c2 > c1 and c2 > c3:
  print('¡¡¡Hay Empate!!!')                  
elif c1 > c2  and c1 > c3 and c1 > c4:
  print("¡¡¡El ganador es el candidato 1!!!")    
elif c2 > c3 and c2 > c4:
  print("¡¡¡El ganador es el candidato 2!!!")
elif c3 > c4:
  print("¡¡¡El ganador es el candidato 3!!!")
else:
  print("¡¡¡El ganador es el candidato 4!!!")           
print(f'El total de votos por el candidato 1 fue de {c1} votos')
print(f'El total de votos por el candidato 2 fue de {c2} votos')
print(f'El total de votos por el candidato 3 fue de {c3} votos')
print(f'El total de votos por el candidato 4 fue de {c4} votos')
print(f'El total de votos nulos fue de {c5} votos y representa el {(c5/ct)*100} % de la votación')
00
print(f'El total de votos en blanco fue de {c6} votos y representa el {(c6/ct)*100} % de la votación')
solución!

¡Hola Cristian!

Gracias por compartir tu duda con nosotros. Analizando el código que has compartido, puedo responder a algunas de tus preguntas:

  1. Respecto a si es posible omitir la parte del código que calcula al ganador, no es recomendable hacerlo. Esta parte del código es fundamental para determinar quién es el ganador de la elección. Si se omite, no se podrá obtener esa información.

  2. En caso de que dos o más empleados empaten en la mayoría de los votos, el código actual no contempla un desempate. En este caso, podrías implementar una lógica adicional para manejar los empates. Por ejemplo, podrías mostrar un mensaje indicando que hay un empate y solicitar una segunda ronda de votación entre los candidatos empatados.

  3. Respecto a la diferencia entre voto nulo y voto anulado, en este contexto, ambos términos se refieren a lo mismo. Ambos representan votos que no son válidos o que no se pueden contar como votos válidos para ningún candidato.

Espero que esta información te sea útil para resolver tus dudas. Si tienes alguna otra pregunta, no dudes en preguntar. ;)

Si este post te ayudó, por favor, marca como solucionado ✓.

En realidad lo que queria decir fue que el codigo del profesor omitio la parte del ganador pero queria saber si fue algun tipo de error o algo parecido