Loading...
MarianaNikolova avatar MarianaNikolova 13 Точки

Задача Longer Line от Методи, Дебъг и т.н.

Здравейте колеги, моля за малко съдействие Кода по-долу. Не разбирам защо rezult като запис има изчислена стойност, която след като влезе в Метода - GetRightOrder се нулира и след това ми изчислява грешко дължината на линията между точките и съответно си взема другата линия като отговаряща на условието.  

Благодаря предварително.

 

 

sing System;

namespace Longer_Line
{
    class Longer_Line
    {
        static void Main(string[] args)
        {
            double x1 = double.Parse(Console.ReadLine());
            double y1 = double.Parse(Console.ReadLine());
            double x2 = double.Parse(Console.ReadLine());
            double y2 = double.Parse(Console.ReadLine());
            double x3 = double.Parse(Console.ReadLine());
            double y3 = double.Parse(Console.ReadLine());
            double x4 = double.Parse(Console.ReadLine());
            double y4 = double.Parse(Console.ReadLine());

            GetRightOrder(x1, y1, x2, y2, x3, y3, x4, y4);

        }


        static void GetRightOrder(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)
        {


            double axisXY12 = 0;
            double axisXY34 = 0;
            double result = 0;
            double resultCloseZero12 = 0;
            double resultCloseZero34 = 0;
            double axisXY1 = 0;
            double axisXY2 = 0;
            double axisXY3 = 0;
            double axisXY4 = 0;

            GetLenghtLine(x1, y1, x2, y2, x3, y3, x4, y4);
            GetPointNearerCenterPoint(x1, y1, x2, y2, x3, y3, x4, y4);


            if (result == axisXY12 )
            {
                if (resultCloseZero12 == axisXY2)
                Console.WriteLine($"({x2}, {y2})({x1}, {y1})");

                else if (resultCloseZero12 == axisXY1)
                    Console.WriteLine($"({x1}, {y1})({x2}, {y2})");
            }


           
            else if (result == axisXY34 )
            {
                if (resultCloseZero34 == axisXY4)
                Console.WriteLine($"({x4}, {y4})({x3}, {y3})");

                else if (resultCloseZero34 == axisXY3)
                    Console.WriteLine($"({x3}, {y3})({x4}, {y4})");
            }

        }


        static void GetLenghtLine (double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)
        {
            double axisXY12 = Math.Sqrt(Math.Pow((x2 - x1), 2) + Math.Pow((y2 - y1), 2));   // се намира от формулата Корен квадратен от ..x1-0 na kwadrat + y1 - 0 na kwadrat
            double axisXY34 = Math.Sqrt(Math.Pow((x4 - x3), 2) + Math.Pow((y4 - y3), 2));

            double result = 0;

            if (axisXY12 >= axisXY34)
            {
                result = axisXY12;
            }

            else
            {
                result = axisXY34;
            }

      }
       


        static void GetPointNearerCenterPoint(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)
        {


            double axisXY1 = Math.Sqrt(Math.Pow(x1, 2) + Math.Pow(y1, 2));   // хипотенузата се намира от формулата Корен квадратен от ..x1-0 na kwadrat + y1 - 0 na kwadrat
            double axisXY2 = Math.Sqrt(Math.Pow((x2), 2) + Math.Pow((y2), 2));
            double axisXY3 = Math.Sqrt(Math.Pow((x3), 2) + Math.Pow((y3), 2));
            double axisXY4 = Math.Sqrt(Math.Pow((x4), 2) + Math.Pow((y4), 2));

            double resultCloseZero12 = 0;
            double resultCloseZero34 = 0;

           
            if (axisXY1 > axisXY2)
            {
                resultCloseZero12 = axisXY2;
            }

            else
            {
                resultCloseZero12 = axisXY1;
            }


            if (axisXY3 > axisXY4)
            {
                resultCloseZero34 = axisXY4;
            }

            else
            {
                resultCloseZero34 = axisXY3;
            }


        }
    }
}

          

           

 

 

Тагове:
0
Fundamentals Module
Quake3 avatar Quake3 546 Точки

Здравей,

Ако съм разбрал правилно, целта е в result да остава, това което е сетнато в GetLenghtLine. Ако е така, може GetLenghtLine да връща result. Примерно:

 

static double GetLenghtLine(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)
        {
            ...
                result = axisXY34;
            }
            return result;
        }

 

И съответно, когато викамеGetLenghtLine:

​​​​​​​result = GetLenghtLine(x1, y1, x2, y2, x3, y3, x4, y4);

Другият вариант е да направиш тези променливи глобални за класа ( да са извън метод ).

Виж този код. Поправен е, така че променливите да се виждат. Обърни внимание на процедурните параметри, които започват с out. Мисля, че има проблем в извеждането на екрана. ( трябва да е на 1 ред )
Ето и мое решение. Успех :)

 

 

0
01/06/2018 02:35:36
MarianaNikolova avatar MarianaNikolova 13 Точки

Благодаря ! Не знаех за "out" пртоменливите.

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