Advertisement
dimipan80

Exam 5. Triangle

Jun 14th, 2014
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.52 KB | None | 0 0
  1. namespace _1.Triangle
  2. {
  3.     using System;
  4.     using System.Linq;
  5.  
  6.     public class Point
  7.     {
  8.         public int X { get; set; }
  9.  
  10.         public int Y { get; set; }
  11.     }
  12.  
  13.     public class Triangle
  14.     {
  15.         public static void Main(string[] args)
  16.         {
  17.             checked
  18.             {
  19.                 Point[] trianglePoints = new Point[3];
  20.                 for (int i = 0; i < trianglePoints.Length; i++)
  21.                 {
  22.                     int pointX = int.Parse(Console.ReadLine());
  23.                     int pointY = int.Parse(Console.ReadLine());
  24.                     Point nextPoint = new Point { X = pointX, Y = pointY };                    
  25.                     trianglePoints[i] = nextPoint;
  26.                 }
  27.  
  28.                 double[] sidesTriangle = new double[trianglePoints.Length];
  29.                 for (int j = 0; j < sidesTriangle.Length; j++)
  30.                 {
  31.                     sidesTriangle[j] = DistanceBetweenTwoPoints(trianglePoints[j], trianglePoints[(j + 1) % sidesTriangle.Length]);
  32.                 }
  33.  
  34.                 bool isTriangle = (sidesTriangle[0] + sidesTriangle[1]) > sidesTriangle[2] && (sidesTriangle[1] + sidesTriangle[2]) > sidesTriangle[0] && (sidesTriangle[0] + sidesTriangle[2]) > sidesTriangle[1];
  35.  
  36.                 if (isTriangle)
  37.                 {
  38.                     Console.WriteLine("Yes");
  39.                     double triangleArea = CalculateTriangleAreaByHeronFormula(sidesTriangle);
  40.                     Console.WriteLine("{0:f2}", triangleArea);
  41.                 }
  42.                 else
  43.                 {
  44.                     Console.WriteLine("No");
  45.                     Console.WriteLine("{0:f2}", sidesTriangle[0]);
  46.                 }
  47.             }
  48.         }
  49.  
  50.         private static double CalculateTriangleAreaByHeronFormula(double[] sides)
  51.         {
  52.             checked
  53.             {
  54.                 double perimeter = sides.Sum() / 2d;
  55.                 double area = perimeter;
  56.                 for (int i = 0; i < sides.Length; i++)
  57.                 {
  58.                     area *= perimeter - sides[i];
  59.                 }
  60.  
  61.                 area = Math.Sqrt(area);
  62.                 return area;
  63.             }
  64.         }
  65.  
  66.         private static double DistanceBetweenTwoPoints(Point point1, Point point2)
  67.         {
  68.             checked
  69.             {
  70.                 double distance = Math.Sqrt(((point2.X - point1.X) * (point2.X - point1.X)) + ((point2.Y - point1.Y) * (point2.Y - point1.Y)));
  71.  
  72.                 return distance;
  73.             }
  74.         }
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement