Í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 osztályt. Az eredményeket 5 tizedesre kerekítve írjuk ki.
A feladat megoldása:
class ÁltHáromszög
{
private double a_old, b_old, c_old, szög, ker, ter;
public ÁltHáromszög(double a, double b, double gamma;
{
a_old = a; b_old = b; szög = gamma; c_old = 0;
ter = 0; ker = 0;
}
public void 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));
}
public void Kerület()
{
ker = a_old + b_old + c_old;
}
public void Terület()
{
double s;
s = (a_old + b_old + c_old) / 2;
ter = Math.Sqrt(s * (s - a_old) * (s - b_old)
* (s - c_old));
}
public double C_old
{
get { return c_old; }
}
public double Ter
{
get { return ter; }
}
public double Ker
{
get { return ker; }
}
}
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);
h.C_oldal();
h.Kerület();
h.Terület();
c = h.C_old;
kerület = h.Ker;
terület = h.Ter;
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: