Juros Compostos no Lázarus

Olá pessoal!

Depois de algumas aula de matemática financeira, resolvi testar meus conhecimentos e fazer um programa pra cálculos de juros compostos. A idéia é que o usuário veja os campos com os dados necessários para o cálculo e deixe em branco aquele que ele deseja descobrir, por exemplo, pra calcular o montante, informa o capital inicial, taxa e tempo, clica em calcular, o programa verifica que foi deixado em branco o campo Montante e então calcula e exibe o resultado naquele campo.

Como tenho instalado no meu note Ubuntu 9.04 e Lázarus, resolvi fazer nele, já mostrei como instalar ele neste post.



Primeiramente, abra o Lázarus e crie um novo projeto (Aplication) e adicione 5 Labels, 5 Edits e 1 Button de forma que fique parecido com a imagem abaixo.





Altere a propriedade name dos Edits para EdtCapital, EdtTaxa, EdtTempo, EdtMontante e EdtJuros. O Button para btnCalcular e as labels tanto faz se renomear ou não.

Feito isso, de um duplo clique no botão BtnCalcular e adicione o seguinte código para fazer os cálculos de juros compostos, eles estão comentados e são auto explicativos.



procedure TfrmJurosComposto.CalcularClick(Sender: TObject);
var
// Declara variaveis
Taxa,Tempo,Capital,Montante:Double;
begin
// Inicia variaveis com valor 0
Taxa:=0;
Tempo:=0;
Capital:=0;
Montante:=0;
try
// Variaveis armazenam valores informados se foi informado algum valor
if (EdtTaxa.Text <> '') then
Taxa := StrToFloat(EdtTaxa.Text);
if (EdtTempo.Text <> '') then
Tempo := StrToFloat(EdtTempo.Text);
if (EdtCapital.Text <> '') then
Capital := StrToFloat(EdtCapital.Text);
if (EdtMontante.Text <> '') then
Montante := StrToFloat(EdtMontante.Text);
// Verifica se eh calculo do montante
if EdtMontante.Text = '' then
begin
// Calcula Montante
//---> exp(ln(x)*y) ==> x elevado a y
Montante:=Capital*(exp(ln((1+(Taxa/100)))*Tempo));
// Exibe Resultado
EdtMontante.Text := FloatToStr(Montante);
end;
// Verifica se eh calculo do capital
if EdtCapital.Text = '' then
begin
// Calcula Capital Inicial
Capital := Montante / (exp(ln((1+(Taxa/100)))*Tempo));
// Exibe Resultado
EdtCapital.Text := FloatToStr(Capital);
end;
// Verifica se eh calculo de tempo
if EdtTempo.Text = '' then
begin
// Calcula Tempo
Tempo := ((ln(Capital/Montante))/(ln((1+(Taxa/100)))))*-1;
// Exibe Resultado
EdtTempo.Text := FloatToStr(Tempo);
end;
// Verifica se eh calculo de taxa
if EdtTaxa.Text = '' then
begin
// Calcula Taxa
Taxa := 100*((exp(ln(Montante / Capital)*(1/Tempo)))-1);
// Exibe Resultado
EdtTaxa.Text := FloatToStr(Taxa);
end;
// Calcula Juros e Exibe na tela
EdtJuros.Text := FloatToStr(Montante-Capital);
// Se der algum erro exibe um alerta com a mensagem
except on e:exception do
ShowMessage(E.Message);
end;
end;


Salve o projeto e pressione F9 para compilar e executar.

De teste, segui os mesmos passos no Delphi e funcionou também, adicionei os campos com os mesmos nomes, CTRL+C CTRL+V no código, compilei e funcionou, então se você quiser fazer no Delphi sinta-se a vontade, a linguagem é a mesma e o Lázarus é muito semelhante ao Delphi 7, eu testei no 2007 que já muda um pouco a posição dos componentes.

Até.

Comentários

Postagens mais visitadas deste blog

Solução para problemas com impressora de cheque Bematech DP-20

Como bloquear Facebook Youtube no Mikrotik

SIOPE 2017 - Instalação e Restauração Cópia de Segurança