2
respostas

Desafio: hora da prática

EM CONSTRUÇÃO:

Aquecendo na programação:

1. Escreva um programa que peça dois números inteiros e imprima todos os números inteiros entre eles.

# Solicita os números ao usuário:

numero_1 = int (input ("Digite o primeiro número inteiro: "))
numero_2 = int (input ("Digite o segundo número inteiro: "))

# Determina o menor e o maior:

menor = min(numero_1, numero_2)
maior = max(numero_1, numero_2)

# Verifica se são iguais
if numero_1 == numero_2:
    print(f'Os números são iguais. Não há sequência entre eles.')
else:
    # Imprime todos os números inteiros entre eles:
    print(f'Os números inteiros entre {menor} e {maior} são:')
    for i in range(menor + 1, maior):
        print(i)

Digite o primeiro número inteiro: 7
Digite o segundo número inteiro: 30
Os números inteiros entre 7 e 30 são:
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

2. Escreva um programa para calcular quantos dias levará para a colônia de uma bactéria A ultrapassar ou igualar a colônia de uma bactéria B, com base nas taxas de crescimento de 3% e 1,5% respectivamente. Considere que a colônia A inicia com 4 elementos e a B com 10.

# Crescimento das bactérias A e B:

# Número inicial de bactéria:

bacteria_A = 4
bacteria_B = 10

# Taxa de crescimento das colônias:

taxa_A = 0.03
taxa_B = 0.015

# Contador de dias:

dias = 0

# A condição que finaliza o laço é o caso em que a colônia A ultrapasse a colônia B:

while bacteria_A < bacteria_B:
    bacteria_A *= (1 + taxa_A)
    bacteria_B *= (1 + taxa_B)
    dias += 1

# Resultado final:

print(f'A colônia A ultrapassa ou iguala a colônia B em {dias} dias.')

A colônia A ultrapassa ou iguala a colônia B em 63 dias.

3. Para tratar uma quantidade de 15 dados de avaliações de pessoas usuárias de um serviço da empresa, precisamos verificar se as notas são válidas. Então, escreva um programa que vai receber a nota de 0 a 5 de todos os dados e verificar se é um valor válido. Caso seja inserido uma nota acima de 5 ou abaixo de 0, repita até que a pessoa usuária insira um valor válido.

# Listagem para armazenamento de nomes e notas:
dados = []

# Laço para pegar as 15 notas:
for i in range(15):
    nome = input(f'Insira o nome do usuário {i+1}: ')
    nota = float(input(f'Insira a nota de {nome} (0 a 5): '))

    # Verificação se a nota está entre 0 e 5:
    while (nota < 0) or (nota > 5):
        nota = float(input(f'Nota inválida! Insira novamente a nota de {nome} (0 a 5): '))

    dados.append((nome, nota))  # guarda nome e nota válidos

print(f'Verificação feita. Todas as notas são válidas.')

# Resultado:
for nome, nota in dados:
    print(f'{nome}: {nota}')
    
    Insira o nome do usuário 1: Caio
Insira a nota de Caio (0 a 5): 0
Insira o nome do usuário 2: Louise
Insira a nota de Louise (0 a 5): 4.9
Insira o nome do usuário 3: João
Insira a nota de João (0 a 5): 3.2
Insira o nome do usuário 4: Bárbara
Insira a nota de Bárbara (0 a 5): 4.5
Insira o nome do usuário 5: Ivan
Insira a nota de Ivan (0 a 5): 1.6
Insira o nome do usuário 6: Rachel
Insira a nota de Rachel (0 a 5): 5
Insira o nome do usuário 7: Pedro
Insira a nota de Pedro (0 a 5): 1.3
Insira o nome do usuário 8: Carolina
Insira a nota de Carolina (0 a 5): 7
Nota inválida! Insira novamente a nota de Carolina (0 a 5): 4.7
Insira o nome do usuário 9: Hugo
Insira a nota de Hugo (0 a 5): 3.1
Insira o nome do usuário 10: Virgínia
Insira a nota de Virgínia (0 a 5): 2.2
Insira o nome do usuário 11: Bento
Insira a nota de Bento (0 a 5): 3.9
Insira o nome do usuário 12: Alice Menezes
Insira a nota de Alice Menezes (0 a 5): 2.3
Insira o nome do usuário 13: Vitório
Insira a nota de Vitório (0 a 5): 1.9
Insira o nome do usuário 14: Alice Prado
Insira a nota de Alice Prado (0 a 5): 3.8
Insira o nome do usuário 15: Murilo
Insira a nota de Murilo (0 a 5): 3.2
Verificação feita. Todas as notas são válidas.
Caio: 0.0
Louise: 4.9
João: 3.2
Bárbara: 4.5
Ivan: 1.6
Rachel: 5.0
Pedro: 1.3
Carolina: 4.7
Hugo: 3.1
Virgínia: 2.2
Bento: 3.9
Alice Menezes: 2.3
Vitório: 1.9
Alice Prado: 3.8
Murilo: 3.2

Continua...

2 respostas

Continuação:

4. Desenvolva um programa que leia um conjunto indeterminado de temperaturas em Celsius e informe a média delas. A leitura deve ser encerrada ao ser enviado o valor -273°C.

# Início: contadora e soma:
contadora = 0
soma = 0

# Coleta da primeira temperatura:
temperatura = float(input('Insira a temperatura em Celsius: '))

# Repetição até encontrar -273:
while temperatura != -273:
    soma += temperatura
    contadora += 1
    temperatura = float(input('Insira a temperatura em Celsius: '))

# Cálculo da média com verificação:
if contadora > 0:
    media = soma / contadora
    print(f'A média das temperaturas é: {media:.2f} °C')
else:
    print(f'Nenhuma temperatura válida foi informada.')

Insira a temperatura em Celsius: 25
Insira a temperatura em Celsius: 48
Insira a temperatura em Celsius: -280
Insira a temperatura em Celsius: -250
Insira a temperatura em Celsius: -273
A média das temperaturas é: -114.25 °C

5. Escreva um programa que calcule o fatorial de um número inteiro fornecido pela pessoa usuária. Lembrando que o fatorial de um número inteiro é a multiplicação desse número por todos os seus antecessores até o número 1. Por exemplo, o fatorial de 5 é 5 x 4 x 3 x 2 x 1 = 120.

  while True:
    numero = int(input('Informe um número inteiro: '))

    if numero < 0:
        print("Não existe fatorial de número negativo. Coloque um número válido.")
    else:
        fatorial = 1
        for i in range(1, numero + 1):
            fatorial *= i
        print(f'Fatorial de {numero} é {fatorial}')
        break  # Encerra o loop quando o número é válido
        
        Informe um número inteiro: -15
Não existe fatorial de número negativo. Coloque um número válido.
Informe um número inteiro: 15
Fatorial de 15 é 1307674368000
        

Momento dos projetos:

6. 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 2, a tabuada deve ser mostrada no seguinte formato:

Tabuada do 2:
2 x 1 = 2
2 x 2 = 4
[...]
2 x 10 = 20
while True:
    numero = int(input('Informe um número inteiro de 1 a 10: '))
    if 1 <= numero <= 10:
        break
    print("Número inválido! Digite entre 1 e 10.")

print(f'Tabuada do {numero}:')
for i in range(1, 11):
    print(f'{numero} x {i} = {numero * i}')

Informe um número inteiro de 1 a 10: -6
Número inválido! Digite entre 1 e 10.
Informe um número inteiro de 1 a 10: 6
Tabuada do 6:
6 x 1 = 6
6 x 2 = 12
6 x 3 = 18
6 x 4 = 24
6 x 5 = 30
6 x 6 = 36
6 x 7 = 42
6 x 8 = 48
6 x 9 = 54
6 x 10 = 60

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

while True:
    numero = int(input("Digite um número inteiro: "))

    # Assume-se que o número é primo até que se prove o contrário:
    numero_primo = True

    # Números abaixo de 2 não são primos:
    if numero <= 1:
        numero_primo = False
    else:
        for i in range(2, int(numero**0.5) + 1):
            if numero % i == 0:
                numero_primo = False
                break

    # Verifica se é primo:
    if numero_primo:
        print(f'O número {numero} é primo. Programa finalizado!')
        break
    else:
        print(f'O número {numero} não é primo. Tente novamente...')

Digite um número inteiro: 1
O número 1 não é primo. Tente novamente...
Digite um número inteiro: 15
O número 15 não é primo. Tente novamente...
Digite um número inteiro: 27
O número 27 não é primo. Tente novamente...
Digite um número inteiro: 29
O número 29 é primo. Programa finalizado!

Continua...

Continuação:

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

faixas = {
    '0-25': 0,
    '26-50': 0,
    '51-75': 0,
    '76-100': 0
}

idade = int(input('Informe a idade (ou um número negativo para encerrar): '))

while idade >= 0:
    if 0 <= idade <= 25:
        faixas['0-25'] += 1
    elif 26 <= idade <= 50:
        faixas['26-50'] += 1
    elif 51 <= idade <= 75:
        faixas['51-75'] += 1
    elif 76 <= idade <= 100:
        faixas['76-100'] += 1
    else:
        print("Idade fora das faixas consideradas.")

    idade = int(input('Informe a idade (ou um número negativo para encerrar): '))

print('Distribuição de idades:')
for faixa, contador in faixas.items():
    print(f'Na faixa entre[{faixa}], há {contador} pensionistas.')

Informe a idade (ou um número negativo para encerrar): 14
Informe a idade (ou um número negativo para encerrar): 9
Informe a idade (ou um número negativo para encerrar): 19
Informe a idade (ou um número negativo para encerrar): 23
Informe a idade (ou um número negativo para encerrar): 29
Informe a idade (ou um número negativo para encerrar): 31
Informe a idade (ou um número negativo para encerrar): 35
Informe a idade (ou um número negativo para encerrar): 48 
Informe a idade (ou um número negativo para encerrar): 51
Informe a idade (ou um número negativo para encerrar): 69
Informe a idade (ou um número negativo para encerrar): 74
Informe a idade (ou um número negativo para encerrar): 82
Informe a idade (ou um número negativo para encerrar): 101
Idade fora das faixas consideradas.
Informe a idade (ou um número negativo para encerrar): 91
Informe a idade (ou um número negativo para encerrar): 99
Informe a idade (ou um número negativo para encerrar): -9
Distribuição de idades:
Na faixa entre[0-25], há 4 pensionistas.
Na faixa entre[26-50], há 4 pensionistas.
Na faixa entre[51-75], há 3 pensionistas.
Na faixa entre[76-100], há 3 pensionistas.