Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Sistema de Amortização Tabela Price


JPMADEIRA

Pergunta

olá, procurei aqui no fórum mas não encontrei, estou desenvolvendo um projeto para uma financeira, mas precisava fazer que ele amortizasse os valores tipo: vou financiar R$ 1.000,00 em 5 vezes com uma taxa de juro de 2% ao mês, e eu queria que ele amortizasse esses valores, possuo na minha tabela os seguintes campos:

valor amortizado:
juro amortizado:
valor da parcela:

mas queria que ele gravasse cada qual em seu campo, tipo:

1.000,00 + 20,00 - 212,16
  807,84 + 16,16 - 212,16
  611,84 + 12,24 - 212,16
  411,92 +  8,23 - 212,16
  207,99 +  4,15 - 212,16
 
0,00

fiz vários teste mas não consegui resolver, se alguém tiver alguma ideia para me ajudar será muito bem vindo.

obs: eu já possuo na tabela os campos para fazer os cálculos, se eu financiar R$ 1.000,00 em 5x com uma taxa de juro de 2% a.m ele já me dá o valor das prestações de R$ 212,16, mas preciso que ele amortiza esses valores..

...Obrigado

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

veja se é isso

Na prática, para fazer o cálculo do percentual de amortização basta dividir o valor
da dívida pelo número de meses acordado para realizar o pagamento.

Suponhamos que você tenha financiado a compra de um produto de R$ 1000,00 em 5 vezes com 1,5% de juros ao mês.

AMORTIZAÇÃO = 1000,00/5 = 200,00

1ª parcela = 200,00 + 1,5% * 1000,00 = 215,00

2ª parcela = 200,00 + 1,5% * ( 1000,00 - 1*200) = 212,00

3ª parcela = 200,00 + 1,5% * ( 1000,00 - 2*200) = 209,00

4ª parcela = 200,00 + 1,5% * ( 1000,00 - 3*200) = 206,00

5ª parcela = 200,00 + 1,5% * ( 1000,00 - 4*200) = 203,00

parcela = amortização + jurosSobreSaldoDevedor

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

olá, não é bem esse sistema que eu preciso esse sistema é para amortização SAC, e eu preciso da amortização PRICE, seria o seguinte:

Valordocapital + taxadejuro - parcela ( obs: a parcela já é calculado )

exemplo o calculo da parcela já vai direto para um edit

então:

edit1 = valor do capital
edit2 = taxa de juro
edit3 = parcela

com a amortização ele ficaria assim:

valordaprestaçao + taxadejuro - edit3

que então ficaria:

1000 + 2% - 212,16

daria

807,84 aqui ele esta amortizando o valor do capital, então ele ira aplicar o taxa de juro em cima desse capital de 807,84 assim subsequentemente até zerar

então o código para amortizar apenas o valor eu fiz assim:

DM_BANCO.ZQFINANCEIRA.FieldByName('ARMOTIZACAOCAPITAL').Value:= StrToFloat(edit1.text)+StrToFloat(edit1.text)*edit2-StrToFloat(edit3.Text)*i));

ele até calcula a primeira gera o 807,84 depois ele não consegue mais aplicar o juro em cima do 807,84

então eu queria que gravasse no dbgrid apenas o valor amortizado do valor do capital e depois gravasse apenas o valor do juro como citei no exemplo acima

achei esse exemplo na net mais não sei nem por onde começar não intendo nada de function, até intendo alguma coisa mas nem sei como modificar isso se também não sei se ele ira gravar como eu quero.

segue o exemplo:

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Está função irá calcular o valor da parcela fixa para uma amortização. Exemplo:

Você está finaciando um valor de 1.000,00 para pagar em 5 vezes com uma taxa de juros 2% ao mês.

o sistema irá calcular uma parcela fixa de forma que subtraindo-se mensalmente o valor desta parcela fixa e aplicando a taxa de juros mensalmente ao saldo devedor no final do período estipulado o saldo devedor será 0,00 (ou algo bem próximo disso podendo gerar erro de menos de 1 centavo de arredondamento).

Para o caso acima o valor da parcela fixa será: 212,16 - Veja abaixo:

1.000,00 + 20,00 - 212,16
  807,84 + 16,16 - 212,16
  611,84 + 12,24 - 212,16
  411,92 +  8,23 - 212,16
  207,99 +  4,15 - 212,16
  0,00

A primeira coluna é o saldo devedor, a segunda coluna é o valor dos juros sobre o saldo devedor e a última coluna é o valor da parcela paga.

No cálculo acima a taxa de juros foi aplicada antes do pagamento da parcela. Para descontar a parcela e aplicar a taxa de juros depois basta informar o parâmetro [CAPITALIZAR] como falso (Por padrão é verdadeiro).

Ah! Já ia me esquecendo, a fórmula está aí abaixo:

function AmortizaParcelaFixa(vlrPrincipal, txJuros : Double; NumParcelas : Integer; Capitalizar : boolean = true) : Double;
var dblJuros, dblPrincipal, dblParcela, dblSaldo, dblTemp : Double;
    intParcelas, i, j : Integer;
begin
  dblPrincipal  := vlrPrincipal;
  dblJuros      := txJuros;
  intParcelas   := NumParcelas;
  dblTemp := (dblPrincipal / intParcelas) * (1 + dblJuros);
  for i := trunc(dblTemp * 100) to trunc(dblPrincipal * 100) do
  begin
    dblSaldo := dblPrincipal;
    dblParcela := i / 100;
    for j := 1 to intParcelas do
      if Capitalizar then
        dblSaldo := dblSaldo + (dblSaldo * dblJuros) - dblParcela
      else
      begin
        dblSaldo := dblSaldo - dblParcela;
        dblSaldo := dblSaldo + (dblSaldo * dblJuros);
      end;
    if dblSaldo <= 0 then break;
  end;
  result := dblParcela;
end;
 
 
vlrPrincipal é o valor que irá ser amortizado;
txJuros é a taxa de juros mensal aplicada;
NumParcelas é o número de parcelas da amortização;
Capitalizar informa se os juros serão aplicados ao saldo devedor antes ou depois do pagamento da parcela.

Um Abraço...

 

Link para o comentário
Compartilhar em outros sites

  • 0

utilizando a sua function, ficaria assim: 

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Memo1: TMemo;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function AmortizaParcelaFixa(vlrPrincipal, txJuros : Double; NumParcelas : Integer; Capitalizar : boolean = true) : Double;
var dblJuros, dblPrincipal, dblParcela, dblSaldo, dblTemp : Double;
    intParcelas, i, j : Integer;
begin
  dblPrincipal  := vlrPrincipal;
  dblJuros      := txJuros;
  intParcelas   := NumParcelas;
  dblTemp := (dblPrincipal / intParcelas) * (1 + dblJuros);
  for i := trunc(dblTemp * 100) to trunc(dblPrincipal * 100) do
  begin
    dblSaldo := dblPrincipal;
    dblParcela := i / 100;
    for j := 1 to intParcelas do
      if Capitalizar then
        dblSaldo := dblSaldo + (dblSaldo * dblJuros) - dblParcela
      else
      begin
        dblSaldo := dblSaldo - dblParcela;
        dblSaldo := dblSaldo + (dblSaldo * dblJuros);
      end;
    //Form1.Memo1.lines.Append(floattostr(dblsaldo) + ' - ' + floattostr(dblparcela));
    if dblSaldo <= 0 then break;
  end;
  result := dblParcela;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i : integer; valor, valor_fixo : real; taxa, taxax : real; parcelas : integer;
begin
   // Edit1.Text = Valor Principal  1000
   // Edit2.Text = Taxa de juros   2
   // Edit3.Text = Nº de Parcelas  5
   // Edit4.Text = valor fixo da prestação , calculado pela function = 212,16

   valor := strtofloat(Edit1.Text);
   taxa :=  strtofloat(Edit2.Text) / 100;
   parcelas := strtoint(Edit3.Text);
   valor_fixo := 0;

   Edit4.Text := floattostr(AmortizaParcelaFixa(valor, taxa, parcelas ,true));
   valor_fixo := strtofloat(Edit4.Text);

   Memo1.Clear;
   memo1.Lines.Append(formatfloat('0.00',valor) + ' + ' + formatfloat('0.00',valor*taxa) + ' - ' + floattostr(valor_fixo));
   Memo1.Lines.Append('');

   for i := 1 to parcelas do
      begin
         taxax := valor * taxa;
         valor := (valor + taxax) - valor_fixo;

         memo1.Lines.Append(formatfloat('0.00',valor) + ' + ' + formatfloat('0.00',valor*taxa) + ' - ' + floattostr(valor_fixo));
         Memo1.Lines.Append('');
      end;

end;

end.
 

================================================================

Resultado no Memo

1000,00 + 20,00 - 212,16

807,84 + 16,16 - 212,16

611,84 + 12,24 - 212,16

411,91 + 8,24 - 212,16

207,99 + 4,16 - 212,16

-0,01 + 0,00 - 212,16

OBS: agora voce modifica para o seu uso

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...