Ejemplo n.º 1
0
        //функция проверки на правильность. в ходе проверки выясняется, какие из сторон - катеты, какие - гипотенузы. чтобы не повторять эти процедуры - функция выписывает катеты и гипотенузу во внешние переменные
        public bool IsRightTriangle(out T CathetAOut, out T CathetBOut, out T HypotenuseOut)
        {
            T hypotenuse, cathet1, cathet2;

            if (SideA.CompareTo(SideB) == 1)
            {
                hypotenuse = SideA;
                cathet1    = SideB;
            }
            else
            {
                cathet1    = SideA;
                hypotenuse = SideB;
            }
            if (hypotenuse.CompareTo(SideC) == 1)
            {
                cathet2 = SideC;
            }
            else
            {
                cathet2    = hypotenuse;
                hypotenuse = SideC;
            }
            try
            {
                if (((dynamic)cathet2 * (dynamic)cathet2 + (dynamic)cathet1 * (dynamic)cathet1) == (dynamic)hypotenuse * (dynamic)hypotenuse)
                {
                    CathetAOut    = cathet1;
                    CathetBOut    = cathet2;
                    HypotenuseOut = hypotenuse;
                    return(true);
                }

                else
                {
                    CathetAOut    = default(T);
                    CathetBOut    = default(T);
                    HypotenuseOut = default(T);
                    return(false);
                }
            }
            catch
            {
                CathetAOut    = default(T);
                CathetBOut    = default(T);
                HypotenuseOut = default(T);
                ErrorLog("Type Error! Sides cannot be this types");
                return(false);
            }
        }
Ejemplo n.º 2
0
        //функция проеврки треугольника на правильность для тестов
        public bool IsRightTriangle()
        {
            T hypotenuse, cathet1, cathet2;

            if (SideA.CompareTo(SideB) == 1)
            {
                hypotenuse = SideA;
                cathet1    = SideB;
            }
            else
            {
                cathet1    = SideA;
                hypotenuse = SideB;
            }
            if (hypotenuse.CompareTo(SideC) == 1)
            {
                cathet2 = SideC;
            }
            else
            {
                cathet2    = hypotenuse;
                hypotenuse = SideC;
            }
            try
            {
                if (((dynamic)cathet2 * (dynamic)cathet2 + (dynamic)cathet1 * (dynamic)cathet1) == (dynamic)hypotenuse * (dynamic)hypotenuse)
                {
                    return(true);
                }

                else
                {
                    return(false);
                }
            }
            catch
            {
                ErrorLog("Type Error! Sides cannot be this types");
                return(false);
            }
        }