Найти площадь многоугольника, вершины которого при некотором обходе имеют заданные координаты - C#
Формулировка задачи:
Листинг программы
- namespace ConsoleApplication53
- {
- class Program
- {
- static int[,] Input()
- {
- Console.Write("Введите количество вершин: ");
- int n = int.Parse(Console.ReadLine());
- var coord = new int[2, n];
- Console.WriteLine("***Кординаты вершины вводить через пробел***");
- for (int i = 0; i < n; i++)
- {
- Console.Write("Введите координаты вершины {0}: ", i + 1);
- var input = Console.ReadLine().Split(' ');
- coord[0, i] = int.Parse(input[0]);
- coord[1, i] = int.Parse(input[1]);
- }
- return coord;
- }
- static double Area(int[,] coord)
- {
- int x1,x2,x3,y1,y2,y3;
- double p, a, b, c, s;
- x1=coord[0,0];
- y1 = coord[0, 1];
- for (int i = 0; i < coord.GetLength(1)-1; i++)
- {
- x2=coord[i,0];
- y2 = coord[0, i];
- x3 = coord[i, 0];
- y3 = coord[0, i];
- a=Math.Sqrt(((x3-x2)*(x3-x2))+((y3-y2)*(y3-y2)));
- b=Math.Sqrt(((x3-x1)*(x3-x1))+((y3-y1)*(y3-y1)));
- c=Math.Sqrt(((x2-x1)*(x2-x1))+((y2-y1)*(y2-y1)));
- p = (a + b + c) / 2;
- }
- return s += Math.Sqrt(p * (p - a) * (p - b) * (p - c));
- }
- static void Main(string[] args)
- {
- int[,] coord = Input();
- var area = Area(coord);
- Console.WriteLine("Площадь многоугольника равна {0}", area);
- Console.ReadKey();
- }
- }
- }
Решение задачи: «Найти площадь многоугольника, вершины которого при некотором обходе имеют заданные координаты»
textual
Листинг программы
- static double Area(int[,] coord)
- {
- int x1, x2, x3, y1, y2, y3;
- double p, a, b, c, s=0;
- x1 = coord[0, 0];
- y1 = coord[1, 0];
- for (int i = 1; i < coord.GetLength(1) - 1; i++)
- {
- x2 = coord[0, i];
- y2 = coord[1, i];
- x3 = coord[0, i+1];
- y3 = coord[1, i+1];
- a = Math.Sqrt(((x3 - x2) * (x3 - x2)) + ((y3 - y2) * (y3 - y2)));
- b = Math.Sqrt(((x3 - x1) * (x3 - x1)) + ((y3 - y1) * (y3 - y1)));
- c = Math.Sqrt(((x2 - x1) * (x2 - x1)) + ((y2 - y1) * (y2 - y1)));
- p = (a + b + c) / 2;
- s += Math.Sqrt(p * (p - a) * (p - b) * (p - c));
- }
- return s;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д