Loading...
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

[HW] Operators Expressions and Statements - Problem 7. Point in a Circle

Здравейте! 

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

Имам питане отностно конкретната задача от домашното в раздела, който съм посочил. Тъй като явно тригонометрията не ми е от любимите категории (за решаването на задачата имам известни мисли, че е нужно използването на тригонометрични функции) и по - конкретно ми се върти из главата, че при проверка дали дадена точка в една координатна система принадлежи към дадено множество (в случая крък) е нужна употребата на формула, включваща синус, косинус и радиус (ако не греша). Разбира се ако беше квадрат да кажем трудността на задачата лично за мене щеше да намалее драстично, но за радост или съжаление не е така. Така че, ако имате някакви съвети откъде да подхвана проблема споделяйте. :) Всичко ще ми е от полза.

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

Cartesain Coordinate with a circle

Тагове:
1
Programming Basics
svetli0o avatar svetli0o 134 Точки

Има формула за проверка дали дадена точка принадлежи на дадена окръжност, но тя не включва ъгли и тригонометрия (можеш да я намериш в google, аз там я открих). Сигурно има и такава с тригонометрия, но ти препоръчвам да не си ослужняваш живота с нея :D

2
BoYaN avatar BoYaN 336 Точки

Здравей,

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

корен квадратен от ((Х*Х)+(У*У)) и получения резултат сравняваш дали е по-малък или равен на радиуса.

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

Поздрави и успех с решението

1
headstrong avatar headstrong 29 Точки

 Не ти трябват синус и косинус. Формулата, която аз съм използвал е : (x*x) + (y*y) <= r*r. Т.е Умножаваш x с x   и   y с y . След това ги събираш. Ако резултата ти е по- малък от  радиуса r умножен по r казваш на конзолата какво да прави и какво ако е по-голям. Аз съм използвал if else. Успех

1
Plami avatar Plami 373 Точки

Това е питагоровата теорема a² + b² =c² или (а*а)+(b*b)=(c*c). С нея можем да намерим всяка страна на един правоъгълен тригълник. Ако построиш един триъгълник,  X и Y ти се явяват катетите. Смятаме хипотенузата, ако тя е по-голяма от 2, колкото е радиуса на окръжноста точката е извън окръжноста.В противен случай точката се намира в окръжността.

4
TsvetinaKoleva avatar TsvetinaKoleva 92 Точки

Представи си един триъгълник, чиито три точки се явяват: центъра на координатната с-ма; самата точка с координати(х;у); и точка върху абцисата (остта х).

Този триъгълник е правоъгълен и две от страните му (тези съседните на правия ъгъл т.н. катети) са с дължина х и у, а третата страна (т.н. хипотенуза) ти свързва точката(х;у) и началото на координатната с-ма. Сега само трябва да приложиш Питагорова теорема, както колегите по-горе казаха :)


Ето примерно решение:

Console.Write("X: ");
double x = Convert.ToDouble(Console.ReadLine());
Console.Write("Y: ");
double y = Convert.ToDouble(Console.ReadLine());

double z = Math.Sqrt(Math.Pow(x,2)+Math.Pow(y,2));
Console.WriteLine(z<=2);

2
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Мерси много за помоща, явно бях тръгнал да мисля в друга грешна насока :) wink

1
TsvetinaKoleva avatar TsvetinaKoleva 92 Точки

Опитвайки се да я обясня по по-достъпен начин и търсейки питанията ти в поста съм пропуснала това, че не искаш примерни решения. Моя грешка. Но и да четеш чужд код е полезно, а сега имаш и предизвикателството да напишеш твоя вариант :) Поздрави, радвам се, че помогнахме.

1
RoYaL avatar RoYaL Trainer 6849 Точки

Повечето задачи не са нищо повече от реални математически/практически примерни проблеми, за които отдавна е открита топлата вода :) Трябва просто тази вода да се превърне в C# синтаксис :)

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