1
resposta

[Projeto] Desafio: Resolvendo problema de lógica

Estou considerando fazer um investimento em renda fixa e gostaria de ter uma estimativa do valor resgatado no final do prazo do investimento.

Considere as informações da aplicação:

Valor investido: R$ 6.500,00
Juro simple : 1% ao mês
Prazo: 12 meses

Exemplo de tabela regressiva do imposto de renda para resgate por período

'''
Até 180 dias: 22,5%
De 181 a 360 dias: 20%
De 361 a 720 dias: 17,5%
Acima de 720 dias: 15%
""

Retorne da evolução do investimento mensalmente em forma de tabela, considerando o acrescimento obtido pelo juros do investimento e a alíquota de imposto de renda para resgate em cada periodo.

Exemplo de retorno:

'''
Mês = 0
Valor acumulado = _____
Rendimento mensal = _____
Valor de resgate com IR= ______

'''

Além disso, crie um fórmula que posso utilizar no phyton para simular a mesma aplicação anterior em outros prazos.
Retorne em código

Considerando:

  • Valor inicial: R$ 6.500,00

  • Juros simples: 1% ao mês

  • Prazo: 12 meses

  • IR regressivo sobre o rendimento:

    • Até 180 dias → 22,5%
    • 181 a 360 dias → 20%
    • 361 a 720 dias → 17,5%
    • Acima de 720 dias → 15%

A fórmula de juros simples é:

M = C(1 + i \c * t)

Onde:

  • (M) = montante acumulado
  • (C) = capital inicial
  • (i) = taxa de juros
  • (t) = tempo em meses

Evolução mensal do investimento

MêsValor AcumuladoRendimento MensalIR (%)Valor de Resgate com IR
0R$ 6.500,00R$ 0,0022,5%R$ 6.500,00
1R$ 6.565,00R$ 65,0022,5%R$ 6.550,38
2R$ 6.630,00R$ 65,0022,5%R$ 6.600,75
3R$ 6.695,00R$ 65,0022,5%R$ 6.651,12
4R$ 6.760,00R$ 65,0022,5%R$ 6.701,50
5R$ 6.825,00R$ 65,0022,5%R$ 6.751,88
6R$ 6.890,00R$ 65,0020%R$ 6.812,00
7R$ 6.955,00R$ 65,0020%R$ 6.864,00
8R$ 7.020,00R$ 65,0020%R$ 6.916,00
9R$ 7.085,00R$ 65,0020%R$ 6.968,00
10R$ 7.150,00R$ 65,0020%R$ 7.020,00
11R$ 7.215,00R$ 65,0020%R$ 7.072,00
12R$ 7.280,00R$ 65,0020%R$ 7.124,00

Resultado final após 12 meses

  • Valor bruto acumulado: R$ 7.280,00
  • Rendimento total: R$ 780,00
  • IR aplicado: 20% sobre o rendimento
  • Imposto pago: R$ 156,00
  • Valor líquido de resgate: R$ 7.124,00

Código Python para simular outros prazos

def aliquota_ir(dias):
    if dias <= 180:
        return 0.225
    elif dias <= 360:
        return 0.20
    elif dias <= 720:
        return 0.175
    else:
        return 0.15


def simular_investimento(valor_inicial, taxa_mensal, meses):
    print(f"{'Mês':<5} {'Acumulado':<15} {'Rendimento':<15} {'IR':<10} {'Resgate Líquido'}")

    for mes in range(meses + 1):

        # Juros simples
        rendimento_total = valor_inicial * taxa_mensal * mes
        valor_acumulado = valor_inicial + rendimento_total

        # Conversão aproximada de meses para dias
        dias = mes * 30

        # Alíquota de IR
        aliquota = aliquota_ir(dias)

        # IR apenas sobre rendimento
        imposto = rendimento_total * aliquota

        # Valor líquido
        valor_liquido = valor_acumulado - imposto

        print(
            f"{mes:<5} "
            f"R$ {valor_acumulado:,.2f}   "
            f"R$ {rendimento_total:,.2f}   "
            f"{aliquota*100:.1f}%     "
            f"R$ {valor_liquido:,.2f}"
        )


# Exemplo de uso
simular_investimento(
    valor_inicial=6500,
    taxa_mensal=0.01,  # 1% ao mês
    meses=12
)
1 resposta

Olá, Fernanda. Como vai?

Parabéns pela resolução do desafio! Você aplicou conceitos fundamentais de lógica e matemática financeira de forma muito organizada. É excelente ver como você estruturou a tabela mensal, respeitando a mudança da alíquota do Imposto de Renda no momento exato (a transição dos 180 para 181 dias, ou seja, do mês 6 em diante).

Gostaria de destacar alguns pontos técnicos importantes sobre o seu desenvolvimento e deixar uma sugestão para tornar seu código Python ainda mais preciso:

Lógica de Juros Simples vs. Compostos
Você aplicou corretamente a fórmula de Juros Simples conforme solicitado: $M = C(1 + i * t)$. No mercado financeiro real, a maioria dos investimentos de renda fixa (como CDBs) utiliza Juros Compostos. A diferença é que nos juros simples, o rendimento é sempre calculado sobre o valor inicial (os R$ 65,00 fixos que você obteve), enquanto nos compostos seria "juros sobre juros".

Refinamento no Código Python
Seu código está muito bem estruturado, especialmente a função aliquota_ir. Uma pequena melhoria para torná-lo mais robusto seria tratar a entrada da taxa de juros. Muitas vezes, o usuário pode digitar "1" em vez de "0.01". Você pode adicionar uma pequena validação:

def simular_investimento(valor_inicial, taxa_mensal, meses):
    # Garante que a taxa esteja em formato decimal
    if taxa_mensal > 1:
        taxa_mensal /= 100
    
    # ... restante do seu código

O detalhe do IR sobre o Rendimento
Sua lógica de subtrair o imposto apenas sobre o rendimento está impecável. É um erro comum calcular o IR sobre o valor total (capital + juros), o que estaria incorreto perante a legislação brasileira. Você demonstrou uma ótima compreensão de que o imposto incide apenas sobre o lucro da aplicação.

Como você é Gerente de Relacionamento, dominar essa automação via Python pode ser um diferencial enorme para gerar simulações rápidas e personalizadas para seus clientes!

Espero que possa ter lhe ajudado!