Esses exercícios foram ótimos para treinar contadores, acumuladores e condições de parada. Deixo abaixo as minhas soluções em Python para quem quiser comparar lógicas ou usar como base para os próprios estudos. Sintam-se à vontade para pontuar melhorias!
- Tabuada com o laço for
Para gerar a tabuada de 1 a 10, o laço for junto com a função range() é a ferramenta perfeita, pois já sabemos exatamente quantas vezes o código precisa se repetir.
numero = int(input("Digite um número inteiro para ver sua tabuada: "))
print(f"\nTabuada do {numero}:")
for i in range(1, 11):
resultado = numero * i
print(f"{numero} x {i} = {resultado}")
- Verificador de Números Primos
A lógica aqui foi assumir inicialmente que o número é primo e tentar provar o contrário. Usei um laço for para testar se ele possui algum divisor além de 1 e dele mesmo. Assim que o programa encontra um divisor, ele muda a variável eh_primo para False e o break interrompe o laço, economizando processamento.
numero = int(input("Digite um número inteiro: "))
eh_primo = True
# Números menores ou iguais a 1 não são primos
if numero <= 1:
eh_primo = False
else:
# Testa divisores de 2 até o número anterior a ele
for i in range(2, numero):
if numero % i == 0:
eh_primo = False
break
if eh_primo:
print(f"\nO número {numero} é primo.")
else:
print(f"\nO número {numero} não é primo.")
- Distribuição de Idades de Pensionistas
Como a quantidade de clientes não era informada previamente, o while True é ideal. Ele cria um loop infinito que só é quebrado (usando break) quando a condição de encerramento é atingida, neste caso, a digitação de uma idade negativa.
grupo_0_25 = 0
grupo_26_50 = 0
grupo_51_75 = 0
grupo_76_100 = 0
print("Digite as idades dos pensionistas.")
print("Para encerrar a leitura, digite um número negativo.\n")
while True:
idade = int(input("Idade: "))
if idade < 0:
break
if 0 <= idade <= 25:
grupo_0_25 += 1
elif 26 <= idade <= 50:
grupo_26_50 += 1
elif 51 <= idade <= 75:
grupo_51_75 += 1
elif 76 <= idade <= 100:
grupo_76_100 += 1
else:
print("Aviso: Idade fora dos intervalos mapeados (> 100 anos).")
print("\n--- Distribuição de Idades ---")
print(f"[0-25]: {grupo_0_25} pessoa(s)")
print(f"[26-50]: {grupo_26_50} pessoa(s)")
print(f"[51-75]: {grupo_51_75} pessoa(s)")
print(f"[76-100]: {grupo_76_100} pessoa(s)")
- Urna Eletrônica Corporativa
Aqui nós sabemos exatamente a quantidade de eleitores (20 pessoas). Portanto, usei o for para repetir a coleta de votos exatamente 20 vezes. Fui somando cada voto em sua respectiva variável e, no final, calculei as porcentagens.
votos_candidato1 = 0
votos_candidato2 = 0
votos_candidato3 = 0
votos_candidato4 = 0
votos_nulos = 0
votos_brancos = 0
total_eleitores = 20
print("--- Eleição para Gerência ---")
print("Opções de voto:")
print("1 a 4 - Candidatos")
print("5 - Voto Nulo")
print("6 - Voto em Branco\n")
for i in range(total_eleitores):
voto = int(input(f"Voto do colaborador {i+1}: "))
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_brancos += 1
else:
print("Voto inválido! Será contabilizado como nulo.")
votos_nulos += 1
# Cálculo das porcentagens
percentual_nulos = (votos_nulos / total_eleitores) * 100
percentual_brancos = (votos_brancos / total_eleitores) * 100
print("\n--- Resultado Final da Eleição ---")
print(f"Candidato 1: {votos_candidato1} voto(s)")
print(f"Candidato 2: {votos_candidato2} voto(s)")
print(f"Candidato 3: {votos_candidato3} voto(s)")
print(f"Candidato 4: {votos_candidato4} voto(s)")
print(f"Votos Nulos: {votos_nulos} voto(s)")
print(f"Votos em Branco: {votos_brancos} voto(s)")
print("-" * 30)
print(f"Porcentagem de Nulos: {percentual_nulos:.2f}%")
print(f"Porcentagem de Brancos: {percentual_brancos:.2f}%")
Espero que esse material ajude a clarear as ideias de quem está travado em algum ponto. Bom avanço nos estudos para todos!