Írjunk programot, amely függvénnyel oldja meg a másodfokú egyenlet együtthatóinak ismeretében az egyenlet gyökeit.
A feladat megoldása:
double a, b, c;
static int adat = 0;
static void MásodFg(double a, double b, double c,
out string s,
out int kód,
out double x1,out double x2,
out double xk1,
out double xk2)
{
double d; x1 = 0; x2 = 0; xk1 = 0; xk2 = 0;
kód = 0; s = "";
if (adat == 1)
{
if (a == 0)
{
if (b == 0)
{
if (c == 0)
{
s =
"Az egyenletnek bármelyik szám a megoldása!";
}
else
{
s = "Ellentmondás, nincs megoldás!";
}
}
else
{
x1 = -c / b;
s = "Az egyenlet elsőfokú. ";
kód = 1;
}
}
else
{
d = b * b - 4 * a * c;
if (d == 0)
{
x1 = -b / (2 * a);
s = "Egybeeső gyök.";
kód = 2;
}
else if (d > 0)
{
x1 = (-b + Math.Sqrt(d)) / (2 * a);
x2 = (-b - Math.Sqrt(d)) / (2 * a);
s = "Valós gyökök.";
kód = 3;
}
else
{
x1 = -b / (2 * a);
xk1 = Math.Sqrt(Math.Abs(d)) / (2 * a);
xk2 = -xk1;
s = "Komplex gyökök.";
kód = 4;
}
}
}
else
MessageBox.Show("Nincs adat megadva!");
}
private void Olvasás_Click(object sender, EventArgs e)
{
adat=0;
if (textBox1.Text != "" && textBox2.Text != "" &&
textBox3.Text != "")
{
a = Double.Parse(textBox1.Text);
b = Double.Parse(textBox2.Text);
c = Double.Parse(textBox3.Text);
adat = 1;
}
}
private void Megoldás_Click(object sender, EventArgs e)
{
string s;
int kód;
double x1, x2, xk1, xk2;
MásodFg(a, b, c, out s, out kód, out x1,
out x2, out xk1, out xk2);
textBox8.Text = s;
switch (kód)
{
case 1: textBox4.Text = x1.ToString();
break;
case 2: textBox4.Text = x1.ToString();
break;
case 3: textBox4.Text = x1.ToString();
textBox5.Text = x2.ToString();
break;
case 4: textBox4.Text = x1.ToString();
textBox5.Text = x1.ToString();
textBox6.Text = xk1.ToString();
textBox7.Text = xk2.ToString();
break;
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
textBox4.Text = ""; textBox5.Text = "";
textBox6.Text = ""; textBox7.Text = "";
textBox8.Text = ""; adat = 0;
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
textBox4.Text = ""; textBox5.Text = "";
textBox6.Text = ""; textBox7.Text = "";
textBox8.Text = ""; adat = 0;
}
A program futási eredményei: