Заданы координаты вершин трех треугольников.Определить сколько треугольников лежит внутри окружности - 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);
    }
}

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


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

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

14   голосов , оценка 4.143 из 5
Похожие ответы