1
resposta

Resolução dos exercicios Python (Aula 4)

No exercicio 2:

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

Entendo que o porcentagem é aplicado dentro do próprio valor da colonia e para somar, ao valor cheio da colonia existente.

coloniaA=4
coloniaB=10
taxa1=0.03
taxa2=0.015
dias=0

for coloniaA in range (coloniaA,coloniaB):
coloniaA=coloniaA + (coloniaAtaxa1)
coloniaB=coloniaB + (coloniaB
taxa2)
dias+=1
print(f'Irá levar {dias} dias para a colônia A ultrapassar a colônia B.')

Dessa forma ele retorna que demorará 3 dias para a colonia A chegar na B.

Da forma que está na resolução está dando 63 dias por quê?

1 resposta

Olá, tudo bem? Vou tentar te ajudar.

Com o código que você mostrou, adicionei um print(f'{coloniaA:.2f} e {coloniaB:.2f}') no laço “for” e me resultou isto:

4.12 e 10.15
5.15 e 10.30
6.18 e 10.46
7.21 e 10.61
8.24 e 10.77
9.27 e 10.93

O que acontece é que no “for” informado (for coloniaA in range (coloniaA,coloniaB):), coloniaA inicia em 4, e coloniaB inicia em 10, logo ele vai iterar pelos numeros (4,5,6,7,8,9), passando apenas por 6 dias. Da para verificar o erro com a taxa de crescimento, em cada numero exibido, a parte inteira corresponde a iteração (4,5,6,7,8,9) e a parte “quebrada” são os 3% da taxa de crescimento.

Com o código corrigido ele deve aparecer assim:

4.12 e 10.15
4.24 e 10.30
4.37 e 10.46
4.50 e 10.61
4.64 e 10.77
4.78 e 10.93

Na resolução aparece 63, pois se você jogar na formula de resolução de juros compostos (parece até zueira mas não é), voce tem que:

coloniaA x (1 + taxa1) ^ 63 > coloniaB x (1 + taxa2) ^ 63

Já se elevar a 62 ou menos, a colonia B ainda é maior que a colonia A.

Espero que tenha ajudado, qualquer dúvida que ainda tiver deixa no post, que eu acompanho.