Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как написать программу на c# ?

wqsaxzyy Ученик (104), на голосовании 8 месяцев назад
Составить программу, определяющую принадлежит ли точка с координатами (x; y) заштрихованной части плоскости. Координаты точки необходимо ввести с клавиатуры C#
Голосование за лучший ответ
Jurijus Zaksas Искусственный Интеллект (433907) 9 месяцев назад
Ну держи, болезный. Интересно, как ты это собираешься сдавать...
 namespace ConsoleApp1 
{
class Point
{
private double x;
private double y;
public double X { get => x; }
public double Y { get => y; }
public Point(double _x, double _y)
{
x = _x;
y = _y;
}
}
class Line
{
private double k;
private double b;
public double K { get => k; }
public double B { get => b; }
public Line(Point p1, Point p2)
{
k = (p2.Y - p1.Y) / (p2.X - p1.X);
b = p1.Y - k * p1.X;
}
public bool Above(Point pt)
{
double y = k * pt.X + b;
return y <= pt.Y;
}
public bool Below(Point pt)
{
double y = k * pt.X + b;
return y >= pt.Y;
}
}
class Circle
{
private Point center;
private double r;
public Point Center { get => center; }
public double R { get => r; }
public Circle(Point _Center, double _r)
{
center = _Center;
r = _r;
}
public bool InCircle(Point _pt) => (Center.X - _pt.X) * (Center.X - _pt.X) + (Center.Y - _pt.Y) * (Center.Y - _pt.Y) <= r * r;
}
internal class Program
{
static void Main(string[] args)
{
double x = double.Parse(Console.ReadLine());
double y = double.Parse(Console.ReadLine());
Circle c = new Circle(new Point(0, 0), 3);
Line l1 = new Line(new Point(-1, 0), new Point(0, 2));
Line l2 = new Line(new Point(0, -2), new Point(2, 0));
Point pt = new Point(x, y);
Console.WriteLine(c.InCircle(pt) && (l1.Above(pt) || l2.Below(pt)));
Console.ReadLine();
}
}
}
Похожие вопросы