[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
Моето решение:
http://pastebin.com/8qyuKnwR

от ellapt (6303 точки)


0

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace _06.Circle
{
    class Circle
    {
        static void Main(string[] args)
        {
            int x = 3;
            int y = 5;
            int radius = 3;
            int a = 0;
            int b = 0;
            double result = (x - a) * (x - a) + (y - b) * (y - b);
            if (result < (radius*radius))
            {
                Console.WriteLine("The point (x,y) is within the circle.");
            }
            else
            {
                Console.WriteLine("The point (x,y) is out of the circle.");
            }
        }
    }
}
 

от bankina (268 точки)


0
Здравейте колеги ! Нов в цялата тази работа та затова предварително се извинявам ако сметнете кода ми за леко смешен. Та мисълта ми беше защо трябва да се усложнява толкова задачата? И затова прилагам и моето елементарно решение което поне при мен работи както и другите в които се използват по-сложни методи.
using System;
class Circle { static void Main() { Console.Write("Please insurt number \"x\": "); double x = Convert.ToDouble(Console.ReadLine()); Console.Write("Please insurt number \"y\": "); double y = Convert.ToDouble(Console.ReadLine()); if ((5 - x + 2) >= y) { Console.WriteLine("Your number's are in the circle"); } else { Console.WriteLine("Your number's aren't in the circle"); } } }

Моля напишете ми коментар ако виждате накаква нередност.
Поздрави: Стефан

от stefan86 (15 точки)


0
спам: исках да напиша отговор, не коментар по-долу съм обяснил

от Sir_EFO (733 точки)


3
Здравейте на всички, аз също съм нов в тази област, но ще се опитам да обясня някои неща: 1. Числата x и y неможе да са int, понеже не всички координатои са цели числа (пример т.А(2,13 ; 3,14)) 2. Всички сравнявания на сборове разлики и т.н. не са верни понеже трябва да се сравнят сбора от квадратите на координатите със квадрата на радиуса на окръжността (т.е. ако си нарисувате точката на координатната система и си направите един триъгълник с върхове началото на координатната система, точката и единия перпендикуляр към едната ос ще видите че се получава един правоогълен триъгълник със хипотенуза разтоянието от точката до началото на координатната система. така че тя е равна на корен от сбора на квадратите на катетите, които са x и y) В крайна сметка точката за да се намира в тази окръжност трябва разточнието от нея до центъра на окръжността да е по малко от радиуса.
ПП съжалявам ако на някой му се стори дълъг поста, от горните решения е видно че не всички го разбират това

от Sir_EFO (733 точки)


0

Мисля, че задачата се решава по питагоровата теорема, а именно (x-a)2 + (y-b)2 = r2. Ето и моето решение. Избегнах зиползването на "Math." понеже четох, че харчи много ресурси :):

http://pastebin.com/YWsiKN3D


от gargantiua (0 точки)


0
Math. има вградени функции които е хубаво да се позлват на готово единствения случай е при работа със степените на двойката при която се ползва << и >> които са побитови манипулации.

от ludmil.d (490 точки)