Írjunk programot, amely beolvas 2 komplex számot és elvégzi a két komplex szám összeadását, kivonását, szorzását és osztását. Az adatokat olvassuk be és ellenőrizzük le, ha az adatok rendben vannak, kijelölhetjük a kívánt műveletet.
A feladat megoldása:
public struct Komplex
{
public double re;
public double im;
}
Komplex K1 = new Komplex();
Komplex K2 = new Komplex();
Komplex Ered = new Komplex();
int OK = 0;
public void Összead(Komplex k1, Komplex k2, out Komplex ered)
{
ered.re = k1.re + k2.re;
ered.im = k1.im + k2.im;
}
public void Kivonás(Komplex k1, Komplex k2, out Komplex ered)
{
ered.re = k1.re - k2.re;
ered.im = k1.im - k2.im;
}
public void Szorzás(Komplex k1, Komplex k2, out Komplex ered)
{
ered.re = k1.re * k2.re - k1.im * k2.im;
ered.im = k1.re * k2.im + k1.im * k2.re;
}
public void Osztás(Komplex k1, Komplex k2, out Komplex ered)
{
ered.re = (k1.re * k2.re + k1.im * k2.im) /
(k2.re * k2.re + k2.im * k2.im);
ered.im = (k1.im * k2.re - k1.re * k2.im) /
(k2.re * k2.re + k2.im * k2.im);
}
// összeadás
private void radioButton1_CheckedChanged(object sender,
EventArgs e)
{
if (OK == 1)
{
Összead(K1, K2, out Ered);
textBox5.Text = Ered.re.ToString();
textBox6.Text = Ered.im.ToString();
}
else
{
radioButton1.Checked = false;
textBox5.Text = "Adatok beolvasása!";
}
}
// kivonás
private void radioButton2_CheckedChanged(object sender,
EventArgs e)
{
if (OK == 1)
{
Kivonás(K1, K2, out Ered);
textBox5.Text = Ered.re.ToString();
textBox6.Text = Ered.im.ToString();
}
else
{
radioButton2.Checked = false;
textBox5.Text = "Adatok beolvasása!";
}
}
//szorzás
private void radioButton3_CheckedChanged(object sender,
EventArgs e)
{
if (OK == 1)
{
Szorzás(K1, K2, out Ered);
textBox5.Text = Ered.re.ToString();
textBox6.Text = Ered.im.ToString();
}
else
{
radioButton3.Checked = false;
textBox5.Text = "Adatok beolvasása!";
}
}
// osztás
private void radioButton4_CheckedChanged(object sender,
EventArgs e)
{
if (OK == 1)
{
Osztás(K1, K2, out Ered);
textBox5.Text = Ered.re.ToString();
textBox6.Text = Ered.im.ToString();
}
else
{
radioButton4.Checked = false;
textBox5.Text = "Adatok beolvasása!";
}
}
private void Ellenőrzés_Click(object sender, EventArgs e)
{
textBox5.Text = ""; textBox6.Text = "";
if(textBox1.Text != "" && textBox2.Text != "" &&
textBox3.Text != "" && textBox4.Text != "")
{
K1.re = Double.Parse(textBox1.Text);
K1.im = Double.Parse(textBox2.Text);
K2.re = Double.Parse(textBox3.Text);
K2.im = Double.Parse(textBox4.Text);
MessageBox.Show("OK, Műveletek végrehajthatók!");
OK = 1;
}
else
{
OK = 0;
MessageBox.Show("Hiányos adatmegadás!");
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
OK = 0; textBox5.Text = ""; textBox6.Text = "";
radioButton1.Checked = false;
radioButton2.Checked = false;
radioButton3.Checked = false;
radioButton4.Checked = false;
}
private void textBox2_TextChanged(object sender, EventArgs e )
{
OK = 0; textBox5.Text = ""; textBox6.Text = "";
radioButton1.Checked = false;
radioButton2.Checked = false;
radioButton3.Checked = false;
radioButton4.Checked = false;
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
OK = 0; textBox5.Text = ""; textBox6.Text = "";
radioButton1.Checked = false;
radioButton2.Checked = false;
radioButton3.Checked = false;
radioButton4.Checked = false;
}
private void textBox4_TextChanged(object sender, EventArgs e)
{
OK = 0; textBox5.Text = ""; textBox6.Text = "";
radioButton1.Checked = false;
radioButton2.Checked = false;
radioButton3.Checked = false;
radioButton4.Checked = false;
}
A program futási eredményei: