Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

[Projeto] Desafio hora da prática - Questões 1 e 2 e dúvidas sobre a questão 2

Aquecendo na programação

  1. Escreva um programa que peça dois números inteiros e imprima todos os números inteiros entre eles.
inicio = int(input("Insira o primeiro número inteiro: "))
fim = int(input("Insira o segundo número inteiro: "))

if inicio < fim:
  for numero in range(inicio+1,fim):
    print(numero)
elif inicio > fim:
  for numero in range (fim+1, inicio):
    print(numero)
else:
      print("Números iguais")
  1. 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.

Segui as orientações do instrutor, mas fiquei na dúvida se era mesmo esse resultado com várias linhas que era esperado (ao final a resposta parou em 63 dias); Pode me esclarecer se fiz corretamente?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

bacterias_a = 4
bacterias_b = 10
taxa_cresc_a = 0.03
taxa_cresc_b = 0.015
dias_contador = 0

while bacterias_a <= bacterias_b:
   bacterias_a *= 1 + taxa_cresc_a
   bacterias_b *= 1 + taxa_cresc_b
   dias_contador += 1
   print(f'Irá levar {dias_contador} dias para a colônia A ultrapassar a colônia B.')
1 resposta
solução!

Olá, Estudante! Como vai?

Sua resolução da primeira questão ficou bem organizada, tratando os casos em que o primeiro número é menor, maior ou igual ao segundo. Na segunda questão, a lógica do while também está correta: a colônia A cresce até ultrapassar ou igualar a colônia B, e o contador registra a quantidade de dias.

A dúvida sobre as várias linhas acontece porque o print() está dentro do laço, então ele imprime uma mensagem a cada repetição. Se o resultado final foi 63 dias, está dentro do esperado para esses valores.

Dica: coloque o print() fora do while quando quiser mostrar apenas a resposta final:

bacterias_a = 4
bacterias_b = 10
taxa_cresc_a = 0.03
taxa_cresc_b = 0.015
dias_contador = 0

while bacterias_a <= bacterias_b:
    bacterias_a *= 1 + taxa_cresc_a
    bacterias_b *= 1 + taxa_cresc_b
    dias_contador += 1

print(f'Ira levar {dias_contador} dias para a colonia A ultrapassar ou igualar a colonia B.')

Assim, o laço faz todos os cálculos em silêncio e exibe somente o total de dias no final. Essa diferença entre imprimir dentro ou fora do laço ficou mais clara?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!