Jump to content


Photo

Algoritomo Para Calcular Juros Composto


  • Faça o login para participar
26 replies to this topic

#1 Wanderley Patricio

Wanderley Patricio

    Turista

  • Usuários
  • 38 posts
  • Sexo:Não informado

Posted 29/06/2009, 13:33

Estou tentando desenvolver um sistema que calcule a taxa de juros, o capital, o montante, ou o periodo para poder obter na conta uma certa quantindade em dinheiro.
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 Wanderley Patricio

Wanderley Patricio

    Turista

  • Usuários
  • 38 posts
  • Sexo:Não informado

Posted 01/07/2009, 23:32

estudando um pouco mais encontrei esse resultado:

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 #KautZmanN#

#KautZmanN#

    Turista

  • Usuários
  • 44 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre/RS

Posted 03/07/2009, 09:22

Olá Wanderley,

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 Wanderley Patricio

Wanderley Patricio

    Turista

  • Usuários
  • 38 posts
  • Sexo:Não informado

Posted 04/07/2009, 08:55

Muito bem vamos lá!
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 #KautZmanN#

#KautZmanN#

    Turista

  • Usuários
  • 44 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre/RS

Posted 04/07/2009, 12:51

Wanderley,

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 Wanderley Patricio

Wanderley Patricio

    Turista

  • Usuários
  • 38 posts
  • Sexo:Não informado

Posted 08/07/2009, 10:20

Agora estou com outro problema!

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 #KautZmanN#

#KautZmanN#

    Turista

  • Usuários
  • 44 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre/RS

Posted 08/07/2009, 14:13

É no teu IF que ta dando erro?
Se NÃO for, ao invés de convert, tenta um CAST.

#8 Wanderley Patricio

Wanderley Patricio

    Turista

  • Usuários
  • 38 posts
  • Sexo:Não informado

Posted 08/07/2009, 17:56

é exatamente no if que ta dando o erro.

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 #KautZmanN#

#KautZmanN#

    Turista

  • Usuários
  • 44 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre/RS

Posted 08/07/2009, 19:30

Velho, tenta assim:
if (m == "")

Com dois iguais, é assim que vc compara valores..
Se não der, substitua "" por null.

Espero que tenha ajudado.
Abraços,

#10 Wanderley Patricio

Wanderley Patricio

    Turista

  • Usuários
  • 38 posts
  • Sexo:Não informado

Posted 08/07/2009, 23:17

Caro amigo #KautZmanN# você está sendo de grande ajuda e quero lhe dizer muito obrigado.

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 #KautZmanN#

#KautZmanN#

    Turista

  • Usuários
  • 44 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre/RS

Posted 09/07/2009, 09:28

Faça conforme abaixo:

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 Wanderley Patricio

Wanderley Patricio

    Turista

  • Usuários
  • 38 posts
  • Sexo:Não informado

Posted 30/07/2009, 11:03

Para agradecer a juda de vcs estou postando o código abaixo para quem quiser estudar e implementar alguma coisa

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 Luiz Fernando Noschang

Luiz Fernando Noschang

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 07/08/2009, 16:30

private void button1_Click(object sender, EventArgs e)
{
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 Marcos Vinicius Albuquerq

Marcos Vinicius Albuquerq

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 06/06/2012, 07:37

E como seria para achar o JUROS DE UM FINANCIAMENTO? obrigado.

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 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 13201 posts

Posted 28/09/2017, 08:39

Cialis Et Impuissance Get Tadalifil Levitra 40mg buy cialis Cipro And Amoxicillin In Lyme Disease Isotretinoin Skin Health Priligy Buy Online
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




3 user(s) are reading this topic

0 membro(s), 3 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq