Вычислить площадь полученного треугольника - C#

Узнай цену своей работы

Формулировка задачи:

Ввести три числа. Если они могут быть длинами сторон разностороннего остроугольного треугольника, вывести их в порядке возрастания, вычислить площадь полученного треугольника. надо сделать через классы

Решение задачи: «Вычислить площадь полученного треугольника»

textual
Листинг программы
  1.  class Triangle
  2.     {
  3.         private int a;
  4.         private int b;
  5.         private int c;
  6.         public Triangle(int a, int b, int c)
  7.         {
  8.             Swap(ref a,ref b,ref c);
  9.             //проверка если значения могут быть длинами сторон  треугольника
  10.             if (c > a + b)
  11.                 throw new Exception("triangle can not be created");
  12.             this.A = a;
  13.             this.B = b;
  14.             this.C = c;
  15.         }
  16.  
  17.        
  18.         #region Properties
  19.  
  20.         public int A
  21.         {
  22.             get { return this.a;}
  23.             private set
  24.             {
  25.                 CheckValue(value);
  26.                 this.a = value;
  27.             }
  28.         }
  29.  
  30.         public int B
  31.         {
  32.             get { return this.b; }
  33.             private set
  34.             {
  35.                 CheckValue(value);
  36.                 this.b = value;
  37.             }
  38.         }
  39.  
  40.         public int C
  41.         {
  42.             get { return this.c; }
  43.             private set
  44.             {
  45.                 CheckValue(value);
  46.                 this.c = value;
  47.             }
  48.         }
  49.         #endregion
  50.  
  51.        
  52.  
  53.         // Вычисляем площадь по формуле Герона
  54.         //p- полупериметр, p=(a+b+c)/2
  55.         // S=корень(p(p-a)(p-b)(p-c))
  56.         public double GetSquare()
  57.         {
  58.             double p = (double)this.GetPerimeter() / 2;
  59.             return Math.Sqrt(p * (p - this.A) * (p - this.B) * (p - this.C));
  60.         }
  61.  
  62.         //вывод сторон  порядке возрастания
  63.         public override string ToString()
  64.         {
  65.             return String.Format("a = {0}\nb = {1}\nc = {2}\n", this.A, this.B, this.C);
  66.         }
  67.  
  68.         //метод для сортировки сторон порядке возрастания
  69.         private void Swap(ref int a, ref int b, ref int c)
  70.         {
  71.             int[] arr = { a, b, c };
  72.             Array.Sort(arr);
  73.             a = arr[0];
  74.             b = arr[1];
  75.             c = arr[2];
  76.         }
  77.  
  78.         //метод для проверки значения сторон
  79.         private void CheckValue(int value)
  80.         {
  81.             if (value <= 0)
  82.                 throw new Exception("Value can not be less than zero");
  83.         }
  84.         //находим периметр
  85.         private int GetPerimeter()
  86.         {
  87.             return this.A + this.B + this.C;
  88.         }
  89.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы