diff options
author | Serghei Cebotari <serghei@cebotari.ru> | 2023-11-16 15:48:44 +0300 |
---|---|---|
committer | Serghei Cebotari <serghei@cebotari.ru> | 2023-11-16 15:48:44 +0300 |
commit | d3517a86fb72b811615aa6f0abc3f042d875983e (patch) | |
tree | 479c9b55592d79533a1dec1ddf47f18928b541a3 /MindBox.Lib/Triangle.cs | |
parent | 15b215010bf1f343b46f71405f0b418b5ff93488 (diff) |
Diffstat (limited to 'MindBox.Lib/Triangle.cs')
-rw-r--r-- | MindBox.Lib/Triangle.cs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/MindBox.Lib/Triangle.cs b/MindBox.Lib/Triangle.cs index 54e8a85..58cdb91 100644 --- a/MindBox.Lib/Triangle.cs +++ b/MindBox.Lib/Triangle.cs @@ -2,6 +2,7 @@ namespace MindBox.Lib; public class Triangle : FlatShape { + // Может потребоваться хранить разные стороны в разных полях, но для нашей задачи это избыточно private readonly double[] _sides; public Triangle(double a, double b, double c) @@ -16,6 +17,9 @@ public class Triangle : FlatShape throw new ArgumentException($"Sides lengths are not valid: {a}, {b}, {c}"); } } + /// <summary> + /// Вычисление площади реугольника по формуле Герона + /// </summary> public override double GetArea() { if (_area != null) @@ -31,14 +35,16 @@ public class Triangle : FlatShape (semiPerimeter - _sides[2])); return _area.Value; } - } + } public bool IsRight() { var sorted = _sides.OrderByDescending(x => x); + // Самая длинная сторона: гипотенуза double hypotenuse = sorted.First(); + // Две другие - катеты var catheti = sorted.Skip(1); return hypotenuse * hypotenuse == catheti.Sum(x => x * x); - } + } } |