Заданы координаты вершин трех треугольников.Определить сколько треугольников лежит внутри окружности - 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 не имеет связи с каким-либо внешним циклом". Прошу , помогите, буду преблагодарен.
Листинг программы
- namespace ConsoleApplication1
- {
- class Program
- {
- class cr
- {
- public double x, y;
- };
- static void Main(string[] args)
- {
- double l = 0;
- double A = 0;
- double B = 0;
- double C = 0;
- int a, b, c;
- Console.WriteLine("Введите R:");
- double r = Convert.ToDouble(Console.ReadLine());
- {
- cr[] t1 = new cr[3]; // треугольник 1
- Console.WriteLine("Введите вершины 1го треугольника");
- for (int i = 0; i < 3; i++)
- {
- Console.WriteLine("Введите X{0}:", i + 1);
- t1[i].x = Double.Parse(Console.ReadLine());
- Console.WriteLine("Введите Y{0}:", i + 1);
- t1[i].y = Double.Parse(Console.ReadLine());
- }
- {
- {
- 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;
- }
- }
- {
- cr[] t2 = new cr[3]; // треугольник 2
- Console.WriteLine("Введите вершины 2го треугольника");
- for (int i = 0; i < 3; i++)
- {
- Console.Write("Введите X{0}:", i + 1);
- t2[i].x = Double.Parse(Console.ReadLine());
- Console.Write("Введите Y{0}:", i + 1);
- t2[i].y = Double.Parse(Console.ReadLine());
- }
- {
- for (int i = 0; i < 3; i++)
- B = Math.Sqrt((t2[i].x) * (t2[i].x) + (t2[i].y) * (t2[i].y));
- if (B < r)
- b = 1;
- else b = 0;
- }
- }
- {
- cr[] t3 = new cr[3]; // треугольник 3
- Console.WriteLine("Введите вершины 3го треугольника");
- for (int i = 0; i < 3; i++)
- {
- Console.Write("Введите X{0}:", i + 1);
- t3[i].x = Double.Parse(Console.ReadLine());
- Console.Write("Введите Y{0}:", i + 1);
- t3[i].y = Double.Parse(Console.ReadLine());
- }
- {
- for (int i = 0; i < 3; i++)
- C = Math.Sqrt((t3[i].x) * (t3[i].x) + (t3[i].y) * (t3[i].y));
- if (C < r) c = 1;
- else c = 0;
- }
- }
- l = a + b + c;
- Console.WriteLine("\n" + "кол-во треугольников, лежащих внутри окружности=" + "\t" + l + "\t");
- }
- }
- }
- }
Ошибка 1 Отсутствует внешний цикл для прерывания или продолжения. Вот такую ошибку пишет в случае с break
Решение задачи: «Заданы координаты вершин трех треугольников.Определить сколько треугольников лежит внутри окружности»
textual
Листинг программы
- using System;
- class Program
- {
- static void Main(string[] args)
- {
- Triangle[] triangles = new Triangle[3];
- for(int i=0; i<3; i++)
- {
- Console.WriteLine("Введите координаты вершин " + (i+1) + "-го треугольника");
- Point[] pts = new Point[3];
- for (int j = 0; j < 3; j++)
- {
- Console.Write("Введите X{0}:", j+1);
- int x = int.Parse(Console.ReadLine());
- Console.Write("Введите Y{0}:", j+1);
- int y = int.Parse(Console.ReadLine());
- pts[j] = new Point(x, y);
- }
- triangles[i] = new Triangle(pts);
- }
- Console.WriteLine("Введите R:");
- int r = int.Parse(Console.ReadLine());
- int count = 0;
- foreach (Triangle triangle in triangles)
- if (triangle.CheckTriangle(r))
- count++;
- Console.WriteLine("Кол-во треугольников, лежащих внутри окружности = " + count);
- }
- }
- class Point
- {
- public int X { set; get; }
- public int Y { set; get; }
- public Point(int x, int y)
- {
- X = x;
- Y = y;
- }
- public bool CheckPoint(int r)
- {
- return Math.Sqrt(X * X + Y * Y) <= r * r;
- }
- }
- class Triangle
- {
- public Point A { set; get; }
- public Point B { set; get; }
- public Point C { set; get; }
- public Triangle(Point[] points)
- {
- A = points[0]; B = points[1]; C = points[2];
- }
- public bool CheckTriangle(int R)
- {
- return A.CheckPoint(R) && B.CheckPoint(R) && C.CheckPoint(R);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д