Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] Aula 4, questão 2

Olá pessoal

Sou extremamente novo na programação com python e estou aprendendo tudo do zero, já que minha formação vem da área do direito Vocês poderiam me ajudar nessa questão ? Tenho impressão que meu código não está me dando a resposta correta para o problema

Estruturei da seguinte forma

# colonia_A = 4
# colonia_B = 10
# dias = 1

# while colonia_A < colonia_B:
#  print(f'No dia {dias}, a COLONIA A está com {colonia_A:,.2f} e a COLONIA B está com {colonia_B:,.2f}')
#   dias += 1
#   colonia_A += 0.3
#   colonia_B += 0.015
# print (f'Demorou {dias} para a colonia A ultrapassar a colonia B')
3 respostas

Olá! Claro, ficarei feliz em ajudar você com o seu código em Python. Parece que você está tentando simular o crescimento de duas colônias, A e B, até que a colônia A ultrapasse a colônia B. Vamos analisar o código que você forneceu.

O código parece estar quase correto, mas há um pequeno problema na condição do loop while. Atualmente, o loop continuará enquanto colonia_A for menor que colonia_B, o que pode não funcionar conforme esperado se a diferença entre as colônias não for grande o suficiente para começar. Além disso, você pode melhorar a formatação do código para torná-lo mais legível.

Aqui está uma versão ajustada do seu código:

colonia_A = 4
colonia_B = 10
dias = 1

while colonia_A <= colonia_B:
    print(f'No dia {dias}, a COLONIA A está com {colonia_A:.2f} e a COLONIA B está com {colonia_B:.2f}')
    dias += 1
    colonia_A += 0.3
    colonia_B += 0.015

print(f'Demorou {dias} dias para a COLONIA A ultrapassar a COLONIA B.')

Mudei a condição do loop para colonia_A <= colonia_B para garantir que o loop continue até que a colônia A seja maior ou igual à colônia B. Além disso, ajustei a formatação do código para melhorar a legibilidade.

Agora, quando você executar este código, ele deve imprimir o crescimento das duas colônias até que a colônia A ultrapasse a colônia B, e então exibirá o número total de dias. Espero que isso ajude! Se você tiver mais dúvidas ou precisar de mais esclarecimentos, sinta-se à vontade para perguntar.

Carlos!! Muito obrigado pela ajuda !! Com certeza você já me ajudou ao reformatar a condição do while!!

Vou continuar a pergunta aqui pra saber se a minha ideia na formulação do código estava certa.

Você está certo, o enunciado pede para montar um código que calcula quantos dias uma colónia de bactérias demora pra superar outra. O enunciado é o seguinte:

"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 colônia B com 10 elementos."

A minha dúvida restante é se eu organizei o código para calcular o aumento percentual da população de forma correta considerando as taxas que a questão informou.

Fiquei na dúvida porque da população, segundo a saída do terminal, parece incorreto: é informado que no dia dois houve um crescimento de 4,3 e eu achava que seria, na verdade, 4,12.

Conseguiu me compreender ?

solução!

Boa tarde Iago Rodrigues de Souza,

Tudo bem ?

Espero poder lhe ajudar meu amigo !

Analisando o seu código, você está correto em sua dúvida, porém, há dois equívocos neles que impactam no valor de 4.3 (valor de saída) e não no valor de 4.12 (valor correto), conforme mencionado.

Não inserindo o operador (* =) na variável colonia_A, [colonia_A * = 1 + 0.03] você está deixando de atualizar o valor da "colonia_A = colonia_A" com o resultado proveniente do acréscimo, de acordo com a taxa de crescimento, por isso que seu código tem saída de 4.3 e não 4.12.

Além disso, o correto no enunciado é 0.03 e não 0.3 - (importante esse número !)

Além do mais, na contagem de dias no enunciado a saída deve ser igual a "0" e não igual a "1", o que nos faz ter o resultado de 63 dias para a colonia_A superar a colonia_B na taxa enunciada.

Veja abaixo código recortado:

while colonia_A <= colonia_B:

  print(f'No dia {dias}, a COLONIA A está com {colonia_A:,.2f} e a COLONIA B está com {colonia_B:,.2f}')

  #colonia_A += 0.3  - (seu código)
  #colonia_B += 0.015   - (seu código)

Segue correto do enunciado: 

  colonia_A *= 1 + 0.03
  colonia_B *= 1 + 0.015
  
  dias += 1

Espero ter ajudado Iago Rodrigues.

Um forte abraço