Jump to content
Sandson Costa

Como imprimir o saldo em ordem crescente e calcular juros

Recommended Posts

Pessoal eu tenho um trabalho na qual eu devo reproduzir a seguinte tabela: inserir a descrição da imagem aquiEu não tenho muito conhecimento em python e estou dando o meu melhor para tentar reproduzir ela. Mas estou conseguindo retornar somente desta maneira. inserir a descrição da imagem aquiMinhas dúvidas são as seguintes:

  1. O mês eu não sei como colocar na ordem crescente e nem retirar o 0 no final.
  2. Do saldo inicial ao saldo final eu consigo imprimir, o problema é que ele imprime até 0.
  3. Não sei a lógica da prestação.
  4. Não sei a lógica dos Juros (quadro verde).
  5. Não sei a lógica dos juros mensais (quadro vermelho).
  6. Não sei como imprimir o saldo final (que nesse caso é o inverso do saldo inicial).

Segue abaixo o meu código:

# enconding: utf-8
########################################
# VERSÃO UTILIZADA: Python 3.6.5       #
# DISCIPLINA: Introdução à Programação #
########################################

#########################################
# Informações de entrada dada pelo user #
#########################################

import os

valor_financiamento = float ( input ("1. Informe o valor a ser financiado: "))
os.system("cls")
prazo = int ( input ("2. Informe o prazo de quitação do financiamento (em meses): "))
os.system("cls")
taxa_juros_anual = float (input ("3. Informe a taxa de juros anual (em %): "))
os.system("cls")


# Início da programação e cálculo
# USO DO SISTEMA SAC       


# O cálculo da amortização é realizado pelo valor do financiamento divido pela quantidade de meses
amortizacao = valor_financiamento / prazo

saldo_devedor = valor_financiamento - amortizacao

taxa_mensal = taxa_juros_anual / prazo

juros_mes = (taxa_juros_anual - 1 + 1 ) * amortizacao * taxa_mensal

prestacao = amortizacao + juros_mes
#valor_financiamento = str (valor_financiamento).replace('.',',')


#print ("AMORTIZAÇÃO: R$ %.2f" % amortizacao)
#print ("VALOR DO FINANCIAMENTO: R$ %.2f\n\n" % valor_financiamento)
print ("\t FINANCIAMENTO = R$ %.2f \t MESES: %i meses \t TAXA: %i%% ano (%.f%)" % (valor_financiamento, prazo, taxa_juros_anual, juros_mes))
print ("\t","-"*80,"\n")
print ("\t MÊS\tSALDO INICIAL\tPRESTAÇÃO\tAMORTIZAÇÃO\tJUROS\tSALDO FINAL")
print ("\t ---\t-------------\t---------\t-----------\t-----\t-----------")

print ("\t%4.i \t %12.2f \t\t\t %10.2f" % (prazo, valor_financiamento, amortizacao))
for p in range(prazo):
    while (valor_financiamento > 1):
        valor_financiamento = valor_financiamento - amortizacao # Saldo devedor
        prazo = prazo - 1 # Referência do mês
        saldo_devedor = valor_financiamento - amortizacao
        saldo_final = saldo_devedor - amortizacao
        print ("\t%4.i \t %12.2f \t\t\t %10.2f" % (prazo, valor_financiamento, amortizacao)) #% valor_financiamento)
        #print (prazo)

Essa questão é uma questão de financiamento imobiliário segundo o sistema SAC:

Questão

Construa um programa que gere uma tabela com os valores das prestações mensais de um financiamento, discriminando os valores referentes à amortização e aos juros a serem pagos até a amortização total do financiamento. Este programa deve apresentar um menu de opções e pedir as seguintes informações ao usuário: Valor financiado, Prazo (em meses) para quitação do financiamento, Taxa de juros anual (em percentual) e o Sistemática de pagamento mensal das prestações (Sistema de Amortização Constante – SAC ou Sistema PRICE - ver nota explicativas em anexo). Funcionalidades adicionais serão bem vindas!

O valor de um financiamento deve ser restituído (amortizado) ao financiador em certo período de tempo, acrescido dos juros. Amortizar significa reduzir o valor da dívida, ou seja, pagar uma parte da dívida periodicamente para que ela reduza de tamanho até a sua eliminação. Como a dívida implica em cobrança de juros, para amortiza-la é necessário que a prestação seja maior que os juros cobrados em cada período, ou seja, AMORTIZAÇÃO = PAGAMENTO – JUROS (o valor amortizado é o que sobra depois de descontados os juros). Os juros só incidem sobre o saldo devedor, onde SALDO DEVEDOR = DÍVIDA INICIAL – VALOR AMORTIZADO. As formas de amortizar financiamentos são denominados de “Sistemas de Amortização”.

