Loading...
sevdalin avatar sevdalin 38 Точки

Basic OOP - Problem 12. Rectang leIntersection

Здравейте,

условието на задачата е:

Create a class Rectangle. It should consist of an ID, width, height and the coordinates of its top left corner (horizontal and vertical). Create a method which receives as a parameter another Rectangle, checks if the two rectangles intersect and returns true or false. 
On the first line you will receive the number of rectangles – N and the number of intersection checks – M. On the next N lines, you will get the rectangles with their ID, width, height and coordinates. On the last M lines, you will get pairs of IDs which represent rectangles. Print if each of the pairs intersect.
You will always receive valid data. There is no need to check if a rectangle exists.

Примерен тест, който връща True

2 1
Pesho 2 2 0 0
Gosho 2 2 0 0
Pesho Gosho

Решил съм задачата, като съм използвал вградения клас Rectangle, който има методи за проверка на 2 rectangle-а, дали са Interesect или не. Но Judge ми дава 60/100. Последен тест Runtime Exception и предпоследен за грешен отговор. Не мога да си открия грешката. Някой може ли да погледне и да ме насочи?

Тук е кодът ми и съм сложил доста обяснения за да се разбира по-лесно, кое какво прави и защо го ползвам:

Код --> Виж

Надявам се някой да може да каже къде греша, че аз не успявам да видя!

Благодаря :)

Тагове:
1
C# OOP Basics
TanyaZheleva avatar TanyaZheleva 354 Точки

Ползвай double. Последният тест и на мен ми гърмеше, поне докато не смених int-a.

1
01/06/2017 23:47:05
sevdalin avatar sevdalin 38 Точки

Да, само че класа който ползвам няма overload за double values...

0
Sim0o0na avatar Sim0o0na Trainer 567 Точки

Ами не ползвай държавния клас. Целта на задачата е да си направиш ти :)

0
NikolayPopov avatar NikolayPopov 253 Точки

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

0
sevdalin avatar sevdalin 38 Точки

Причината поради която се опитах да избегна създаването на мой си клас, е не защото ме мързи да си го направя, а защото съм слаб по математика и нямам идея как да проверя дали са един в друг или се застъпват и т.н. Съответно ще изгубя 3х повече време за да търся как се решава математически задачата. Просто исках да си спестя математиката, защото не уча математика, а програмиране. Вярно, че до някъде едното има нещо общо с другото, но в конкретният случай условието на задачата е такова, само защото да се измисли някаква по-интересна задача за упражнение на текущият материал, а не да се учим на математика.

0
NikolayPopov avatar NikolayPopov 253 Точки

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

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