Algoritomo Para Calcular Juros Composto
#1
Posted 29/06/2009, 13:33
o problema é que não consigo desenvolver um algoritmo para calcular juros compostos
o que sei que para calcular o mantante por exemplo seria a formula seguinte na matematica:
m = c*(1+t*n)
m = montante
c = capital
t = taxa
n = periodo de tempo
alguem poderia me ajudar a fazer esse algoritmo?
#2
Posted 01/07/2009, 23:32
c = Convert.ToDouble(textBox1.Text);
n = Convert.ToDouble(textBox4.Text);
t = Convert.ToDouble(textBox3.Text);
if (checkBox2.Checked == true) // se for juros simples.
{
m = c * (1 + t) * n;
textBox5.Text = Convert.ToString(m);
}
else // se for juros composto o else deve ser execultado.
{
t = t + 1;
a = t * t;
while (x < n)
{
a = a * t;
x = x + 1;
}
m = c * a;
textBox5.Text = Convert.ToString(m);
só que o resultado está dando errado será que algume pode me ajudar a resolver esse problema?
alguém pode me responder para quê que serve este forum se ninguem responde nada?
Edição feita por: Wanderley Patricio, 02/07/2009, 13:31.
#3
Posted 03/07/2009, 09:22
Poderia ser mais específico no seu problema?
Para montar um algoritmo basta conhecer a fórmula, e pelo que vi você conhece.
Faça no papel e depois transporte para o C#.
Aqui se ninguém responde, é porque não sabe.
O pessoal só posta algo aqui quando tem certeza, como pode comprovar em todos os tópicos gerados.
Vou pesquisar algo a respeito e se encontrar algo, replico.
Um abraço,
#4
Posted 04/07/2009, 08:55
estou tentando desenvolver um algoritmo para calcular o capital aplicado que gerou um determinado montante em um determinado periodo a uma determinada taxa. Esse calculo deve ser feito usando juros compostos, juros em cima de juros. o problema é que no algoritmo que montei a resposta está errada.
como ja falei na matemática é usanda a seguinte formula para calcular juros composto:
capital = montante/(1+taca)^periodo
o que estou tentando fazer é transcrever esta formula para o c#. Não conheço no c# uma forma de trabalhar com expoente, pois como podem perceber na formula (1+taxa) está elevado ao periodo e a única maneira de fazer isso é criando um looping.
como exemplo vamos seguir o seguinte exemplo:
foram declaradas as variaveis do tipo flutuante
double capital, taxa, montante, periodo, x, a;
dentro do metodo button foi digitado o seguinte código?
a = t + 1;
t = t + 1;
while(x<=periodo)
{
t = a * t;
x = x + 1;
}
capital = montante/taxa
no teste que fiz inseri a taxa como sendo 2% ou 0,02, o periodo como sendo 8 meses e o montante 2000 só que o resultado dá somente 1640 mais comparado com o resultado no excel o resultado é pra ser 1706 aproximadamente.
e gostaria que alguem me ajudasse a resolver esse problema.
#5
Posted 04/07/2009, 12:51
Já experimentou utilizar a função Math.Pow?
Adicione ao using e faça um teste, consegui utilizar expoente aqui.
Bom fim de semana
#6
Posted 08/07/2009, 10:20
estou tentando atribuir o valor vazio a uma variavel do tipo double, é que dá um erro dizendo que não é possivel atribuir uma string ao double, mais consigo fazer a conversão. Abaixo tenho o código.
m = Convert.ToDouble(textBox5.Text);
n = Convert.ToDouble(textBox4.Text);
t = Convert.ToDouble(textBox3.Text);
if (m = "")
{
MessageBox.Show("Insira o valor do montante");
}
else if (n = "")
{
MessageBox.Show("Insira o valor do Nper");
}
else if (t = "")
{
MessageBox.Show("Insira o valor da taxa");
}
alguem pode me explicar como fazer essa conversão?
#7
Posted 08/07/2009, 14:13
Se NÃO for, ao invés de convert, tenta um CAST.
#8
Posted 08/07/2009, 17:56
if(m = ""), else if(n = ""), else if(t = "") ele considera a aspa dupla("") como string e como a variavel que está recebendo é do tipo double dá erro. quando subistituo a aspa dupla por zero(0) ele funciona normal, no caso a mensagem é exibida corretamente.
e não sei como deve ser feite para que aceite o como sendo vazio.
#9
Posted 08/07/2009, 19:30
if (m == "")
Com dois iguais, é assim que vc compara valores..
Se não der, substitua "" por null.
Espero que tenha ajudado.
Abraços,
#10
Posted 08/07/2009, 23:17
o problema ainda persiste.
fiz como vc me pediu mudei "" para null, mais agora aparece este erro:
the result of the expression is always false since a value of type double is never equal to null of type double?
o codigo ficou assim:
public partial class Form1 : Form
{
double j, c, m, n, t;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
m = Convert.ToDouble(textBox5.Text);
n = Convert.ToDouble(textBox4.Text);
t = Convert.ToDouble(textBox3.Text);
if (m == null)
{
MessageBox.Show("Insira o valor do montante");
}
else if (n == null)
{
MessageBox.Show("Insira o valor do Nper");
}
else if (t == null)
{
MessageBox.Show("Insira o valor da taxa");
}
else if (checkBox1.Checked == true && checkBox2.Checked == true)
{
MessageBox.Show("Escolha apenas simples ou composto!");
}
else if (checkBox1.Checked==false && checkBox2.Checked==false)
{
MessageBox.Show("Defina se é juros simples ou composto!");
}
else if (checkBox2.Checked == true)
{
c = m / (1 + t * n);
textBox1.Text = Convert.ToString©;
}
else
{
c = m /Math.Pow(1 + t,n);
textBox1.Text = Convert.ToString©;
}
}
o que pode ser agora?
#11
Posted 09/07/2009, 09:28
public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { double j, c, m, n, t; m = Convert.ToDouble(textBox5.Text); n = Convert.ToDouble(textBox4.Text); t = Convert.ToDouble(textBox3.Text); if (textBox5.Text == "") { MessageBox.Show("Insira o valor do montante"); } else if (textBox4.Text == "") { MessageBox.Show("Insira o valor do Nper"); } else if (textBox3.Text == "") { MessageBox.Show("Insira o valor da taxa"); } else if (checkBox1.Checked == true && checkBox2.Checked == true) { MessageBox.Show("Escolha apenas simples ou composto!"); } else if (checkBox1.Checked==false && checkBox2.Checked==false) { MessageBox.Show("Defina se é juros simples ou composto!"); } else if (checkBox2.Checked == true) { c = m / (1 + t * n); textBox1.Text = Convert.ToString(c); } else { c = m /Math.Pow(1 + t,n); textBox1.Text = Convert.ToString(c); } }
A sua variável J não está sendo usada, verifique isso.
#12
Posted 30/07/2009, 11:03
esse código é para calcular capital e montante.
namespace calcular_juros
{
public partial class Form1 : Form
{
double juros, capital, montante, nperiodo, taxa;
public Form1()
{
InitializeComponent();
}
private void btnCapital_Click(object sender, EventArgs e)
{
if (textBox5.Text == "")
{
MessageBox.Show("Insira o valor do montante");
}
else if (textBox4.Text == "")
{
MessageBox.Show("Insira o valor do Nper");
}
else if (textBox3.Text == "")
{
MessageBox.Show("Insira o valor da taxa");
}
else if (checkBox1.Checked == true && checkBox2.Checked == true)
{
MessageBox.Show("Escolha apenas simples ou composto!");
}
else if (checkBox1.Checked==false && checkBox2.Checked==false)
{
MessageBox.Show("Defina se é juros simples ou composto!");
}
else if (checkBox2.Checked == true)
{
montante = Convert.ToDouble(textBox5.Text);
nperiodo = Convert.ToDouble(textBox4.Text);
taxa = Convert.ToDouble(textBox3.Text);
capital = montante / (1 + taxa * nperiodo);
textBox1.Text = Convert.ToString(capital);
}
else
{
capital = montante /Math.Pow(1 + taxa,nperiodo);
textBox1.Text = Convert.ToString(capital);
}
}
private void btnMontante_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("Insira o valor do capital");
}
else if (textBox4.Text == "")
{
MessageBox.Show("Insira o valor do Nper");
}
else if (textBox3.Text == "")
{
MessageBox.Show("Insira o valor da taxa");
}
else if (checkBox1.Checked == true && checkBox2.Checked == true)
{
MessageBox.Show("Escolha apenas simples ou composto!");
}
else if (checkBox1.Checked == false && checkBox2.Checked == false)
{
MessageBox.Show("Defina se é juros simples ou composto!");
}
else if (checkBox2.Checked == true)
{
capital = Convert.ToDouble(textBox1.Text);
nperiodo = Convert.ToDouble(textBox4.Text);
taxa = Convert.ToDouble(textBox3.Text);
montante = capital * (1 + taxa * nperiodo);
textBox5.Text = Convert.ToString(montante);
}
else
{
montante = capital * Math.Pow(1 + taxa, nperiodo);
textBox5.Text = Convert.ToString(montante);
}
}
private void btnFechar_Click(object sender, EventArgs e)
{
Close();
}
private void btnLimpar_Click(object sender, EventArgs e)
{
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox5.Text = "";
}
}
#13
Posted 07/08/2009, 16:30
{
float c, t, n;
double m;
try { c = float.Parse(TextBoxCapital.Text); }
catch (Exception ex) { MessageBox.Show("Por favor digite um capital válido!"); return; }
try { t = float.Parse(TextBoxTaxa.Text); }
catch (Exception ex) { MessageBox.Show("Por favor digite uma taxa válida!"); return; }
try { n = float.Parse(TextBoxPeriodo.Text); }
catch (Exception ex) { MessageBox.Show("Por favor digite um período válido!"); return; }
m = c * Math.Pow((1 + t), n);
// Verifique sua fórmula, parece estar errada
MessageBox.Show("Montante: " + m.ToString());
}
private void button2_Click(object sender, EventArgs e)
{
foreach (Control control in Controls)
if (control is TextBox)
((TextBox) control).Clear();
// Limpa todos os TextBox's do form de uma só vez
}
#14
Posted 06/06/2012, 07:37
Ex: Gostaria de saber o juros de um financiamento de um período de 36 meses, com o valor final que não tenho, mas com o valor inicial de R$ 33.990, qual seria a taxa de juros? Cobrada?
Agradeço será de grande ajuda se puder postar o codigo.
#15
Posted 28/09/2017, 08:39
Online.Vigara.No Sipreme Suppliers Mumbai India Cialis En La Actualidad cialis Viagra Brand Cialis Kamagra In Linea
Prix Levitra Pharmacie Belgique cheap cialis Buy Doxycycline In The Us Walgreens Propecia Online
Order Generic Tadalis Sx Soft Can I Use Old Amoxicillin Liquid Viagra Kaufen Netz viagra cialis Most Reliable Canadian Pharmacies Canada Pharmacy 24 H
Levitra 20 Mg Indicazioni online pharmacy Zithromax Medscape Zithromax Pills For Sale Effetto Viagra Donne
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)