Заданы координаты вершин трех треугольников.Определить сколько треугольников лежит внутри окружности - C#

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

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

Заданы координаты вершин трех треугольников. Определить сколько треугольников лежит внутри окружности радиусом R с центром в начале координат.-C#консоль. Ребят ошибка есть в том , что вычисляет только последнюю вершину и по ней присваивает значение 1 или 0, а нужно сделать в цикле, допустим for (int i = 0; i < 3; i++) A = Math.Sqrt((t1[i].x * t1[i].x) + (t1[i].y * t1[i].y)); if (A < r) a = 1; else a = 0; , так, чтобы "если хотя бы одна из вершин не входит в окружность , то а принимает значение 0 и , следовательно, треугольник не входит в окружность. Пытался вставить оператор break , но как бы я его не вставлял и так и сяк - не получается , пишет "оператор break не имеет связи с каким-либо внешним циклом". Прошу , помогите, буду преблагодарен.
Листинг программы
  1. namespace ConsoleApplication1
  2. {
  3. class Program
  4. {
  5. class cr
  6. {
  7. public double x, y;
  8. };
  9. static void Main(string[] args)
  10. {
  11. double l = 0;
  12. double A = 0;
  13. double B = 0;
  14. double C = 0;
  15. int a, b, c;
  16. Console.WriteLine("Введите R:");
  17. double r = Convert.ToDouble(Console.ReadLine());
  18. {
  19. cr[] t1 = new cr[3]; // треугольник 1
  20. Console.WriteLine("Введите вершины 1го треугольника");
  21. for (int i = 0; i < 3; i++)
  22. {
  23. Console.WriteLine("Введите X{0}:", i + 1);
  24. t1[i].x = Double.Parse(Console.ReadLine());
  25. Console.WriteLine("Введите Y{0}:", i + 1);
  26. t1[i].y = Double.Parse(Console.ReadLine());
  27. }
  28. {
  29. {
  30. for (int i = 0; i < 3; i++)
  31. A = Math.Sqrt((t1[i].x * t1[i].x) + (t1[i].y * t1[i].y));
  32. if (A < r) a = 1; else a = 0;
  33. }
  34. }
  35. {
  36. cr[] t2 = new cr[3]; // треугольник 2
  37. Console.WriteLine("Введите вершины 2го треугольника");
  38. for (int i = 0; i < 3; i++)
  39. {
  40. Console.Write("Введите X{0}:", i + 1);
  41. t2[i].x = Double.Parse(Console.ReadLine());
  42. Console.Write("Введите Y{0}:", i + 1);
  43. t2[i].y = Double.Parse(Console.ReadLine());
  44. }
  45. {
  46. for (int i = 0; i < 3; i++)
  47. B = Math.Sqrt((t2[i].x) * (t2[i].x) + (t2[i].y) * (t2[i].y));
  48. if (B < r)
  49. b = 1;
  50. else b = 0;
  51.  
  52. }
  53. }
  54. {
  55. cr[] t3 = new cr[3]; // треугольник 3
  56. Console.WriteLine("Введите вершины 3го треугольника");
  57. for (int i = 0; i < 3; i++)
  58. {
  59. Console.Write("Введите X{0}:", i + 1);
  60. t3[i].x = Double.Parse(Console.ReadLine());
  61. Console.Write("Введите Y{0}:", i + 1);
  62. t3[i].y = Double.Parse(Console.ReadLine());
  63. }
  64. {
  65. for (int i = 0; i < 3; i++)
  66. C = Math.Sqrt((t3[i].x) * (t3[i].x) + (t3[i].y) * (t3[i].y));
  67. if (C < r) c = 1;
  68. else c = 0;
  69.  
  70. }
  71. }
  72. l = a + b + c;
  73. Console.WriteLine("\n" + "кол-во треугольников, лежащих внутри окружности=" + "\t" + l + "\t");
  74. }
  75. }
  76. }
  77. }
Ошибка 1 Отсутствует внешний цикл для прерывания или продолжения. Вот такую ошибку пишет в случае с break

Решение задачи: «Заданы координаты вершин трех треугольников.Определить сколько треугольников лежит внутри окружности»

textual
Листинг программы
  1. using System;
  2. class Program
  3. {
  4.     static void Main(string[] args)
  5.     {
  6.         Triangle[] triangles = new Triangle[3];
  7.         for(int i=0; i<3; i++)
  8.         {
  9.             Console.WriteLine("Введите координаты вершин " + (i+1) + "-го треугольника");
  10.             Point[] pts = new Point[3];
  11.             for (int j = 0; j < 3; j++)
  12.             {
  13.                 Console.Write("Введите X{0}:", j+1);
  14.                 int x = int.Parse(Console.ReadLine());
  15.                 Console.Write("Введите Y{0}:", j+1);
  16.                 int y = int.Parse(Console.ReadLine());
  17.                 pts[j] = new Point(x, y);
  18.             }
  19.             triangles[i] = new Triangle(pts);    
  20.         }
  21.         Console.WriteLine("Введите R:");
  22.         int r = int.Parse(Console.ReadLine());
  23.         int count = 0;
  24.         foreach (Triangle triangle in triangles)
  25.             if (triangle.CheckTriangle(r))
  26.                 count++;
  27.         Console.WriteLine("Кол-во треугольников, лежащих внутри окружности = " + count);
  28.     }
  29.  
  30. }
  31.  
  32. class Point
  33. {
  34.     public int X { set; get; }
  35.     public int Y { set; get; }
  36.     public Point(int x, int y)
  37.     {
  38.         X = x;
  39.         Y = y;
  40.     }
  41.     public bool CheckPoint(int r)
  42.     {
  43.         return Math.Sqrt(X * X + Y * Y) <= r * r;
  44.     }
  45. }
  46.  
  47. class Triangle
  48. {
  49.     public Point A { set; get; }
  50.     public Point B { set; get; }
  51.     public Point C { set; get; }
  52.     public Triangle(Point[] points)
  53.     {
  54.         A = points[0]; B = points[1]; C = points[2];
  55.     }
  56.     public bool CheckTriangle(int R)
  57.     {
  58.         return A.CheckPoint(R) && B.CheckPoint(R) && C.CheckPoint(R);
  59.     }
  60. }

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


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

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

14   голосов , оценка 4.143 из 5

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

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

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