Loading...
PavelKolashev avatar PavelKolashev 5 Точки

04. Point in Figure

https://softuni.bg/trainings/resources/officedocument/10713/sample-exam-problem-descriptions-programming-basics-august-2016

      Здравейте, judge ми дава 93 точки за това решение и не мога да разбера защо. Идеи?

 

 


            var x = double.Parse(Console.ReadLine());
            var y = double.Parse(Console.ReadLine());

            if (y >= -3 && y <= 1 && x >= 2 && x <= 12||y >= -5 && y <= 2 && x >= 4 && x <= 10)
            {
                    Console.WriteLine("in");             
            }
            else
            {
                Console.WriteLine("out");
            }
            
    

Тагове:
0
Programming Basics
krasi1105 avatar krasi1105 380 Точки
Best Answer

Промених проверката, това дава 100/100.

1. Добавих скоби, които заграждат отделните случаи. Сигурно някои от тях не са задължителни, така е по- прегледно.

2. На четвъртата проверка трябва да е y <= 3 , a не y <= 2. Погледни фигурата.

Забележка: Размественията на проверките за х и у не са нужни.

0
PavelKolashev avatar PavelKolashev 5 Точки

Да, проблема беше в "y <= 3 , a не y <= 2." Отново грешка от недоглеждане. Скобите не са фактор явно. Мерси много за помощта.

0
spzvtbg avatar spzvtbg 581 Точки

това целият код ли е? защото в условието е указано че трябва да се въведат 6 числа от които х1 и х2  у1 и у2  са кординатите на правоъгалника а х и у са точката която се проверява къде се намира.погледни условието внимателно 

та за да се намира във фигурата х трябва да е между х1 и х2 а у между у1 и у2 включително.

а това е моя вариянт за 100 от 100

            double x1 = double.Parse(Console.ReadLine());
            double y1 = double.Parse(Console.ReadLine());
            double x2 = double.Parse(Console.ReadLine());
            double y2 = double.Parse(Console.ReadLine());
            double x = double.Parse(Console.ReadLine());
            double y = double.Parse(Console.ReadLine());
            if (x >= x1 && x <= x2 && y >= y1 && y <= y2)
            {
                Console.WriteLine("Inside");
            }
            else
            {
                Console.WriteLine("Outside");
            }

 

0
MartinBG avatar MartinBG 4803 Точки

Проверките изглеждат коректни.

За сравнение, ето моето решение на Java:

 

if ((x >= 2d && x <= 12d && y >= -3d && y <= 1d) || (x >= 4d && x <= 10d && y >= -5d && y <= 3d)) {
    System.out.println("in");
} else {
    System.out.println("out");
}

 

Това, което ми идва на ум е, че последователността на проверките е объркана заради логическото "или" (||).

Пробвай да заградиш проверката на двата правоъгълника в скоби:

 if ((y >= -3 && y <= 1 && x >= 2 && x <= 12) || (y >= -5 && y <= 2 && x >= 4 && x <= 10))

0
desislava777 avatar desislava777 165 Точки

Моят вариант за 100 точки е същият

....................................................................

double x1 = double.Parse(Console.ReadLine());
            double y1 = double.Parse(Console.ReadLine());
            double x2= double.Parse(Console.ReadLine());
            double y2 = double.Parse(Console.ReadLine());
            double x = double.Parse(Console.ReadLine());
            double y = double.Parse(Console.ReadLine());
            if(x>=x1 && x<=x2 && y>=y1 && y<=y2)
            {
                Console.WriteLine("InSide");
            }
            else..................................

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.