using System;
class Triangle
{
public Triangle(double a, double b, double c)
{
this.a = a;
this.b = b;
this.c = c;
}
public void calculatePerimeter()
{
P = a + b + c;
Console.WriteLine("Perimeter: " + P);
}
public void calculateSquare()
{
double p = P / 2;
int S = Convert.ToInt32(Math.Sqrt(p * (p - a) * (p - b) * (p - c)));
Console.WriteLine("Square: " + S);
}
public void calculateAngles()
{
int angle1 = Convert.ToInt32((180 * Math.Acos((a * a + b * b - c * c) / (2 * a * b))) / Math.PI);
int angle2 = Convert.ToInt32((180 * Math.Acos((a * a + c * c - b * b) / (2 * a * c))) / Math.PI);
int angle3 = 180 - angle1 - angle2;
Console.WriteLine("Angles: " + angle1 + " " + angle2 + " " + angle3);
}
public void canExist()
{
if (a + b > c)
{
if (a + c > b)
{
if (b + c > a)
{
exist = true;
}
}
}
else
{
Console.WriteLine("\nTriangle can't exist!");
exist = false;
}
}
public void showInfo()
{
canExist();
if (exist)
{
Console.WriteLine("Sides: " + a + " , " + b + " , " + c);
calculatePerimeter();
calculateSquare();
calculateAngles();
}
else
{
Console.WriteLine("Sorry, try again!");
}
}
private double a, b, c, P;
private bool exist;
}
class MainClass {
static void Main() {
System.Console.WriteLine("Enter 1st side:");
double a = double.Parse(Console.ReadLine());
System.Console.WriteLine("Enter 2nd side:");
double b = double.Parse(Console.ReadLine());
System.Console.WriteLine("Enter 3rd side:");
double c = double.Parse(Console.ReadLine());
Triangle triangle = new Triangle(a, b, c);
triangle.showInfo();
Console.ReadKey();
}
}