Calculadora Financeira

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
billy1943
Usuário Nível 4
Usuário Nível 4
Mensagens: 570
Registrado em: 12 Mai 2009 17:33
Localização: Bauru-SP

Calculadora Financeira

Mensagem por billy1943 »

A taxa interna de retorno que é tratada na HP12C eu tentei há tempos desenvolver, mas não dei continuidade;
Inclusive todo mundo ficou satisfeito com os cálculos envolvendo Tabela Price, para os contratos de longa duração, onde os
juros simples ficam muito a dever.
Mas vou pesquisar e ver se dá para implementar.
O bom do computador é que ele resolve os problemas, sem nunca levantar nenhum.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Calculadora Financeira

Mensagem por Eolo »

O cálculo da taxa interna está no meu segundo post do tópico...

Duas informações:

- taxa interna de retorno (IRR) é um papo extenso, dá pra calcular de "n" maneiras diferentes. Neste caso, de séries uniformes, o mais simples é o cálculo que postei. Em fluxos com várias séries e eventos (entradas e saídas) isolados no meio, o bicho pega, até se tiver que considerar custo de oportunidade etc. etc.

- Tabela Price é o sistema francês de amortização (prestações constantes, juros decrescentes e amortizações crescentes), o mesmo usado na HP12C e a base das fórmulas que coloquei neste tópico.

- existem muitos sistemas de amortização, cada país usa um treco diferente. Aqui mesmo no Brasil, é usado (ou ERA usado?) o Sistema de Amortização Constante, em financiamentos imobiliários, onde as amortizações são constantes, e os juros e as prestações são decrescentes.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Calculadora Financeira

Mensagem por Eolo »

Jairo, demorou mas achei a saída. Dei uma pesquisada no caso do cliente final querer pagar a prestação do mês junto com a última (ou qualquer outra à frente) e uma saída é fazer um “refinanciamento”.

O cliente tem o financiamento da figura 1 e, em JAN, quer pagar a parcela 1 de JAN e adiantar o pagamento da parcela 5 de MAI.

Primeiro, vc recebe a parcela 1, pelo valor original $230,97.

Segundo, acha o valor presente das prestações 2 a 5, que dá $819,03 (o saldo devedor sem juros). Divide esse valor por 4 (as 5 parcelas originais menos a número 1, que foi paga), que dá 204,75. Este é o “valor da parcela 5 sem os juros” que o cliente vai pagar.

Diminui esse valor dos $819,03, sobram $614,26 a pagar. Financia esses $614,26 agora em 3 parcelas (das 5 originais, foram quitadas a 1 e a 5), conforme a Figura 2.

Código: Selecionar todos

dez                       1.000,00
jan       50,00   230,97    819,03
fev       40,95   230,97    629,01
mar       31,45   230,97    429,49
abr       21,47   230,97    219,99
mai       11,00   230,97      0,00

Código: Selecionar todos

jan                         614,26
fev       30,71   225,56    419,41
mar       20,97   225,56    214,82
abr       10,74   225,56      0,00
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Calculadora Financeira

Mensagem por rochinha »

Amiguinhos,

Pensando no quão gostoso este tópico possa ser, algumas sugestões:

Ao amigo Eolo, peço que modifique o tópico para Calculadora Financeira - Calculo de Prestação, pois assim, outros tópicos vindouros de outros tipos de cálculos possam ser agregados em um conjunto. Senão o tópico pode acabar tratando de várias coisas e confundir.

Aos amigos, pensei no seguinte:

Criar uma interface que pode ser manipulada por todos e ir-se agregando as fórmulas e cálculos, vejam:

A interface contém um menu e este menu por sua vez aciona cada tipo de cálculo.
O menu estará dentro de uma tabela DBF que contém a hierarquia, nome da fórmula e codeblock com a fórmula.

A interface não sofreria modificações para cada cálculo, ela apenas acionaria o codeblock, passando os parametros e trazendo o resultado.

Para que possam entender como ela funcionaria, Baixem-na e analisem codigo e tabela.

O menu financeiro foi deixado para entender como funcionaria a montagem de uma hierarquia de menu.

Restará apenas o meio de pegar os parametros para cálculo e para isto pensei em usar VBScript, que pegaria eles, salvaria num .TXT e uma função puxaria estes valores e imputaria na fórmula.

Pensei em VBScript porque "toda" maquina possui ele ré-instalado e não seria necessária criação de formulários especificos e recompilação da interface.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Calculadora Financeira

Mensagem por Eolo »

Rochinha, nada contra mudar o nome, mas não é só um moderador que pode fazer isso?

Bem, criei esse tópico sem pensar em englobar tudo sobre matemática financeira, e também não me preocupei em apresentar funções prontas. Preferi apresentar principalmente os conceitos, pra fazer o leitor entender o que é a linha do tempo, juros compostos etc. A partir daí cada um montaria suas funções, de acordo com necessidades pontuais. Além disso, foquei somente no uso mais comum que se faz de uma HP12C.

Concordo que montar uma interface, com mais opções, pode vir a ajudar a turma. Só que quem for usar tem que entender bem os conceitos. Eu mesmo, no caso do Jairo (antecipação de pagamento), acabei me confundindo e falei besteira (corrigida depois).

Enfim, parabéns pela idéia. Eu apoio.

Quem sabe criar um tópico sobre a HP12C? Anexo um apanhado (bem básico) que fiz sobre o funcionamento dela.
Anexos
HP12C.doc
(36.5 KiB) Baixado 162 vezes
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Calculadora Financeira

Mensagem por Jairo Maia »

Caro Eolo,

Mestres não falam "besteira", apenas exercem o direito de "abusar da dialética".

Gostaria que soubesse que estou "lapidando" o sistema para colocá-lo em operação no cliente. Vi sua dica sobre como resolver o problema de antecipação.

Como estou usando o tempo que tenho para contemplar esta situação, assim que eu começar a implantá-la, e chegar a uma conclusão, posta aqui também.
Eolo escreveu:Tabela Price é o sistema francês de amortização (prestações constantes, juros decrescentes e amortizações crescentes)
Esta é a grande diferença em trabalhar com juros Simples ou Compostos. O valor de Amortização não anda paralelo ao Juros, assim, (pelo menos para mim por enquanto), fica difícil saber a divisa entre amortização e juro. Mas é muito breve que vou testar sua dica. Por enquanto, e de novo, muito obrigado.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Calculadora Financeira

Mensagem por Eolo »

Jairo, "mestre" fala besteira, sim. É errando que se aprende. Mas ok: não pisei no tomate, pisei na dialética. hehehe

Sobre a composição de cada parcela na tabela Price (juros decrescentes, amortização crescente e parcelas constantes), não sei o porquê da coisa. Mas me parece, por intuição, que foi pra manter as prestações constantes (mais vendável aos olhos do cliente final) e com juros maiores na frente (melhor pro vendedor). O resto foi o Mr. Price varando madrugadas na álgebra. A conferir.

Republicando a planilha de alguns posts atrás, agora com a coluna (1), pra melhor visualização da amortização. Se a prestação é constante e o juro é sobre o saldo devedor, a amortização é o que sobra. Tem fórmula pra mostrar a composição de cada parcela (juro e amortização), mas será que isso é importante? A não ser que o contador do seu cliente queira lançar juros e amortizações separadamente...

Código: Selecionar todos

           Juro   Prestação       (1)        Saldo
dez        0,00        0,00      0,00     1.000,00
jan       50,00      230,97    180,97       819,03
fev       40,95      230,97    190,02       629,01
mar       31,45      230,97    199,52       429,49
abr       21,47      230,97    209,50       219,99
mai       11,00      230,97    219,97         0,00

(1) Amortização = Prestação - Juro
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Calculadora Financeira

Mensagem por Eolo »

Jairo, me ocorreu uma coisa. No correção que postei antes (sobre o cliente pagar as parcelas 1 e 5 juntas), a nova parcela mensal ficou DIFERENTE em função do "refinanciamento", e isso pode talvez soar estranho ao cliente final. Então, vou complicar a sua vida agora, pra facilitar no futuro. Persiga a idéia, fácil de implementar.


O cliente tem o financiamento da figura 1 e, em JAN, quer pagar a parcela 1 de JAN e adiantar o pagamento da parcela 5 de MAI.

Primeiro, vc recebe a parcela 1, pelo valor original $230,97.

Segundo, acha o valor presente das prestações 2 a 5, que dá $819,03 (o saldo devedor sem juros).

Terceiro, calcula o valor presente de 3 prestações (que seriam a 2, 3 e 4) pelo mesmo valor de $230,97, com juro de 5%. O valor presente dessa série (sem juros) vai dar $628,99, de acordo com a fórmula. O valor da parcela 5, então, a ser paga antecipadamente pelo cliente, sem juros, é a diferença entre os dois valores presentes: $819,03-$628,99=$190,04.

Pra fechar: $628,99, em 3 parcelas, a 5% ao mês, vai dar uma prestação de $230,97, o mesmo valor anterior, não suscitando stress no cliente final. Além disso, o adiantamento da parcela 5, sem juros, é de $190,04, fácil pro cliente final assimilar.

Outra vantagem: vc não precisa reimprimir os boletos de cobrança, já que os valores e vencimentos permanecem. Basta quitar a parcela 5 e esperar pelo vencimento das parcelas 2, 3 e 4.

Acho esta solução mais ajeitada, embora a função FERREIOFERIADODOJAIRO() tenha passado a retornar .T. hehehe

Qualquer dúvida, buzina aqui. Vou estar estes dias todos (do feriadão) de plantão.

Código: Selecionar todos

dez                       1.000,00
jan       50,00   230,97    819,03
fev       40,95   230,97    629,01
mar       31,45   230,97    429,49
abr       21,47   230,97    219,99
mai       11,00   230,97      0,00

Código: Selecionar todos

jan                         628,99
fev       31,45   230,97    429,47
mar       21,47   230,97    219,97
abr       11,00   230,97      0,00
Avatar do usuário
billy1943
Usuário Nível 4
Usuário Nível 4
Mensagens: 570
Registrado em: 12 Mai 2009 17:33
Localização: Bauru-SP

Calculadora Financeira

Mensagem por billy1943 »

Primeiramente venho me desculpar por reativar um tópico não tão antigo assim, mas tão apaixonante como complicado, pois tem hora que a gente "funde" a cuca, e, por mais que recorramos à HP 12C, ficamos empacados.

Assim, pediria ao amigo EOLO ou outras feras que já mostraram serem do ramo, comparar em duas séries de pagamentos, visando obter o valor futuro, e qual a melhor solução para os seguintes exemplos:

1. João adquire um terreno em 20/02/15, no valor de R$ 40.000,00, em 20 parcelas de R$ 2.000,00, começando a pagá-las em 20/05/15 e indo até 20/12/16, a uma taxa mensal de 3% a.m.

2. José adquire um outro terreno em 20/02/15, também no valor de R$ 40.000,00, nas mesmas 20 parcelas de R$ 2.000,00, só que começando-as a pagar em 20/03/15 e indo até 20/10/16, à mesma taxa de 3% a.m.

A justificativa é de que João precisa parcelar a entrada nos próximos 3 meses e José dispõe do valor na data da compra.

Pelo ângulo da empresa vendedora, considerando o final do primeiro ano de vendas/financiamentos, qual o valor futuro no dia 28/02/16 para os dois financiamentos e qual a "receita real obtida", mesmo considerando que existe uma diferença de R$ 4.000,00 nas duas séries, que é o valor que José começa pagando "mais cedo" comparando-o ao João.

