Другие языки программирования и технологии

Срочно нужна помощь, С# накрылся ноутбук, нужно написать простенький код, помогите пожалуйста!

Создать класс треугольник, члены класса – длины 3-х сторон. Предусмотреть в классе методы
проверки существования треугольника, вычисления и вывода сведений о фигуре – длины сторон, углы,
периметр, площадь. Создать производный класс – прямоугольный треугольник, 30предусмотреть в
классе проверку, является ли треугольник прямоугольным. Написать программу, демонстрирующую
работу с классом: дано M треугольников и N прямоугольных треугольников, найти среднюю площадь М
треугольников и прямоугольный треугольник с наибольшей гипотенузой.
class BaseTriangle
{
protected double a;
protected double b;
protected double c;

public double A
{
get
{
return a;
}
set
{
CheckTriangleExistance(value, b, c);
a = value;
}
}

public double B
{
get
{
return b;
}
set
{
CheckTriangleExistance(a, value, c);
b = value;
}
}

public double C
{
get
{
return c;
}
set
{
CheckTriangleExistance(a, b, value);
c = value;
}
}

private double GetAngle(double _a, double _b, double _c)
{
return Math.Acos((b * b + c * c - a * a) / 2 / b / c);
}

public double Alpha
{
get
{
return GetAngle(a, b, c);
}
}

public double Beta
{
get
{
return GetAngle(b, a, c);
}
}

public double Gamma
{
get
{
return GetAngle(c, a, b);
}
}

public double Perimeter
{
get
{
return a + b + c;
}
}

public double Square
{
get
{
double p = Perimeter / 2;
return Math.Sqrt(p * (p - a) * (p - b) * (p - c));
}
}

protected virtual double[] CheckTriangleExistance(double _a, double _b, double _c)
{
double[] a = new double[] { _a, _b, _c };
Array.Sort(a);
if (a[0] + a[1] < a[2])
throw new Exception("Non-existant triangle");
return a;
}

public BaseTriangle(double _a, double _b, double _c)
{
CheckTriangleExistance(_a, _b, _c);
}
}

class RightTriangle : BaseTriangle
{
private const double ComparisonError = 0.0001;

public RightTriangle(double _a, double _b, double _c) : base(_a, _b, _c)
{
}

protected override double[] CheckTriangleExistance(double _a, double _b, double _c)
{
double[] a = base.CheckTriangleExistance(_a, _b, _c);
if (Math.Abs(a[2] * a[2] - a[1] * a[1] - a[0] * a[0]) > ComparisonError)
throw new Exception("The triangle is not a right triangle");
return a;
}

public double Hypotenuse
{
get
{
return (CheckTriangleExistance(a, b, c))[2];
}
}

}
КР
Кайгородов Роман
96 125
Лучший ответ
Кайгородов Роман Конструктор поправил:

public BaseTriangle(double _a, double _b, double _c)
{
CheckTriangleExistance(_a, _b, _c);
a = _a;
b = _b;
c = _c;
}
через онлайн сервисы пиши со смарта
Николай Корешков у меня windows phone!))