C# - Calculadora de Empréstimos - EMI (só para novatos)
Este artigo é voltado somente para novatos na linguagem C# e mostra como podemos criar uma aplicação C# para calcular valores de um parcelamento mensal equiparado ou EMI - Equated Monthly Installment - em inglês.
Teoria
Um parcelamento mensal equiparado - EMI - é o valor a ser pago a cada mês para o banco ou qualquer outra instituição financeira, até o montante do empréstimo estar totalmente pago. Trata-se dos juros sobre o empréstimo, bem como parte do valor do principal a ser reembolsado. A soma do valor principal e dos juros é dividido pelo prazo, ou seja, do número de meses em que o empréstimo tem de ser reembolsado. Este montante tem de ser reembolsado mensalmente.
O componente dos juros do EMI seria maior nos primeiros meses sendo reduzido gradualmente quando comparado com o valor do principal. A porcentagem exata alocada para o pagamento do principal depende da taxa de juros. Mesmo que o seu pagamento mensal não mudar, a proporção de capital e juros componentes vai mudar com o tempo. Com cada pagamento sucessivo, você vai pagar mais para o principal e menos em juros.
Resumindo:
"O EMI - é uma quantia fixa paga por um devedor a um credor em uma data específica a cada período. As parcelas mensais equacionadas são usadas para pagar tanto os juros como o principal , de modo que ao longo de um determinado número de tempo, o empréstimo é pago integralmente ".
A fórmula para calcular EMI é :
Onde :
Traduzindo essa fórmula para a linguagem C# e alterando a taxa de juros e período de mensal para anual teremos o seguinte resultado:
EMI = ((p*r/12) (1+r/12)^n) / ((1+r/12)^n - 1 )
Abaixo temos a expressão C# que representa a fórmula acima:
ValorEmprestimo * Math.Pow((taxaJuros/12)
+ 1, (PeriodoPagamento)) * taxaJuros / 12)
/ (Math.Pow(taxaJuros
/ 12 + 1, (PeriodoPagamento)) - 1);
Onde:
A montagem desta expressão que representa a fórmula para cálculo do empréstimo EMI usa o seguintes operadores e regra de precedência da linguagem C#:
Em uma expressão a precedência determina a ordem de execução dos operadores.
Cada operador tem uma precedência definida. Em uma expressão que contém vários operadores que têm níveis diferentes de precedência, a precedência dos operadores determina a ordem na qual os operadores são avaliados.
Na linguagem C# os operadores de multiplicação(*) e divisão(/) têm prioridades sobre os operadores de adição(+) e de subtração (-).
Quando dois ou mais operadores tiverem a mesma precedência estão presentes em uma expressão, eles são avaliados com base na associação. Operadores associativos à esquerda são avaliados na ordem da esquerda para a direita.
Por exemplo, x * y / z é avaliado como (x * y) / z. Operadores associativos à direita são avaliados na ordem da direita para esquerda. Por exemplo, o operador de atribuição é associativo à direita.
z = 78 * (96 - 3 + 45)
Na expressão acima temos 5 operadores : =, *, (), -, e +
De acordo com a regra de precedência eles serão avaliados na seguinte ordem: (), -, +, *, =.
Logo, para poder determinar a ordem na qual desejamos realizar uma operação, podemos usar o operador parênteses () e agrupar as operações.
Assim : 2 + 8 / 2 terá como resultado o valor 6 pois a operação de divisão de maior precedência;
(2 + 8) / 2 terá como resultado o valor 5 pois a operação que esta entre parênteses será executada primeiro;
( (2+8)*2 - 1) / ( 2*2) terá como resultado 4.0;
Criando o projeto
Agora vamos criar a aplicação C# usando o Visual Studio 2012 Express for desktop.
Abra o Visual Studio 2012 Express for desktop e clique em New Project selecionando o template Windows Forms Application:
Selecione a linguagem C# e Informe o nome CalculadaoraEMI;
A seguir vamos incluir a partir da ToolBox os seguintes controles no formulário form1.cs:
Disponha os controles conforme o leiaute da figura abaixo:
No evento Click do botão de comando Calcular inclua o código abaixo:
private void button1_Click(object sender, EventArgs e) { double ValorEmprestimo = 0; double Pagamento = 0; double taxaJuros = 0; double valorTotalPago =0; double valorJurosPago = 0; int PeriodoPagamento = 0; try { taxaJuros = Convert.ToDouble(nupTaxaJuros.Value); PeriodoPagamento = Convert.ToInt16(Convert.ToDouble(nupPrazo.Value) * 12); ValorEmprestimo = Convert.ToDouble(txtValorEmprestimo.Text); if (taxaJuros >= 1) { taxaJuros = taxaJuros / 100; } Pagamento = (ValorEmprestimo * Math.Pow((taxaJuros / 12) + 1,(PeriodoPagamento)) * taxaJuros / 12) / (Math.Pow(taxaJuros / 12 + 1, (PeriodoPagamento)) - 1); valorTotalPago = Pagamento * PeriodoPagamento; valorJurosPago = valorTotalPago - ValorEmprestimo; txtPagamentoMensal.Text = Pagamento.ToString("N2"); txtValorTotalPago.Text = valorTotalPago.ToString("N2"); txtValorJurosPagos.Text = valorJurosPago.ToString("N2"); } catch (Exception ex) { MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } |
Executando o projeto podemos ver o resultado na figura a seguir:
Pegue o projeto completo aqui: CalculadoraEMI.zip
Mat 6:19 Não ajunteis para vós tesouros na terra; onde a traça e a ferrugem os consomem, e onde os ladrões minam e roubam;
Mat 6:20 mas ajuntai para vós tesouros no céu, onde nem a traça nem a ferrugem os consumem, e onde os ladrões não minam nem roubam.
Mat 6:21 Porque onde estiver o teu tesouro, aí estará também o teu coração.
Veja os
Destaques e novidades do SUPER DVD Visual Basic 2013
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
C# - Sobrecarga de operadores (Operator Overloading) - Macoratti.net