Здравей,
единствената грешка ти е в метода за пресмятане дължината на линията:
при теб е:
private static double lineLength(double x1, double y1, double x2, double y2)
{
double a1 = Math.Abs(x1) + Math.Abs(x2);
double b1 = Math.Abs(Math.Abs(y1) - Math.Abs(y2));
return Math.Sqrt(a1 * a1 + b1 * b1);
}
Примерно решение:
private static double lineLength(double x1, double y1, double x2, double y2)
{
double lineLength = Math.Sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
return lineLength;
}
Нещо си го усложнил и това те е подвело.
И на мен ми дава 80 от 100... и не мога да открия къде е пропускът. http://pastebin.com/2As8ffFu
Ето ти фикс на кода ти:
Проблема е в метода ти за проверка на по-близка точка до нулата:
if (Math.Abs(x1) <= Math.Abs(x2) && Math.Abs(y1) <= Math.Abs(y2))
if (Math.Abs(x3) <= Math.Abs(x4) && Math.Abs(y3) <= Math.Abs(y4))
затова го замених с по-работещ и всичко тръгна.
Много ти благодаря! Поразрових за формула, за да разбера какво се случва, и намерих това:
Distance = Math.Sqrt((x1 - x)^2 + (y1 - y)^2), като в случая х и у са = 0. Общо взето в тази задача има се иска доста математика.. :)
Аз също получих 80/100, доста време се опитвам да намеря пропуск, но всичко удря на камък. Ще съм ви много благодарен ако отделите време да редактирате кода: ...http://pastebin.com/Yk1eRFTU... Благодаря предварително
http://pastebin.com/NiWW2jqN И на мен ми дава 80/100
Пробвай да замениш float с double. Аз съм ползвал само double....http://pastebin.com/9vc9CQzX....дава 100/100
Да, това е бил проблема явно.
На мен ми дава 60/100. Пробваш с различни координати и дебъгване с F10, но не мога да открия проблема. Нещо малко и може да ни изяде времето на изпита.
Опитвам да дам достъп до решението ми през github - https://github.com/stanly65/SoftUniLearn/blob/master/TechnologiesFundamentals/ProgrammingFundamentals/06_Methods%20and%20Debugging%20-%20Excercises/09.%20Longer%20Line/09.%20Longer%20Line.cs
"if (firstPointCloser < secondPointCloser) ...
else"
Открих си грешката и може да е от полза за някой - В случай на едаква отдалеченост на точките отиваме в else и печатаме неправилно координатите. 100/100 след добавянето на <=
Здравейте на мен ми дава 60/100 и не мога да открия къде не минава. Ето кода ми: http://pastebin.com/La54YEhG Бих се радвал ако може някой да удари 1 рамо. Не минават 2ри и 5ти тест.
Намерих си грешката double secDistance = GetDistanceToBetweenTwoPoints(x3, y3, x4, x4); Пускам 2 пъти x4 (на мястото на y4) към метода който ми смята дължината на отсечката.
http://pastebin.com/E0HagZeb Аз имам също проблем с моя код по тази задача... може ли съдействие. Резултат 20/100.
Здравей, при теб проблем са 3-те излишни интервала, които развалят иначе решената задача:
Console.Write($"({x1}, {y1}) ({x2}, {y2})");
Console.Write($"({x2}, {y2}) ({x1}, {y1})");
Console.Write($"({x3}, {y3}) ({x4}, {y4})");
Махаш по един интервал между точките и става 100 от 100:
Console.Write($"({x1}, {y1})({x2}, {y2})");
Console.Write($"({x2}, {y2})({x1}, {y1})");
Console.Write($"({x3}, {y3})({x4}, {y4})");
Здравейте на мен ми дава 60/100 и не мога да открия къде не минава. Ето кода ми: http://pastebin.com/La54YEhG Бих се радвал ако може някой да удари 1 рамо. Не минават 2ри и 5ти тест.