Como os financiamentos terminam em 20/12/16 e 20/10/16 respectivamente, como considerar o fluxo de caixa no aspecto de receita de uma ou de outra forma, e como contorná-la, se com um valor acrescido às parcelas do João,
ou um valor menor as do José para igualar os valores futuros e não dar favorecimento a ninguém.

Se puderem resolver, (o que sei que podem), fica desde já o meu agradecimento.
O bom do computador é que ele resolve os problemas, sem nunca levantar nenhum.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Calculadora Financeira

Mensagem por Eolo »

Billy,

Antes de entrar no mérito da sua pergunta ("receita real obtida" etc), uma coisa: não entendi os parâmetros que vc passou.

Você disse $40.000 financiados, juros de 3% am e 20 prestações de $2.000, só que, com essas condições, não dá pra amortizar o valor financiado.

Em cálculos do tipo, são quatro variáveis e, de três conhecidas, calcula-se a quarta:
- se for $40.000, 20 meses e 3%, a prestação vai a $4.018.
- se for 20 meses, $2.000 e 3%, o valor financiado seria $29.755 e não $40.000.
- se for $40.000, 20 meses e $2.000, a taxa de juros é Zero.
...

Dá uma clareada? Depois falamos do resto.

Abrsss



Em tempo: anexo uma planilha com as amortizações. É só um começo, ainda sem considerar as suas perguntas.
Anexos
Financiamento.zip
(10.97 KiB) Baixado 105 vezes
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Calculadora Financeira

Mensagem por Eolo »

visando obter o valor futuro
Você menciona o uso da HP12C, então acho que cabe um comentário: a tecla FV (Future Value) não é usada na amortização de financiamentos, que é o caso da imobiliária. Ele é usado em investimentos. Por exemplo, vc deposita $1.000 durante 12 meses no banco e, sabendo que o juro é de 2% ao mês, quer saber qual o montante acumulado (ou valor futuro) depois de feitos todos os depósitos. A FV calcula esse montante.
José começa a pagar em 20/03/15 e João só em 20/05/15
Como já citei acima, no tópico, sempre que um valor se movimenta na LINHA DO TEMPO ele deve ser corrigido. Então, considerando as duas vendas feitas em 20/02/15:

- no caso do José, é só calcular a prestação sobre o valor financiado, a primeira vencendo normalmente em 30 dias.

- no caso do João, como a primeira prestação vai vencer em 20/05/15 (90 dias), é preciso primeiro corrigir o valor financiado, de 20/02 a 20/04/15 (60 dias), e depois calcular as prestações sobre o valor financiado corrigido. As prestações do João, então, vão ser maiores do que as do José, sem favorecimentos...
receita real obtida
A planilha que anexei ao post anterior está digamos "incorreta", porque não considera os 60 dias a mais do João (já que não entendi direito os parâmetros que vc passou), mas a linha 16 - "Acumulado até aqui" mostra os totais de JURO (receita) e AMORTIZAÇÃO até 20/02/15.

O juro é calculado sobre o saldo devedor anterior e a amortização é a diferença entre a prestação e o juro.

Na HP12C, dá pra obter os valores de juros e amortização de cada parcela, mas nem lembro mais como faz. Vou tentar achar o manual e descobrir. É que sempre achei mais fácil calcular a prestação com a HP12C e depois montar uma planilha, como a que postei. Depois vou fuçar meus livros, ver se localizo as fórmulas para se obter esses valores.
Em anexo, a planilha com algumas alterações. Assumi o valor financiado de $40.000 e a correção do saldo do João.
Anexos
Financiamento 2.zip
(11.69 KiB) Baixado 86 vezes
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Calculadora Financeira

Mensagem por Eolo »

Billy,
Usando a HP 12C para conferir os dados do JOSÉ (planilha que publiquei no post anterior)


Limpa tudo
f CLX
Entra dados
40000 PV
20 n
3 i
CLX
PMT
PMT
? -2.688,63 - valor da prestação


Pra "debulhar" a prestação 1
1 f AMORT
? -1.200,00 - juros da prestação 1
x<>Y
? -1.488,63 - amortização da prestação 1
RCL PV
38.511,37 - saldo devedor após prestação 1

AQUI, O "PONTEIRO" FICA NA PRESTAÇÃO 1



Pra "debulhar" a prestação 2 e seguintes
1 f AMORT
AQUI É SEMPRE 1, PORQUE O PONTEIRO ESTÁ NA 1, ENTÃO VAI CALCULAR DA 1+1
? -1.155,34 - juros da prestação 2
x<>Y
? -1.533,29 - amortização da prestação 2
RCL PV
? 36.978,08 - saldo devedor após prestação 2

Etc. etc. para as demais prestações.


ATENÇÃO: como o PV e o N vão sendo alterados, é preciso digitar os dados novamente para voltar ao início:
f CLX
40000 PV
20 n
3 i
CLX
PMT
PMT
Avatar do usuário
billy1943
Usuário Nível 4
Usuário Nível 4
Mensagens: 570
Registrado em: 12 Mai 2009 17:33
Localização: Bauru-SP

Calculadora Financeira

Mensagem por billy1943 »

Olá amigo EOLO !

Pela planilha enviada e pelas instruções posteriores para uso na HP 12C, que agora temos inclusive em smartphone pela app Andro 12C Free, para Android, (quanto avanço, não é ?), posso terminar meus cálculos, e, peço desculpas talvez por não me expressar direito sobre o problema que foi apresentado, que na sua síntese é o seguinte:

- quem começa a pagar depois, está ou não levando vantagem sobre quem começa pagar antes ?
- se um lado está levando vantagem alguém tendo desvantagem, não é ?

A empresa que usa tal sistemática não é lá muito chegada a cálculos e se indicar o uso de uma HP 12C vou ficar falando sózinho...
Dou-me por satisfeito com os esclarecimentos prestados.

Abraços.
O bom do computador é que ele resolve os problemas, sem nunca levantar nenhum.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Calculadora Financeira

Mensagem por Eolo »

g BEGIN
g END
Esqueci de mencionar algo importante na HP12C. Os modos.

Ela tem 2 modos:
- END (no fim) - prestações postecipadas - é o default e não aparece nenhuma indicação no visor.
- BEGIN (no começo) - prestações antecipadas - aparece BEGIN no visor.

Se você usar os mesmos $40.000, 20 meses e 3%, o valor da prestação vai dar (obviamente) diferente em cada modo.
quem começa a pagar depois, está ou não levando vantagem sobre quem começa pagar antes ?
Na linha de tempo, se um evento muda de posição, o seu valor vai sempre mudar (pra mais ou pra menos), de acordo com a taxa de juros.

Se o José paga juros desde o começo e o João não, pode até ser aceitável, por alguma decisão comercial. Mas é melhor não deixar o José saber...
Avatar do usuário
billy1943
Usuário Nível 4
Usuário Nível 4
Mensagens: 570
Registrado em: 12 Mai 2009 17:33
Localização: Bauru-SP

Calculadora Financeira

Mensagem por billy1943 »

Olá EOLO !

Você sempre é meticuloso, e eu havia notado a questão das prestações antecipadas ou postecipadas, mas como não mexo muito na HP12C e menos ainda no Excel, fui dar tratos à bola, usando o nosso bom e velho Clipper.

Assim lembrei-me de quando fazia planilhas para FINAME, financiamento que admitia carências no pagamento de prestações e no qual contavam-se os juros, e depois transformava tudo para ORTN (alguém lembra disso ?!!).

Pois bem, fiz a rotina abaixo, que está funcionando bem e que serve para se obter o valor da prestação de uma venda, com entrada ou não, prestação antecipada ou postecipada, com carência ou não, taxa de juros, etc., inclusive
apresenta uma tabela demonstrativa dos valores de capital e juros.

As funções que utilizo são de fácil dedução e podem ser substituídas sem problema.

As questões que havia levantado foram respondidas pela introdução dos juros no período de carência, e que dá diferença grande no cálculo, pois o capital ainda está íntegro e qualquer taxa por menor que seja acaba repercutindo
no valor que vai sofrer amortização e juros compostos, sabe como que é, come mesmo o devedor.

Assim, espero retribuir a atenção que o EOLO e colegas clippeiros deram ao meu pedido, mas sabe como que é, de repente a gente precisa dar uma chacoalhada na cuca, acordar os neurônios que já estão um pouco cansados, até a ficha cair, que foi o que aconteceu comigo.

Código: Selecionar todos

PROCEDURE acha_prestacao
local telin := savescreen() 
set escape on
setcolor("w+/b")
boxopen(2,1,23,77,"B")
set color to r+/w
centr_tit(2,2,77,"[ CALCULOS FINANCEIROS - PRESTACAO  ]")
setcolor("w+/b,g+/n,,,bg+/b")
divida := prest := meses := taxa := total := carencia := entrada := 0
jrscar := "S"
ok := "S"
ap := "P"

do while .t.

  set decimals to 2
  @ 3,3 clear to 22,76
  @ 4, 4 say "Informar o valor da divida original.: "
  @ 5, 4 say "Informar a entrada .................: " 
  @ 6, 4 say "Prestacao (A)ntecipada (P)ostecipada: "
  @ 8, 4 say "Informar num. de meses de carencia .: "
  @ 8,50 say "Juros na carencia <SN> "
  @ 9, 4 say "Juros calculados no periodo carencia: "
  @10, 4 say "Divida com juros carencia embutidos.: "
  @11, 4 say "Numero de meses para amortizacao ...: "
  clear gets

  @ 4,46 get divida pict "@E ##,###,###.##"
  read

  @ 54,6 get entrada pict "@E ##,###,###.##"
  read
  xguarda := divida
  divida  -= entrada
  
  if (lastkey() == 27) .or. divida == 0
     restscreen(,,,,telin)
     return
  endif

  @ 6,46 get ap pict "@!K" valid ap $"AP"
  read

  msgm("A taxa oferecida ‚ pode ser mudada a vontade.")
  @ 7, 4 say "Informar a taxa de juros mensal (%).: "
  @ 7,52 get taxa pict "@E ##.####")
  read
  msgm("")

  if ap == "P"
     msgm("Durante a carencia nao havera  prestacoes a pagar.")
     @ 8,46 get  carencia pict "@E ##"
     read
     msgm("")
     if carencia <> 0
        msgm("Na carencia, os juros poderao ou nao ser agregados ao principal.")
        @ 8,74 get jrscar pict "@!" valid jrscar $ "SN"
        read
        msgm("")
     else
        jrscar := "N" 
     endif
  else
     carencia := 0
     jrscar   := "N"
  endif

  set decimals to 7
  taxa1 := (taxa/100)

  if jrscar == "S" 
     fatorcar := (1+taxa1)**carencia
  else
     fatorcar := 1
  endif

  jrs_agreg := divida * (fatorcar - 1)
  @ 9,46 get jrs_agreg pict "@E ##,###,###.##"
  read 
  divida += jrs_agreg
  @10,46 get divida pict "@E ##,###,###.##"
  clear gets

  @11,56 get meses pict "@E ###"
  read
  
  if (ap == "A")
     un := (1+taxa1)**(meses - 1)
  else
     un := (1+taxa1)**meses
  endif
  
  un1    := (1 + taxa1) ** meses
  coef   := (un * taxa1) / (un1 - 1)
  prest  := coef * divida

  set decimals to 2
  prest1 := str(prest,13,2)
  total  := val(prest1) * meses
  efetiv := (((1 + taxa1) ** 12) - 1) * 100
  @06,62 say "Efetiva anual" color "bg+/b"
  @07,65 say transform(efetiv,"@E ###.#####") + "%" color "gr+/b" 
  @13,4 say "O coeficiente da prestacao .......:         " + transform(coef,"@E #.#######")
  @15,4 say "O valor da prestacao e de ...... R$.:     " + transform(prest,"@E ##,###,###.##")
  @17,4 say "O total das prestacoes e de .....R$.:     " + transform(total,"@E ##,###,###.##")
  @19,4 say "Os juros correspondem a .........R$.:     " + transform(total-divida,"@E ##,###,###.##")
  resposta(22,24,"Quer Tabela de Amortizacao ? <SN>","SN")
  tx_efet := 0

  if f_resp == "S"
     tabel_17(meses,carencia)
     @ 18,63 say "Jrs Efetivos" color "bg+/b"
     @ 19,66 say tx_efet pict "@E ##,###.##" color "gr+/b"
  endif

  resposta(22,24,"Quer outro calculo ? <SN>","SN")

  if f_resp == "N"
     restscreen(,,,,telin)
     return
  endif

  divida := xguarda
  jrscar := "S"
  ap := "P"

