Найти периметр и площадь треугольника, заданного координатами вершин - C#
Формулировка задачи:
Заданы координаты трех вершин треугольника (x1, y1), (x2, y2), (x3, y3). Найти его периметр и площадь.
Решение задачи: «Найти периметр и площадь треугольника, заданного координатами вершин»
textual
Листинг программы
class TriangleTask
{
public struct Point
{
public int x, y;
public Point( int xx, int yy)
{
x = xx;
y = yy;
}
public Point input() {
Console.Write("Input X: ");
x = int.Parse(Console.ReadLine());
Console.Write("Input Y: ");
y = int.Parse(Console.ReadLine());
return new Point(x, y);
}
}
public static double[] CalcDistance(Point a, Point b, Point c) {
return new double[] { Math.Sqrt(Math.Pow(a.x-b.x,2) + Math.Pow(a.y-b.y,2)),
Math.Sqrt(Math.Pow(a.x-c.x,2) + Math.Pow(a.y-c.y,2)),
Math.Sqrt(Math.Pow(c.x-b.x,2) + Math.Pow(c.y-b.y,2)),
};
}
static void Main(string[] args)
{
Console.WriteLine("First Point.");
Point A = new Point().input();
Console.WriteLine("Second Point.");
Point B = new Point().input();
Console.WriteLine("Third Point.");
Point C = new Point().input();
double[] distances = CalcDistance(A, B, C);
double perimeter = distances.Sum();
Console.WriteLine("Perimeter is: {0:F2}" , perimeter);
double area = Math.Sqrt(perimeter * (perimeter - distances[0]) * (perimeter - distances[1]) * (perimeter - distances[2]));
Console.WriteLine("Area is: {0:F2}", area);
Console.ReadKey();
}
}