Loading...
Yavor2012 avatar Yavor2012 15 Точки

[Homework] Programming Basics - Operators and Expressions - Problem {10} Point inside the Circle and outside the Triangle

Здравейте колеги,

Искам да ви задам въпрос във връзка със задача номер 10 от домашната работа по тема Оператори и изрази. Въпросът е да определим дали точка е в кръг и извън триъгълник. Това което ме интересува като въпрос не е някакво конкретно решение , а по-скоро, ако е удобно, да споделите как трябва да се действа при тази задача, говоря като стъпки. Благодаря ви за помоща!

Тагове:
0
Programming Basics 08/03/2015 13:12:29
GalyaGeorgieva avatar GalyaGeorgieva 88 Точки

1. Аз първо изчислявам хипотенузата на въображаемия триъгълник, който се образува при т.Х, т.У и т.К(1,1)

забележи, че центъра на координатната система не е центъра на кръга, т.е ще трябва от тук нататък да вадим "-1" от Х и У. (заложила съм да се получават абсолютни стойности (Math.Abs), за да не стане  отрицателно число и после грешка в събирането)

double hipo= Math.Sqrt(Math.Abs((x - 1) * (x - 1)) + (Math.Abs(y - 1) * (y - 1)));

2. Проверявам дали  точката е в окръжността като проверявам хипотенузата hipo дали е по-малка или равна на радиуса на кръга, т.е. 1,5

        bool insideCircle = hipo<=1,5

3. Проверявам дали точката е извън правоъгълника

        bool outsideRectangle = x>=-1 || x>=5 && y>=-1|| y>=1;

4. Ако и двата bool са true - отговор Yes

3
08/03/2015 12:07:38
Alezard avatar Alezard 7 Точки

bool outsideRectangle = x>=-1 || x>=5 && y>=-1|| y>=1;

Този код не трябва ли да е в рамките на x >= -1 и x <= 5, и y >= -1 и y <= 1? Защото така всеки път ще проверява точките в правоъгълника и извън него от (-1, -1)  до някъде там (колкото памет имаме).

0
GalyaGeorgieva avatar GalyaGeorgieva 88 Точки

Да, Alezard прав си. Сгрешила съм в изписването на логиката. Твоят начин е верен, но доколкото виждам той проверява дали е вътре в правоъгълника и тогава ще трябва да използваме bool outsideRectangle с обратен знак, т.е:

ако точката е в окръжността bool outsideRectangle = true

ако точката е в правоъгълника bool outsideRectangle =  true и за да го направим  коректно към заданието, т.е да е вън от правоъгълника го правим с запис:

bool insideCircle &&  !outsideRectangle, за да "докараме" false накрая :)

Благодаря за корекцията:)

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