Професионална програма
Loading...
ZvetanIG avatar ZvetanIG 907 Точки

[HW] Operators, Expressions and Statements - Problem 10

Здравейте,

някой забелязал ли е, че  в примерите този ред нещо не е наред

 x = 1.5
y = 2.5

inside K & outside of R    → yes

     
     

Според мен тази точка е извън кръга и отговора трябва да е no.

Според вас, какво е?  Грешка или уловка в задачата?

Тагове:
15
Programming Basics
ZvetanIG avatar ZvetanIG 907 Точки

       

Това е моя вариант на задачката:

 

 

        Console.Write("X = ");
        double x = double.Parse(Console.ReadLine());
        Console.Write("Y = ");
        double y = double.Parse(Console.ReadLine());
        double r = 1.5;
        bool isInCircle = r * r >= (x - 1) * (x - 1) + (y - 1) * (y - 1);
        bool isInRectangle = (x >= -1) && (x <= 5) && (y >= -1) && (y <= 1);
        Console.WriteLine(isInCircle && !isInRectangle ? "yes" : "no");

2
ananievnikola avatar ananievnikola 9 Точки

Не може ли принципно вместо bool isInRectangle = (x >= -1) && (x <= 5) && (y >= -1) && (y <= 1); да кажем просто

bool isInRectangle = (y >= -1); ? Тестовете от уърдовския файл ги минава всички така :)

 

едит: ето го и моето решение:

static void Main()
{
double centerX = 1;
double centerY = 1;
double radius = 1.5;

Console.WriteLine("Input coordinate for x: ");
double x = double.Parse(Console.ReadLine());
Console.WriteLine("Input coordinate for y: ");
double y = double.Parse(Console.ReadLine());

if ((Math.Pow(x - centerX, 2) + (Math.Pow(y - centerY, 2)) <= Math.Pow(radius, 2)))
{

if (y >= 1)
{
Console.WriteLine("Yes! The point is in the circle and outside the rectangle");
}
else
{
Console.WriteLine("No! The point isn't both inside the circle and outside the rectangle");
}
}
else
{
Console.WriteLine("No! The point isn't both inside the circle and outside the rectangle");
}
}

 

0
ZvetanIG avatar ZvetanIG 907 Точки

bool isInRectangle = (y >= -1);

Това няма да работи, защото правоъгълника има  някакви граници - долна граница и горна граница. Подходите са два:  проверка дали си в границите или проверка дали си извън границите.  Но и в двата случая трябва да провериш къде е точката прямо всички граници.

Например горния случай не би трябвало да работи при y = 2, защото у на правоъгълника е от  -1 до 1.

В случая долния израз проверява дали точката е в правоъгълника:

bool isInRectangle = (x >= -1) && (x <= 5) && (y >= -1) && (y <= 1)

Това, че програмката ти покрива всички примери от  задачата, не означава че е вярна. Опитай се да е тестваш с твои примери, за които например знаеш отговора.

 

0