Ir para conteúdo
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por luisfeliperm2
      Vamos supor que eu tenha um servidor web e tenha 100 clientes acessando o site. Se eu der um netstat irei ver as conexões estabelecidas (ip dos visitantes). Nisso, eu desejo fechar uma conexão tcp de um ip especifico. Vi que no Linux é possivel realizar isso usando tcp kill.
      Observação: Não me recomendem usar um firewall, eu quero derrubar a conexão 1 vez e não pra sempre.
      Tem que ser por linha de comando pois deixarei no servidor rodando automaticamente.
      Quero algo semelhante a:
       
      C: > close.py 1.1.1.1 80 
    • Por gilbertosbs
      gente estou com problema neste codigo simples python 3.4.0 . um programa para fazer o calculo de baskara de uma sentença; alguém me ajude. está dando erro de sintaxe.   "Programa para formula de baskara" a=float(input("Digite o valor de A:")) b=float(input("Digite o valor de B:")) c=float(input("Digite o valor de C:")) if a==0 and b==0 and c==0 : print("Não é uma equação do segundo grau:") else: d=b**2-4*a*c return if d==0: d=b/2*a else: if d>0: x1=-b+d**(1/2)/2*a x2=-b+d**(1/2)/2*a print("O X1 VALE %5.2F"% x1) print("O X2 VALE %5.2F"% x2) else: print("Não existem raízes reais")  
    • Por thiagofdiniz
      Estou fazendo um curso técnico e estou com uma duvida sobre um exercício que me foi passado com a seguinte pergunta:
      Elabore um algoritmo que leia dois números, some cinco ao de menor valor, compare os dois valores e mostre o maior.
       
      Mas no meu código, ele está somando e mostrando o de menor valor, e não o de menor
      Será que alguém pode me ajudar não estou conseguindo enxergar o erro.. 
      x=int(input('Digite um número e aperte ENTER')) y=int(input('Digite um número e aperte ENTER')) if x>y: y=y+5 if x>y: print(x) else: print(y) else: x<y x=x+5 if x<y: print(y) else: print(x)  
    • Por FIM1999
      Preciso montar um sistema para geração automática de carteirinha para membros de um clube de benefícios. Alguém já tem alguma codificação pronta para isso?
      Ou então sabe como fazer?
    • Por anllj
      Alguém pode me ajudar? 
       
      Escrever um programa que permita ao usuário digitar o dia e mês de seu
      aniversário e a data de hoje (dia e mês); em seguida, o programa deve calcular
      quantos dias faltam entre a data de hoje e a data do próximo aniversário. Suponha
      todos os meses com 30 dias.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.