
Помогите решить, пожалуйста. Дана точка на плоскости с координатами (x,y). Составить программу,
которая выдаёт одно из сообщений "Да","Нет","На границе" в зависимости от того, лежит ли точка внутри заштрихованной области, вне заштрихованной области или на её границе. Области задаются графичиски следующим образом. За ранее спасибо. (C#)


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

using System;
using System.Collections.Generic;
using System.Linq;
internal class Program {
private static readonly Func<double, double, List<double>>[] Fs_ = {
(x, y) => new List<double> //1
{
-(x * x + y * y - 9 * 9),
x
},
(x, y) => new List<double> //2
{
-(x * x + y * y - 7 * 7),
x * x + y * y - 3 * 3
},
(x, y) => new List<double> //3
{
x * x + y * y - 5 * 5,
-(x * x + y * y - 10 * 10),
y
},
(x, y) => //4 - костыль
{
var values = new List<double> {
-(x * x + y * y - 15 * 15),
x * x + y * y - 25 * 25
};
if (values.Any(v => Math.Abs(v) < 0.01))
return new List<double> {0};
return values.Any(v => v > 0) ? new List<double> {1} : new List<double> {-1};
},
(x, y) => new List<double> //5
{
-(x * x + y * y - 15 * 15),
-(Math.Abs(x) - y)
},
(x, y) => new List<double> //6
{
-(Math.Abs(x) - y),
-(y - 12)
},
(x, y) => new List<double> //7
{
-(x - 70),
x - y,
y
},
(x, y) => new List<double> //8
{
-Math.Abs(x) - y,
-(-y - 100)
},
(x, y) => new List<double> //9
{
-(x * x + y * y - 10 * 10),
-(-x - y)
},
};
private static void Main() {
do {
Console.Write("x = ");
var x = double.Parse(Console.ReadLine() ?? throw new InvalidOperationException());
Console.Write("y = ");
var y = double.Parse(Console.ReadLine() ?? throw new InvalidOperationException());
for (var i = 0; i < Fs_.Length; i++)
Console.WriteLine($"F({i + 1}) => {ContainsPoint(x, y, Fs_[i])}");
} while (true);
Console.ReadKey();
}
private static string ContainsPoint(double x, double y, Func<double, double, List<double>> f) {
var values = f(x, y);
if (values.Any(v => v < 0))
return "Нет";
return values.Any(v => Math.Abs(v) < 0.01) ? "На границе" : "Да"; // Math.Abs(v) < 0.01 сравнение с 0
}
}


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili