Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

ivankr89 avatar ivankr89 1 Точки

Задача 06. Точка на страна на правоъгълник

Здравейте!

 

Опитвам се да реша тази задача от много дълго време и затова реших да помоля за помощ...

При тест във Visual Studio изходът е правилен.

Следвах решението, което е в книгата "Programming Basics C#". Judge не ми го приема.

Опитах втория вариант на решението, дадено в книгата. Не...

Следвах решението от видеото "По-сложни проверки". И него не ми го приема.

Търсих из форума за други решения. Изглеждат ми напълно идентични с моите. Тях ги приема, а моите не.

Очевидно не успявам да видя някакъв детайл. Моля, погледнете отстрани и ми кажете къде бъркам.

От сега съм благодарен. :)

 

Ето го вариант 1:

using System;

namespace PointOnABorder
{
    class Program
    {
        static void Main(string[] args)
        {
            var x1 = double.Parse(Console.ReadLine());
            var y1 = double.Parse(Console.ReadLine());
            var x2 = double.Parse(Console.ReadLine());
            var y2 = double.Parse(Console.ReadLine());
            var x = double.Parse(Console.ReadLine());
            var y = double.Parse(Console.ReadLine());

            if (((x == x1 || x == x2) && (y >= y1 || y <= y2)) ||
                ((y == y1 || y == y2) && (x >= x1 || x <= x2)))
            {
                Console.WriteLine("Border");
            }

            else
            {
                Console.WriteLine("Inside/Outside");
            }
        }
    }
}

 

И вариант 2:

using System;

namespace PointOnABorder
{
    class Program
    {
        static void Main(string[] args)
        {
            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());

            var leftside = (x == x1) && (y >= y1) && (y <= y2);
            var rightside = (x == x2) && (y >= y1) && (y <= y2);
            var upside = (y == y1) && (x >= x1) && (x <= x2);
            var downside = (y == y2) && (x >= x1) && (x <= x2);

            if (leftside || rightside || upside || downside)
            {
                Console.WriteLine("Border");
            }

            else
            {
                Console.WriteLine("Inside/Outside");
            }
        }
    }
}

 

Господин Judge ми дава само 27 точки, а опитах как ли не.

Какво не мога да видя?

0
Programming Basics
Kristian8606 avatar Kristian8606 42 Точки

Бих ти препоръчал да си начертаеш на лист хартия дадените входове така ще се ориентираш по лесно. 

Ако не ти стане ясно пак пиши.

0
TeMePyT avatar TeMePyT 142 Точки

https://pastebin.com/CRu6PaVP Ето ти моето решение,  имаш и грешка при изписването преди и след / има интервал.

 

Това е първия ти пример с поправени проверки и изписване https://pastebin.com/PYEMr37b

При втория ти пример грешката е само при изписването, интервал преди и след /

0
13/03/2018 10:55:21
TodorovP avatar TodorovP 177 Точки

Едното от условията ласи

  • x съвпада с x1 или x2 и същевременно y е между y1 и y2

Следователно трябва трябва да е записано

(((x == x1 || x == x2) && (y >= y1 && y <= y2))

Аналогично е по оста y.

0
ivankr89 avatar ivankr89 1 Точки

Благодаря много! Разбрах кое съм сбъркал и вече ми е по-спокойно! :)

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