1
resposta

Desafio: hora da prática

  1. Escreva um programa que gere a tabuada de um número inteiro de 1 a 10, de acordo com a escolha da pessoa usuária. Como exemplo, para o número, a tabuada deve ser mostrada no seguinte formato:
    Tabuada do 2:

2 x 1 = 2

2 x 2 = 4

[...] 2 x 10 = 20

#Entrada de dados
num = int(input('Digite um número inteiro de 1 a 10: '))
for i in range (0, 11):
resultado = num * i
print(f'{num} x {i} = {resultado}')

  1. Os números primos possuem várias aplicações dentro da Ciência de Dados em criptografia e segurança, por exemplo. Um número primo é aquele que é divisível apenas por um e por ele mesmo. Assim, faça um programa que peça um número inteiro e determine se ele é ou não um número primo.

#Entrada de dados
num = int(input('Digite um número inteiro: '))
#Condicional
if num % num == 0 and num % 1 == num:
print(f'O número {num} é primo')
else:
print(f'O número {num} não é primo')

  1. Vamos entender a distribuição de idades de pensionistas de uma empresa de previdência. Escreva um programa que leia as idades de uma quantidade não informada de clientes e mostre a distribuição em intervalos de [0-25], [26-50], [51-75] e [76-100]. Encerre a entrada de dados com um número negativo.

#Entrada de dados
idade = int(input('Digite a idade do cliente: '))
#Condicional
while idade >= 0:
if idade >= 0 and idade <= 25:
print('O cliente está na categoria [0-25]')
elif idade >= 26 and idade <= 50:
print('O cliente está na categoria [26-50]')
elif idade >= 51 and idade <= 75:
print('O cliente está na categoria [51-75]')
elif idade >= 76 and idade <= 100:
print('O cliente está na categoria [76-100]')
else:
idade < 0
print('Programa encerrado')
break

  1. Em uma eleição para gerência em uma empresa com 20 pessoas colaboradoras, existem quatro candidatos(as). Escreva um programa que calcule o (a) vencedor(a) da eleição. A votação ocorreu da seguinte maneira:
    Cada colaborador(a) votou em uma das quatro pessoas candidatas (que representamos pelos números 1, 2, 3 e 4).

Também foram contabilizados os votos nulos (representados pelo número 5) e os votos em branco (representados pelo número 6).

Ao final da votação, o programa deve exibir o número total de votos para cada candidato(a), os nulos e os votos em branco. Além disso, deve calcular e exibir a porcentagem de votos nulos em relação ao total de votos e a porcentagem de votos em branco em relação ao total de votos.

#Contadores
candidato1 = 0
candidato2 = 0
candidato3 = 0
candidato4 = 0
nulo = 0
branco = 0

#Entrada de votos
for i in range(20):

votos = int(input('Digite o número do candidato: '))

# Condicionais
if votos == 1:
    candidato1 += 1

elif votos == 2:
    candidato2 += 1

elif votos == 3:
    candidato3 += 1

elif votos == 4:
    candidato4 += 1

elif votos == 5:
    nulo += 1

elif votos == 6:
    branco += 1

else:
    print('Voto inválido')

#resultados
print('\nResultado da eleição:')
print('Candidato 1:', candidato1)
print('Candidato 2:', candidato2)
print('Candidato 3:', candidato3)
print('Candidato 4:', candidato4)
print('Votos nulos:', nulo)
print('Votos em branco:', branco)

1 resposta

Olá, Weydison. Como vai?

Parabéns por enfrentar o desafio! É praticando que consolidamos conceitos fundamentais como estruturas de repetição (for, while) e condicionais (if, elif, else). Suas soluções mostram que você compreendeu bem a lógica de entrada de dados e contadores.

Gostaria de contribuir com algumas observações técnicas e boas práticas para ajudar você a refinar ainda mais o seu código:

1. Lógica de Números Primos
Notei um detalhe importante no seu código de verificação de números primos. Atualmente, você utilizou a lógica:

if num % num == 0 and num % 1 == num:

Essa condição será verdadeira para qualquer número inteiro positivo, pois todo número é divisível por ele mesmo e todo número dividido por 1 resulta nele mesmo. Para identificar um número primo, precisamos verificar se ele possui algum outro divisor entre 2 e a raiz quadrada dele. Uma forma didática de resolver isso é usando um loop:

num = int(input('Digite um número inteiro: '))
primo = True

if num < 2:
    primo = False
else:
    for i in range(2, num):
        if num % i == 0:
            primo = False
            break

if primo:
    print(f'O número {num} é primo')
else:
    print(f'O número {num} não é primo')

2. Loop Infinito na Distribuição de Idades
No seu código de idades, o while está testando a variável idade, mas a leitura do input está fora do loop. Isso faria com que o programa repetisse a mesma idade para sempre se ela fosse positiva. Além disso, no final do loop, é necessário pedir a próxima idade. Veja uma sugestão de ajuste:

while True:
    idade = int(input('Digite a idade (ou negativo para sair): '))
    if idade < 0:
        print('Programa encerrado')
        break
    # Seus ifs de categorias continuam aqui...

3. Cálculos de Porcentagem na Eleição
Seu sistema de votação ficou ótimo e bem organizado! Como o desafio pedia também as porcentagens, você pode adicionar esses cálculos ao final do programa. Lembre-se de que a porcentagem é calculada como: (votos_especificos / total_votos) * 100.

total = 20
perc_nulo = (nulo / total) * 100
perc_branco = (branco / total) * 100

print(f'Porcentagem de nulos: {perc_nulo}%')
print(f'Porcentagem de brancos: {perc_branco}%')

Continue com essa dedicação! Dominar essas estruturas de controle é o passo essencial para quem quer trabalhar com limpeza e manipulação de grandes volumes de dados.

Espero que possa ter lhe ajudado!