Sistema de Amortização Constante (SAC): Neste sistema, o saldo devedor é reembolsado periodicamente em valores de amortização iguais. Desta forma, o valor das prestações é decrescente, já que os juros diminuem a cada prestação. O valor da amortização é calculado dividindo-se o valor do principal (valor do financiamento) pelo número de períodos de pagamento, ou seja, de parcelas. Assim,

 Valor da amortização: AMORTIZAÇÃO = PRINCIPAL / N

 Valor dos juros no mês T: JUROST = (N - T + 1) * AMORTIZAÇÃO * TAXA

 Valor da parcela em T: PRESTAÇÃOT = AMORTIZAÇÃO + JUROST

onde: PRINCIPAL é o valor do financiamento, N é o número de meses do financiamento, T denota o mês em questão e TAXA é a taxa de juros mensal (que deve ser obtida a partir da taxa anual).

Se alguém puder me ajudar pelo menos com a lógica. Já é um grande começo.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Delcio Costa
      Olá!, sou novato no php e gostaria de entender como posso separar valores por data, preciso fazer um SELECT para poder realizar o calculo depois, mas para isso acredito que preciso separar os valores da seguinte forma:
      Separar o ultimo registro do VALOR no dia ATUAL  e diminuir do ultimo registro do VALOR no dia ANTERIOR
      Seria algo tipo isso:
      ultimo registro do dia anterior foi: VALOR = 40 , DATA 03-12-2019, HORA 19:30:00
      ultimo registro do dia atual foi    :  VALOR = 60 , DATA 04-12-2019, HORA 17:00:00  
      $ultimo_valor_dia_atual - $ultimo_valor_dia_anterior = valor_acumulado = 20
      Não faço a minima ideia de como fazer isso, já procurei por tudo e não consigo nem achar um exemplo próximo disso, sempre aparece somente como manipular data, mas preciso manipular o valor conforme a data.
      Alguém poderia me ajudar.
    • By Laysilva
      Gente , 
      maximo que recebe 2 números inteiros como parâmetro. 
       
      def sumDigit(num): sum = 0 while(num): sum += num % 10 num = int(num / 10) return sum   só que tá errado . Eu não sei como fazer .  Alguém me ajuda ?
    • By magrelarr
      Olá pessoal. Me chamo Lucas e tenho uma enorme vontade em aprender programação, na intenção de criar um jogo bem simples, mas com alguns detalhes. Minha ideia é um jogo sobre eleições politicas, numa terra ficticia que criei, e contaria com partidos disputando em sete regiões, números em graficos sobre os votos, eleitos e não eleitos, divisão dos poderes, formação de governo, etc. Algo programado dessa forma. Parece complexo mas seria algo básico.
      Então são duas perguntas:
      1° Por onde começar? Eu tenho muita vontade, mas conheço pouco da área. O primeiro passo que foi a história, os mapas, partidos e logos eu já criei, mas e depois?
      2° qual a melhor linguagem pra se aprender. Será um jogo de texto, sem personagens, apenas números e nomes, e realmente não faço ideia de que tipo de linguagem se usa pra jogos assim.

      Deixem dicas ou se caso se interessem pelo projeto, mantenho contato. Obrigado.
    • By Eikogloria
      Bom dia, precisava de uma pequena ajuda se possível.
      Necessito de implementar uma função "r" em Python.
      Função "r" tem 3 argumentos "d", "c1", "c2".
      O argumento "d" é uma lista de Números.
      Os argumentos c1 e c2 são números inteiros e indices de elementos da lista d.
      c1 < c2 < len(d)
      A função "r" retorna a soma dos elemento da lista "d" desde o indice c1 a c2 inclusive.


      De que modo devo criar esta função?
    • By atilla9913
      Eae glr, necessito de uma ajuda rápida, preciso da resolução de uma questão de programação estruturada de python usando função: Faça em Python usando vetor e função um programa que solicite a quantidade de alunos, peça o RE de cada aluno, peça 4 notas para cada aluno, calcule a média de cada aluno e mostre na tela as informações de RE: , as 4 notas, a média e a situação(aprovado acima de 7, reprovado abaixo de 7)?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.