Найти площадь многоугольника, вершины которого при некотором обходе имеют заданные координаты - C#

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

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

Листинг программы
  1. namespace ConsoleApplication53
  2. {
  3. class Program
  4. {
  5. static int[,] Input()
  6. {
  7. Console.Write("Введите количество вершин: ");
  8. int n = int.Parse(Console.ReadLine());
  9. var coord = new int[2, n];
  10. Console.WriteLine("***Кординаты вершины вводить через пробел***");
  11. for (int i = 0; i < n; i++)
  12. {
  13. Console.Write("Введите координаты вершины {0}: ", i + 1);
  14. var input = Console.ReadLine().Split(' ');
  15. coord[0, i] = int.Parse(input[0]);
  16. coord[1, i] = int.Parse(input[1]);
  17. }
  18. return coord;
  19. }
  20. static double Area(int[,] coord)
  21. {
  22. int x1,x2,x3,y1,y2,y3;
  23. double p, a, b, c, s;
  24. x1=coord[0,0];
  25. y1 = coord[0, 1];
  26.  
  27. for (int i = 0; i < coord.GetLength(1)-1; i++)
  28. {
  29. x2=coord[i,0];
  30. y2 = coord[0, i];
  31. x3 = coord[i, 0];
  32. y3 = coord[0, i];
  33. a=Math.Sqrt(((x3-x2)*(x3-x2))+((y3-y2)*(y3-y2)));
  34. b=Math.Sqrt(((x3-x1)*(x3-x1))+((y3-y1)*(y3-y1)));
  35. c=Math.Sqrt(((x2-x1)*(x2-x1))+((y2-y1)*(y2-y1)));
  36. p = (a + b + c) / 2;
  37. }
  38. return s += Math.Sqrt(p * (p - a) * (p - b) * (p - c));
  39. }
  40. static void Main(string[] args)
  41. {
  42. int[,] coord = Input();
  43. var area = Area(coord);
  44. Console.WriteLine("Площадь многоугольника равна {0}", area);
  45. Console.ReadKey();
  46. }
  47. }
  48. }

Решение задачи: «Найти площадь многоугольника, вершины которого при некотором обходе имеют заданные координаты»

textual
Листинг программы
  1. static double Area(int[,] coord)
  2. {
  3.     int x1, x2, x3, y1, y2, y3;
  4.     double p, a, b, c, s=0;
  5.     x1 = coord[0, 0];
  6.     y1 = coord[1, 0];
  7.     for (int i = 1; i < coord.GetLength(1) - 1; i++)
  8.     {
  9.         x2 = coord[0, i];
  10.         y2 = coord[1, i];
  11.         x3 = coord[0, i+1];
  12.         y3 = coord[1, i+1];
  13.         a = Math.Sqrt(((x3 - x2) * (x3 - x2)) + ((y3 - y2) * (y3 - y2)));
  14.         b = Math.Sqrt(((x3 - x1) * (x3 - x1)) + ((y3 - y1) * (y3 - y1)));
  15.         c = Math.Sqrt(((x2 - x1) * (x2 - x1)) + ((y2 - y1) * (y2 - y1)));
  16.         p = (a + b + c) / 2;
  17.         s += Math.Sqrt(p * (p - a) * (p - b) * (p - c));
  18.     }
  19.     return s;
  20. }

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


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

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

13   голосов , оценка 3.846 из 5

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

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

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