Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Dúvida Exercício Phyton Iniciante

Olá estou realizando alguns exercício práticos para estruturas de repetição e fiquei com dúvida na resolução do exercício.

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

Resolução Instrutor:

número inicial de bactérias -------- (entendi)

colonia_a = 4 colonia_b = 10

taxas de crescimento das colônias-------(entendi)

taxa_a = 0.03 taxa_b = 0.015

contador de dias ------( Pq preciso colocar o contador 0 aqui nessa etapa?)

dias = 0

A condição que finaliza o laço é o caso em que

a colônia A ultrapasse a colônia B

while colonia_a <= colonia_b:

usamos um operador de atribuição com multiplicação

colonia_a *= 1 + taxa_a colonia_b *= 1 + taxa_b

contamos o dia para cada iteração

dias += 1

No laço while fiquei com dúvidas do comando dado para entender que o laço iria se finalizar quando A ultrapassase B. Foi utilizando menor igual e depis multiplicado por 01 com as taxas. Poderiam me explicar melhor a lógica por favor?

resultado final

print(f'Irá levar {dias} dias para a colônia A ultrapassar a colônia B.')

1 resposta
solução!

Opa Ticiane,

Vou tentar te auxiliar nessa sua dúvida.

Nessa etapa, estamos inicializando a variável do lado de fora do while, para que a gente consiga usar mais pra frente, então colocamos o valor 0 para que "Não tenha nenhum valor". As variáveis criadas dentro de laços de repetição só poderão ser utilizadas lá dentro! Criando ela do lado de fora, e chamando a variável dentro do loop, estamos permitindo que ela seja usada em qualquer parte do nosso código

Pode ser usada em qualquer lugar

dias = 0

while dias <= 10: dias = dias + 1

print(dias)

Agora sobre o cálculo vou tentar reformular para ficar mais fácil

O trecho anterior do código, trata-se de uma abreviação do código: colonia_a *= 1 + taxa_a

Vamos deixar ele de forma mais clara, nesse caso, o valor vai receber ele mesmo multiplicado por (1 + taxa_a) que significa ( 1 + 0.03 == 1.03 ): colonia_a = colonia_a * (1 + taxa_a)

que pode ser simplesmente: colonia_a = colonia_a * 1.03 colonia_b = colonia_b * 1.015

1.03 = é a soma do valor 1 + taxa_a 1.015 = é a soma do valor 1 + taxa_b

Código simplificado

dias = 0

while colonia_a <= colonia_b: colonia_a = colonia_a * 1.03 colonia_b = colonia_b * 1.015 dias += 1

1.03 = é a soma do valor 1 + taxa_a

Espero ter conseguido ajudar, caso tenha dúvida, posso tentar auxiliar