[C#] Operators Expressions adn Statements - задача 6


0
Задача 6 Write an expression that checks if given point (x, y) is within a circle K(O, 5).
Мисля, че не е пълна, защото окръжността се задава с радиус и коордианти на центъра, но в задачата окръжността К има само два аргумента.



Отговори



1

Първият аргумент е 0 - което значи, че центъра на окръжността лежи на центъра на координатната системa, т.е. - (0,0)

ПС: Хубаво е да постваш самото условие на задачата и да именуваш заглавието на темата според правилата: http://forums.academy.telerik.com//15664


от technet (717 точки)


0
Мерси за корекцията! Прав си!

от flyer87 (30 точки)


2
Може би е изпуснато. Приеми, че става въпрос за окръжност с център (0,0) и радиус 5. В книгата към курса окръжността е дадена така К ((0,0), 5).

от westi3m (5621 точки)


0
Благодаря ти, това вече друго :)

от flyer87 (30 точки)


2

Да, под K(O, 5) се разбира окръжност, центъра на която е центъра на координатната система и е с радиус 5.

Прилагам примерно решение на задачата.

http://pastebin.com/0hm1SH19


от gercho (851 точки)


0

Решението на Alexander Gerov е много добро, това всичко е математика и само се описва в C#. Ако се добави и правоъгълник става за 9 задача.


от echata (0 точки)


1

Моето решение съм го направила с тип double, защото не е казано, че координатите на точката за проверка са цели числа.

Тъй като центъра на окръжността съвпада с началото на координатната система съм ползвала формулата x² + y²<R², където х и у са координатите на точката, която проверяваме, а R e радиуса на окръжността.

http://pastebin.com/AwnvbhZf




0
Към формулката само добави "=" за сравнението, защото точките от окръжността също се водят в нея (по точно те са от нея, но е така в математиката; мисля, че е логично все пак). :)

от vlad_karamfilov (4595 точки)

0
С Math.Pow програмата мисля, че работи по-бавно.. използвай простия запис x*x, y*y, r*r, за да работи по-бързо.

от zhelyazkovn (2949 точки)



0
Задачата се решава доста лесно само с използването на Питагоровата теорема. Ето как съм я решил и аз:

http://pastebin.com/Jv566n8W

от kaloyan.savov (519 точки)


0
double radius = 5; double area = Math.PI * Math.Sqrt(radius);
Супер е, според мен само тези два реда са излишни. Няма нужда да заделяш памет за променливата radius, когато тя винаги си е 5. Същото важи и за area, защото не видях къде я ползваш.
Поздрави.

от v.staykov (212 точки)


0
Ето и моето решение
http://pastebin.com/zgG4icis

от makmidov (598 точки)


0

Моето решение е следното: 

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

http://pastebin.com/PQUEJtQJ

В този случай аз избирам х= 3, у= 2. Сравнявам х и у и след това по голямото с радиуса и ето го решението.
 

 

using System;
 
class PointInCircle
{
    static void Main()
    {
        int radius = 5;
        int x = 3;
        int y = 2;
        
        if (radius > x)
            Console.WriteLine("The given point is within the circle.");
        else
            Console.WriteLine("The given point is not within the circle.");
    }
}
 

от xellscream (469 точки)


0
Браво, добра логика!

от v.staykov (212 точки)

0
А какво ще кажеш за точка с координати x,y (4;4)? Тази точка не е в окръжността, а и x и y са по-малки от радиуса! Има уравнение за окръжност, от което няма как да се избяга при решението на задачата х*х + y*y <= r*r. При 4,4 имаш 32 > 25, което е извън окръжността, а и най-добре ползвай float вместо int.

от shristoff (747 точки)



0

Колеги, споделям и моето решение:

http://pastebin.com/cUbJcnZP


от zhelyazkovn (2949 точки)


0
Само за сведение ако на някой му гърми програмата при въвеждане на число с плаваща запетая, ПР: / 3.5 / Опитайте с точка и след това със запетая . При мен с точката от NumPad гърми .Постоянно ми даваше грешка в конвертирането. След 15 мин мъки се сетих че може да е от запетаята. Казвам го за да не си губите времето като мен .



0

Отностно точката и запетаята при въвеждане на числа в конзолата, можете да оправите настройките на Command Promp  по следния начин: от Start menu в тъсачката записвате cmd и давате Enter. Дясно копче на мишката върху конзолата - Dafaults -> Font -> Consolas. Така би трябвало да оправите проблема с точката и да излизат символите на copyright в конзолата, за тези на които не ни излизаше от старото домашно. (Прясна информация от лекцията в момента)


от zhelyazkovn (2949 точки)