09. Longer Line - Methods and Debugging Judge 80/100
На задача 9 от темата за методите ми дава 80 от 100.
Някой може ли да ме насочи къде греше и какво може да пропускам от тестовете.
Ето програмния код: https://pastebin.com/AYFPdXSG
На задача 9 от темата за методите ми дава 80 от 100.
Някой може ли да ме насочи къде греше и какво може да пропускам от тестовете.
Ето програмния код: https://pastebin.com/AYFPdXSG
Сравни:
Math.Abs(x3) + Math.Abs(x4);
с
Math.Abs(x3 + x4);
при x3 = 1 и x4 = -1
Голямо писане падна по тази задача :-)
Имам усещане, че ползването на методи само ми направи живота по- труден.
Има нещо такова, но предполагам, че това усещане е само за момента, когато програмките са много къси и почти няма нужда от отделни методи. Може би като станеш програмист и пишеш дълги програми ще са по-полезни. Засега просто трябва да ги разберем и научим.
Та ти в твоя код имаш два метода, които се казват НамериПоДългатаЛиния и НамериПоБлизкатаТочка, но не правиш нито едно от двете в тях, а само си изкарал формулите за намиране на дължина на отсечките и намиране на отстояние на точките и после действията от имената на методите ги извършваш в Main-a. В Main-a трябва само да извикаш ресултатите от тези методи и да принтираш крайния резултат. Дори може да си направиш още един метод static void PrintLongerLine и само да си го извикаш в Main-a.
Благодаря.
Така отново дава 80 от 100, усетих се че е просто частен случай за X: промених го на Math.Abs(x1-x2) и същото за другите два X-a
Здравей,
Мисля, че много съм се объркал в насоката си. Тази абсолютна стойност (Abs), май изобщо не трябва да е Abs, а корен квадратен (Sqrt). Погледни, моля те това решение и виж дали не е това което всъщност се иска.
Защото:
The Euclidean distance between two points of the plane with Cartesian coordinates is:
Съответно дължината на отсечка е разстоянието между двете и крайни точки.
Разстоянието на точка до центъра на координатна система, ще може да се намери по същата формула, като x и y за центъра са (0,0), тоест: Корен квадратен от: (x2 - 0) * (x2 - 0) + (y2 - 0) * (y2 - 0) или Math.Sqrt(x2*x2 + y2*y2).
Според мен логиката е такава. Ето и решение с добавен метод DistanceBetweenTwoPoints.
Да, и това се получава.
Аз правя проверка за равенство на дължината на втора степен на двете прави.
Грешката ми беше, че за Y бях описал точно за всички случаи, докато за X бях описал частен случай, в който точките от абцисната ос са в един и същи квадрант.
Много благодаря за помощта.