Вопрос задан 23.06.2023 в 19:51. Предмет Информатика. Спрашивает Аникин Иван.

Не могу составить алгоритм/найти в тырнете. Чёрт его знает, не получается запустить. Буду при

многом благодарен за правильно составленный алгоритм! Задание: Имеется круг, заданный координатами центра (50,50) и радиусом = 30. Случайным образом формируются 10 точек (x,y) – координаты в диапазоне от 0 до 100. Определить и сколько точек попало в круг. Использовать методпроцедуру Мой код: namespace LabWork_4 { class Program { static void Main(string[] args) { public int InCircle(int[] x, int[] y) { int count = 0; for (int i = 0; i < x.Length; i++) { if (Math.Sqrt((50 - x[i]) * (50 - x[i]) + (50 - y[i]) * (50 - y[i]), 2) <= 30); } return count; Console.ReadLine(); } } } }
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Димаксян Артур.

Ответ:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApp

{

   class Program

   {

       //Объявление  счетчика попаданий

       public int Tochek_Popalo;

       //Метод проверки, входят ли наши точки в окружность, который в конце выдает нам количество вхождений "Tochek_Popalo"

       public int ProverkaVhojdeniya(int[] Massiv_X, int[] Massiv_Y)

       {

           int Schetchik = 0;

           for (int i = 0; i < Massiv_X.Length; i++)

           {

               if (Math.Sqrt((50 - Massiv_X[i]) * (50 - Massiv_X[i]) + (50 - Massiv_Y[i]) * (50 - Massiv_Y[i])) <= 30)

                   Schetchik++;

           }

           Tochek_Popalo = Schetchik;

           return Tochek_Popalo;

       }

       //Просто метод вывода результата на консоль

       public void Vivod_Na_Konsol()

       {

           Console.WriteLine("\nТочек (x,y) попало в окружность: " + Tochek_Popalo);

       }

       static void Main(string[] args)

       {

           int[] x = new int[10]; //Создаем массив ИКСОВ из 10 элементов

           int[] y = new int[10]; //Создаем массив ИГРИКОВ из 10 элементов

           Random RandomZnacheniya = new Random();

           //цикл присваивания случайных элементов в массив [x] от 0 до 100                        

           for (int i = 0; i < x.Length; i++)

               x[i] = RandomZnacheniya.Next(0, 100);

           //цикл присваивания случайных элементов в массив [x] от 0 до 100                            

           for (int i = 0; i < x.Length; i++)

               y[i] = RandomZnacheniya.Next(0, 100);

           //Просто вывод массива [x] на экран циклом "foreach"

           Console.Write("ИКСЫ: ");

           foreach (var item in x)

               Console.Write(" " + item);

           //Просто вывод массива [y] на экран циклом "foreach"

           Console.Write("\nИГРИКИ: ");

           foreach (var item in y)

               Console.Write(" " + item);

           //Создание экземпляра класса  

           Program Peredacha = new Program();

           //Вызов и передача наших массивов в Метод "ProverkaVhojdeniya"

           Peredacha.ProverkaVhojdeniya(x, y);

           //Вызов метода "Vivod_Na_Konsol"

           Peredacha.Vivod_Na_Konsol();

       }

   }

}

Объяснение: Проверь пожалуйста. Вроде все верно работает.  Если что пиши или отметь как верный ответ! Спасибо.




0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Похоже, у вас есть несколько ошибок в вашем коде. Вот исправленный код с комментариями, который выполняет задачу определения количества точек, попавших в заданный круг:

csharp
using System; namespace LabWork_4 { class Program { public static int InCircle(int[] x, int[] y) { int count = 0; for (int i = 0; i < x.Length; i++) { // Используйте формулу расстояния между точкой (x[i], y[i]) и центром круга (50, 50) double distance = Math.Sqrt(Math.Pow(x[i] - 50, 2) + Math.Pow(y[i] - 50, 2)); // Если расстояние меньше или равно радиусу круга (30), то точка находится внутри круга if (distance <= 30) { count++; } } return count; } static void Main(string[] args) { int[] x = new int[10]; int[] y = new int[10]; // Генерируйте случайные координаты точек в диапазоне от 0 до 100 Random random = new Random(); for (int i = 0; i < 10; i++) { x[i] = random.Next(0, 101); y[i] = random.Next(0, 101); } // Вызов функции InCircle для подсчета точек, попавших в круг int pointsInCircle = InCircle(x, y); // Вывод результата Console.WriteLine($"Количество точек, попавших в круг: {pointsInCircle}"); } } }

В этом коде исправлены ошибки в вычислении расстояния между точкой и центром круга, а также в проверке, попала ли точка в круг. Кроме того, добавлены комментарии для лучшего понимания кода.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос