Írjunk programot, amely a másodokú egyenlet együtthatói ismeretében meghatározza az egyenlet gyökeit.
A feladat megoldása:
private void Számol_Click(object sender, EventArgs e)
{
double a, b, c, d, gyök1, gyök2, xv, xk1, xk2;
int sign;
if (textBox1.Text != "" && textBox2.Text != "" &&
textBox3.Text != "")
{
a = Double.Parse(textBox1.Text);
b = Double.Parse(textBox2.Text);
c = Double.Parse(textBox3.Text);
if (a == 0)
{
if (b == 0)
{
if (c == 0)
{
textBox8.Text =
"Az egyenletnek bármelyik szám a megoldása!";
}
else
{
textBox8.Text =
"Ellentmondás, nincs megoldás!";
}
}
else
{
gyök1 = -c / b;
textBox8.Text = "Az egyenlet elsőfokú: " +
gyök1.ToString("#.####");
}
}
else
{
d = b * b - 4 * a * c;
if (d == 0) sign = 0;
else sign = (int)(d / Math.Abs(d));
switch (sign)
{
case -1:
xv = -b / (2.0 * a);
xk1 = Math.Sqrt(Math.Abs(d)) /( 2.0 * a);
xk2 = -xk1;
textBox8.Text =
"Az egyenletnek komplex megoldása van.";
textBox6.Text =
"" + xv + " +" + xk1.ToString("#.####");
textBox7.Text =
"" + xv + " -" + xk2.ToString("#.####");
break;
case 0:
gyök1 = -b / (2 * a);
textBox8.Text =
"Az egyenletnek egybeeső gyöke van: "
+ gyök1.ToString();
break;
case 1:
gyök1 = (-b + Math.Sqrt(d)) / (2 * a);
gyök2 = (-b - Math.Sqrt(d)) / (2 * a);
textBox4.Text = gyök1.ToString("#.####");
textBox5.Text = gyök2.ToString("#.####");
textBox8.Text =
"Az egyenletnek két valós gyöke van.";
break;
}
}
}
}
private void Kilépés_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
textBox4.Text = ""; textBox5.Text = "";
textBox6.Text = ""; textBox7.Text = "";
textBox8.Text = "";
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
textBox4.Text = ""; textBox5.Text = "";
textBox6.Text = ""; textBox7.Text = "";
textBox8.Text = "";
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
textBox4.Text = ""; textBox5.Text = "";
textBox6.Text = ""; textBox7.Text = "";
textBox8.Text = "";
}
A program futási eredményei: