Вычислить площадь полученного треугольника - C#
Формулировка задачи:
Ввести три числа. Если они могут быть длинами сторон разностороннего остроугольного треугольника, вывести их в порядке возрастания, вычислить площадь полученного треугольника.
надо сделать через классы
Решение задачи: «Вычислить площадь полученного треугольника»
textual
Листинг программы
- class Triangle
- {
- private int a;
- private int b;
- private int c;
- public Triangle(int a, int b, int c)
- {
- Swap(ref a,ref b,ref c);
- //проверка если значения могут быть длинами сторон треугольника
- if (c > a + b)
- throw new Exception("triangle can not be created");
- this.A = a;
- this.B = b;
- this.C = c;
- }
- #region Properties
- public int A
- {
- get { return this.a;}
- private set
- {
- CheckValue(value);
- this.a = value;
- }
- }
- public int B
- {
- get { return this.b; }
- private set
- {
- CheckValue(value);
- this.b = value;
- }
- }
- public int C
- {
- get { return this.c; }
- private set
- {
- CheckValue(value);
- this.c = value;
- }
- }
- #endregion
- // Вычисляем площадь по формуле Герона
- //p- полупериметр, p=(a+b+c)/2
- // S=корень(p(p-a)(p-b)(p-c))
- public double GetSquare()
- {
- double p = (double)this.GetPerimeter() / 2;
- return Math.Sqrt(p * (p - this.A) * (p - this.B) * (p - this.C));
- }
- //вывод сторон порядке возрастания
- public override string ToString()
- {
- return String.Format("a = {0}\nb = {1}\nc = {2}\n", this.A, this.B, this.C);
- }
- //метод для сортировки сторон порядке возрастания
- private void Swap(ref int a, ref int b, ref int c)
- {
- int[] arr = { a, b, c };
- Array.Sort(arr);
- a = arr[0];
- b = arr[1];
- c = arr[2];
- }
- //метод для проверки значения сторон
- private void CheckValue(int value)
- {
- if (value <= 0)
- throw new Exception("Value can not be less than zero");
- }
- //находим периметр
- private int GetPerimeter()
- {
- return this.A + this.B + this.C;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д