2
respostas

[Projeto] Resolução dos problemas

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

primeiro_numero = int(input('Digite um número: '))
segundo_numero = int(input('Digite um número: '))

if primeiro_numero >= segundo_numero:
  for i in range(segundo_numero, primeiro_numero, 1):
    print(i)
else:
  for i in range(primeiro_numero, segundo_numero, 1):
    print(i)

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.

colonia_a = 4
colonia_b = 10
dias = 0

print('================================================')

while colonia_a <= colonia_b:
    colonia_a = colonia_a * 1.03
    colonia_b = colonia_b * 1.015
    dias += 1
    print(f'Dia: {dias} Colônia A: {colonia_a:.2f} | Colônia B: {colonia_b:.2f}')

print('================================================')

print(f'Quantidade de dias para a colônia A passar a B foram {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.

lista_notas = []
contador = 0

while contador < 15:
  nota = int(input('Digite uma nota: '))

  if nota >= 0 and nota <= 5:
    contador+=1
    lista_notas.append(nota)
  else:
    print('nota inválida. \nPor favor digite notas entre 0 e 5')
    continue

print(lista_notas)

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.

lista_temperaturas = []
temperatura = 0

while temperatura != -273:
  temperatura = float(input('Digite uma temperatura.\nCaso queira sair, digite -273: '))
  lista_temperaturas.append(temperatura)
  soma = sum(lista_temperaturas)
  quantidade = len(lista_temperaturas)
  media_temperatura = soma / quantidade

  print(f'{quantidade}ª temperatura = {temperatura}')

print(f'média  das temperaturas = {media_temperatura}')

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.

numero = int(input('Digite um número inteiro: '))
# Inicializa o total_fatorial com 1, pois a multiplicação por 1 não altera o resultado.
total_fatorial = 1

# Se o número for 0, o fatorial é 1 por definição.
if numero == 0:
    total_fatorial = 1
# Se o número for positivo, calcula o fatorial
elif numero > 0:
    # Itera do número até 1, multiplicando o total_fatorial por cada número
    while numero >= 1:
        total_fatorial *= numero
        numero -= 1
# Se o número for negativo, o fatorial não é definido para inteiros negativos.
else:
    print("O fatorial não é definido para números inteiros negativos.")
    total_fatorial = None # Define como None para indicar que não foi possível calcular

# Imprime o resultado apenas se o fatorial foi calculado (não é None)
if total_fatorial is not None:
    print(f'O fatorial do número é: {total_fatorial}')
2 respostas

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:

numero = int(input('Digite um número que irá gerar a tabuada: '))
contador = 10
indice = 1

while contador > 0:
  print(f'{numero} x {indice} = {numero * indice}')
  indice += 1
  contador -= 1

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.

numero_verificar = int(input('Digite um número para verificar se é primo ou não: '))

if numero_verificar <= 1:
  print(f'O número {numero_verificar} não é primo.')
elif numero_verificar == 2:
  print(f'O número {numero_verificar} é primo.')
else:
  e_primo = True
  for i in range(2, numero_verificar):
    if numero_verificar % i == 0:
      e_primo = False
      break
  if e_primo:
    print(f'O número {numero_verificar} é primo.')
  else:
    print(f'O número {numero_verificar} não é primo.')

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.

lista_idade = []

def sairPrograma():
  opcao = input('Deseja digitar uma idade ou sair?: d-Digitar Número; s-Sair: ')
  if opcao.lower() == 's':
    return True
  else:
    digiteIdade()

def digiteIdade():
  idade = int(input('Digite uma idade:'))

  lista_idade.append(idade)
  sairPrograma()

def grupoIdades():
  faixa_0_25 = []
  faixa_26_50 = []
  faixa_51_75 = []
  faixa_76_100 = []

  for idade in lista_idade:
    if idade >= 0 and idade <= 25:
      faixa_0_25.append(idade)
    elif idade >= 26 and idade <= 50:
      faixa_26_50.append(idade)
    elif idade >= 51 and idade <= 75:
      faixa_51_75.append(idade)
    else:
      faixa_76_100.append(idade)

  if len(faixa_0_25) > 0:
    print('Grupos de 0 a 25: ',faixa_0_25)
  if len(faixa_26_50) > 0:
    print('Grupos de 26 a 50: ',faixa_26_50)
  if len(faixa_51_75) > 0:
    print('Grupos de 51 a 75: ',faixa_51_75)
  if len(faixa_76_100) > 0:
    print('Grupos de 76 a 100: ',faixa_76_100)

sairPrograma()
grupoIdades()

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

import random
# criar os 4 candidatos
candidato1 = 0
candidato2 = 0
candidato3 = 0
candidato4 = 0

# criar as variáveis para receber votos brancos e nulos
votos_brancos = 0
votos_nulos = 0

def geraVotos():
  # Declarar as variáveis como globais para que a função possa modificá-las
  global candidato1, candidato2, candidato3, candidato4, votos_brancos, votos_nulos
  qtd_votos = 0

  while qtd_votos < 20:
    # gerar 20 notas aleatórias de 1 a 6
    voto = random.randint(1,6) # Gerar o voto uma única vez por iteração
    if voto == 1:
      candidato1 += 1
    elif voto == 2:
      candidato2 += 1
    elif voto == 3:
      candidato3 += 1
    elif voto == 4:
      candidato4 += 1
    elif voto == 5:
      votos_nulos += 1
    else:
      votos_brancos += 1
    qtd_votos += 1 # Contabiliza todos os tipos de voto para o total de 20
  geraPercentuais()

  print(f'Candidato 1 = {candidato1} votos - {per_cand1} % dos votos')
  print(f'Candidato 2 = {candidato2} votos - {per_cand2} % dos votos')
  print(f'Candidato 3 = {candidato3} votos - {per_cand3} % dos votos')
  print(f'Candidato 4 = {candidato4} votos - {per_cand4} % dos votos')
  print('---------------------------------------------------------------------')
  
  return votos_brancos, votos_nulos

def geraPercentuais():
  global per_cand1, per_cand2, per_cand3, per_cand4
  total_votos = candidato1 + candidato2 + candidato3 + candidato4 + votos_brancos + votos_nulos
  print('=====================================================================')
  print(f'Total de votos = {total_votos}')
  print('=====================================================================')

  # Calcular porcentagens
  if total_votos > 0:
    percentual_nulos = (votos_nulos / total_votos) * 100
    percentual_brancos = (votos_brancos / total_votos) * 100
    per_cand1 = candidato1 / total_votos * 100
    per_cand2 = candidato2 / total_votos * 100
    per_cand3 = candidato3 / total_votos * 100
    per_cand4 = candidato4 / total_votos * 100
    print(f'Votos nulos = {votos_nulos} votos')
    print(f'Porcentagem de votos nulos: {percentual_nulos:.2f} %')
    print(f'\nVotos em Branco = {votos_brancos} votos')
    print(f'Porcentagem de votos em branco: {percentual_brancos:.2f} %')
    print('---------------------------------------------------------------------')

  return percentual_nulos, percentual_brancos, per_cand1

def determinaVencedor():
  # Determinar o vencedor
  votos_candidatos = {'Candidato 1': candidato1, 'Candidato 2': candidato2, 'Candidato 3': candidato3, 'Candidato 4': candidato4}
  # Encontra o candidato com o maior número de votos
  vencedor = max(votos_candidatos, key=votos_candidatos.get)
  print(f'O vencedor da eleição é: {vencedor} com {votos_candidatos[vencedor]} votos.')

geraVotos()
determinaVencedor()