enddo

PROCEDURE tabel_17(meses,care)
local telin := savescreen()
local periodo[meses+care]
local saldoef[meses+care]
local pgtopri[meses+care]
local jurospg[meses+care]
local nvsaldo[meses+care]
afill(periodo,0)
afill(saldoef,0)
afill(pgtopri,0)
afill(jurospg,0)
afill(nvsaldo,0)
@ 3,3 clear to 21,76
@ 3,3 to 21,76 double
sombra(3,3,21,76)
setcolor("w+/r")
centr_tit(3,2,76,"[ Tabela Price de Amortizacao ]")
setcolor(var_cor)
@ 4,4 say "  Periodo Saldo efetivo  Pagto principal  Juros pagos   Saldo final"
@ 5,4 to 5,75
@ 22,40 say "Juros efetivos: " color "gr+/n"
xlin := 6

for n := 1 to (meses+care) 

    if n <= care
       periodo[n] := n                   
       saldoef[n] := divida            
    else
       periodo[n] := n                   
       saldoef[n] := divida            
       jurospg[n] := divida * taxa1 
    endif

    if n > care
       pgtopri[n] := prest  - jurospg[n]  
       nvsaldo[n] := divida - pgtopri[n] 
       divida := nvsaldo[n]
    else
       pgtopri[n] := 0
       jurospg[n] := 0
       nvsaldo[n] := divida 
    endif
 
    if n < meses
       tx_efet += (jurospg[n] * (1 + taxa1) ** (meses - n)) 
    elseif n == meses
       tx_efet += jurospg[n]                 
    endif

    if n > care
       @ xlin,8 say transform(periodo[n],"@E ###") + "    " + ;
       transform(saldoef[n],"@E #,###,###.##") + "       " + ;
       transform(pgtopri[n],"@E ###,###.##") + "    " + ;
       transform(jurospg[n],"@E ##,###.##") + "  " + ;
       transform(nvsaldo[n],"@E #,###,###.##") 
    else
       @ xlin,8 say transform(periodo[n],"@E ###") + "    " + ;
       transform(saldoef[n],"@E #,###,###.##") + "       " + ;
       transform(pgtopri[n],"@E ###,###.##") + "    " + ;
       transform(jurospg[n],"@E ##,###.##") + "  " + ;
       transform(nvsaldo[n],"@E #,###,###.##") 
    endif

    xlin ++
    
    if xlin > 20
       xlin := 6
       msg_tecla("Pressione algo para continuar...") 
       scroll(6,8,20,75,0)
    endif

    @ 22,56 say transform(tx_efet,"@E ##,###.##") color "g+/n"
    inkey(1)

next

msg_tecla("Tecle algo para sair ...")
restscreen(,,,,telin)
O bom do computador é que ele resolve os problemas, sem nunca levantar nenhum.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.
Responder