Írjunk programot, amely az általános háromszög két oldalából és a közbezárt szögből kiszámítja háromszög harmadik oldalát, területét és a kerületét, a megoldáshoz használjunk struktúrát. Az eredményeket 5 tizedesre kerekítve írjuk ki.
A feladat megoldása:
struct ÁltHáromszög
{
private double a_old, b_old, c_old, szög;
public ÁltHáromszög(double a, double b, double gamma)
{
a_old = a; b_old = b; szög = gamma; c_old = 0;
}
public double C_oldal()
{
c_old =Math.Sqrt(a_old * a_old + b_old * b_old -
2 * a_old * b_old *
Math.Cos(szög * Math.PI / 180));
return c_old;
}
public double Kerület()
{
return a_old + b_old + c_old;
}
public double Terület()
{
double s;
s = (a_old + b_old + c_old) / 2;
return Math.Sqrt(s * (s - a_old) * (s - b_old)
* (s - c_old));
}
}
private void Számol_Click(object sender, EventArgs e)
{
double a, b, gamma, c, terület, kerület;
if (textBox1.Text != "" && textBox2.Text != "" &&
textBox3.Text != "")
{
a = Double.Parse(textBox1.Text);
b = Double.Parse(textBox2.Text);
gamma = Double.Parse(textBox3.Text);
ÁltHáromszög h = new ÁltHáromszög(a, b, gamma);
c = h.C_oldal();
kerület = h.Kerület();
terület = h.Terület();
textBox4.Text = c.ToString("#.#####");
textBox5.Text = kerület.ToString("#.#####");
textBox6.Text = terület.ToString("#.#####");
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
textBox4.Text = ""; textBox5.Text = "";
textBox6.Text = "";
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
textBox4.Text = ""; textBox5.Text = "";
textBox6.Text = "";
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
textBox4.Text = ""; textBox5.Text = "";
textBox6.Text = "";
}
A program futási eredményei: