C#
- Calculando as raizes de uma equação cúbica
![]() |
Hoje veremos um exemplo de como calcular as raizes de uma equação cúbica usando a linguagem C#. |
Na Matemática,
uma equação cúbica ou equação do terceiro grau é uma equação polinomial de grau
três. Qualquer equação de 3° grau pode ser escrita da seguinte forma:
A x^3 + B x^2 + C x + D = 0
Gerolamo Cardano
publicou um método para resolver uma equação cúbica em 1545 que você pode
conferir na
Wikipedia.
Vamos fazer uma implementação deste cálculo usando os recursos da linguagem C# em um projeto Windows Forms.
Criando o projeto Windows Forms
Vamos então criar um projeto do tipo Windows Forms App(.NET Framework) no VS 2019 Community no menu File -> New Project, com o nome EquacaoCubica;
No formulário Form1.cs inclua os seguintes controles:
4 Label
4 TextBox - coeficientes
3 Label
3 TextBox - raizes
1 Button : btnCalcular
Defina o leiaute do formulário conforme a imagem a seguir:
No formulário vamos criar um método CalculaRaizCubica() com o código abaixo:
private void CalculaRaizCubica() { try { //coeficientes double a = double.Parse(TxtCubA.Text); double b = double.Parse(TxtCubB.Text); double c = double.Parse(TxtCubC.Text); double d = double.Parse(TxtCubD.Text); //equação double f = (((3 * c) / a) - ((b * b) / (a * a))) / 3;
string f2 = f.ToString();
if (h <= 0)
if (h > 0)
double t8 = (u / 2) - (Math.Pow(h, 0.5));
}
double t = (u / 2) - (Math.Pow(h, 0.5)); |
Essa abordagem, embora esteja funcionando, não é uma boa prática. O correto seria criar uma classe e definir métodos para realizar as operações recebendo os parâmetros usados. Fica como um exercício.
No evento Click do botão de comando - Calcular raizes da equação - inclua o código para fazer o cálculo das raízes:
private void BtnCalcular_Click(object sender, EventArgs e)
{
CalculaRaizCubica();
}
|
No evento TextChanged dos TextBox das raizes inclua o código abaixo:
private void TxtCubx1_TextChanged(object sender, EventArgs e) { if (TxtCubx1.Text.Contains("i")) { TxtCubx1.ForeColor = Color.Red; } else { TxtCubx1.ForeColor = Color.Black; } } private void TxtCubx2_TextChanged(object sender, EventArgs e)
{
if (TxtCubx2.Text.Contains("i"))
{
TxtCubx2.ForeColor = Color.Red;
}
else
{
TxtCubx2.ForeColor = Color.Black;
}
}
private void TxtCubx3_TextChanged(object sender, EventArgs e)
{
if (TxtCubx3.Text.Contains("i"))
{
TxtCubx3.ForeColor = Color.Red;
}
else
{
TxtCubx3.ForeColor = Color.Black;
}
}
|
Este código vai verificar se o resultado da raiz contém 'i' de imáginário e vai alterar a cor para vermelho, caso contrário vai exibir na cor preta.
A nossa implementação com certeza não é a prova de balas e poderá ser melhorada em muitos aspectos mas funciona para as equações mais simples.
Executando o projeto e fazendo um teste para a equação : x^3 - 6x + 9 temos
Pegue o
projeto completo aqui :
EquacaoCubica.zip
"Vós me chamais
Mestre e Senhor, e dizeis bem, porque eu o sou.
Ora, se eu, Senhor e Mestre, vos lavei os pés, vós deveis também lavar os pés
uns aos outros.
Porque eu vos dei o exemplo, para que, como eu vos fiz, façais vós também."
João 13:13-15
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
ASP .NET Core 2 - MiniCurso Básico - Macoratti
ASP .NET Core - Macoratti
Conceitos - .NET Framework versus .NET Core - Macoratti
ASP .NET Core - Conceitos Básicos - Macoratti.net
ASP .NET Core MVC - CRUD básico com ADO .NET - Macoratti
ASP .NET Core - Implementando a segurança com ... - Macoratti.net
ASP .NET Core - Apresentando Razor Pages - Macoratti
C# - Resolvendo 10 problemas de matemática ... - Macoratti.net
C# - Calculando a n-ésima raiz de um número - Macoratti