In [ ]:
# -*- coding: utf-8 -*-
"""
Created on Wed Mar  3 13:36:38 2021

@author: Gustavo Eduardo Marcatti
"""

###------------------------------------------------------------------------###
# Loop while
###------------------------------------------------------------------------###
# Implementação
A = 8000
B = 17000
taxa_a = 4 / 100
taxa_b = 1.5 / 100
ano = 0
while A < B:
    A = int(A * (1 + taxa_a))
    B = int(B * (1 + taxa_b))
    ano += 1 # ano = ano + 1
    print("Ano:", ano, "População A:", A, "População B:", B)

print("Quantidade de tempo para A >= B:", ano, "anos")

# Criação da função
def calc_pop(a, b, t_a, t_b):
    ano = 0
    while a < b:
        a = int(a * (1 + t_a))
        b = int(b * (1 + t_b))
        ano += 1 # ano = ano + 1
        print("Ano:", ano, "População A:", a, "População B:", b)
    return(ano)

quant_anos = calc_pop(8000, 17000, 4/100, 1.5/100)
print("Quantidade de tempo para A >= B:", quant_anos, "anos")

###------------------------------------------------------------------------###
# Loop do while
###------------------------------------------------------------------------###
def calc_pop(a, b, t_a, t_b):
    ano = 0
    while True:
        a = int(a * (1 + t_a))
        b = int(b * (1 + t_b))
        ano += 1 # ano = ano + 1
        print("Ano:", ano, "População A:", a, "População B:", b)
        if a >= b: break
    return(ano)

quant_anos = calc_pop(8000, 17000, 4/100, 1.5/100)
print("Quantidade de tempo para A >= B:", quant_anos, "anos")

###------------------------------------------------------------------------###
# Loop for para simular do while - Cuidado!! Gambiarra
###------------------------------------------------------------------------###
def calc_pop(a, b, t_a, t_b):
    for ano in range(1, 10000000000000): # número grande
        a = int(a * (1 + t_a))
        b = int(b * (1 + t_b))
        print("Ano:", ano, "População A:", a, "População B:", b)
        if a >= b: break
    return(ano)

quant_anos = calc_pop(8000, 17000, 4/100, 1.5/100)
print("Quantidade de tempo para A >= B:", quant_anos, "anos")

###------------------------------------------------------------------------###
# Extra: plotar o aumento das populações em um gráfico
###------------------------------------------------------------------------###
import matplotlib.pyplot as plt
%matplotlib qt

A = 8000
B = 17000
taxa_a = 4 / 100
taxa_b = 1.5 / 100
ano = 0

lista_a = []
lista_b = []
lista_ano = []
while A < B:
    lista_a.append(A)
    lista_b.append(B)
    lista_ano.append(ano)
    A = int(A * (1 + taxa_a))
    B = int(B * (1 + taxa_b))
    ano += 1 # ano = ano + 1
    print("Ano:", ano, "População A:", A, "População B:", B)

lista_a.append(A)
lista_b.append(B)
lista_ano.append(ano)
print("Quantidade de tempo para A >= B:", ano, "anos")

plt.plot(lista_ano, lista_a, lista_ano, lista_b, marker='o')
plt.axvline(31, color = 'red', linestyle = 'dashed' )