Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Описать класс, представляющий треугольник


Автор: Tinysik2009 23.12.2009, 21:32
Здравствуйте, помогите пожалуйста с решением задачи.

Описать класс, представляющий треугольник.
Предусмотреть методы для создания объектов, вычисления площади, периметра и точки пересечения медиан.
Описать свойства для получения состояния объекта. При невозможности построения треугольника выбрасывается исключение.
Написать программу, демонстрирующую все разработанные элементы класса.


Начала делать задачу,но не знаю как вычислить точку пересечения медиан.
Подскажите пожалуйста как можно указать координаты вершин треугольника, чтобы затем найти точку пересечения медиан?

Код

using System;
namespace test
{
    abstract class Figure
    {
        //Площадь фигуры
        public abstract double square();
        public abstract double perimeter();
        //Пересечение медиан
       // public abstract double median();
  }
    class Triangle : Figure
    {
        double a, b, c; //Стороны

   //Конструктор
        public Triangle(double a, double b, double c)
        {
            this.a = a;
            this.b = b;
            this.c = c;
  }


        public override double square()
        {
            //Используем формулу Герона
            double p = (a + b + c) / 2;
            return Math.Sqrt(p * (p - a) * (p - b) * (p - c));
        }


        public override double perimeter()
        {
            return a + b + c;
        }

        /*
                public override double median()
                {

                }
            }

         (v1+v2+v3)/3 
                */



   class Test
        {
            public static void Main()
            {
                Figure f1;
                f1 = new Triangle(3, 4, 5);

                System.Console.WriteLine("Периметр треугольника = " + f1.perimeter());
                System.Console.WriteLine("Площадь треугольника = " + f1.square());
              //  System.Console.WriteLine("пересечение медиан = " + f1.median());
               Console.ReadLine();
            }
        }
    }

}


                                                                                                                                           Спасибо smile

Автор: Экскалупатор 23.12.2009, 21:43
очевидно, что нужно задать точки, применительно к какой то системе координат. т.е. если предполагается что треугольник на плоскости то нужны (X,Y). сделайте структуру Point с двумя полями поле X и поле Y соответственно.

Автор: Tinysik2009 23.12.2009, 21:53
ну это я понимаю smile . 
Посоветуйте как лушче их (вершины) задать. Я так понимаю их будет необходимо соединить, чтобы построить треугольник, а уже затем и найти точку пересечения медиан. smile 

Автор: Экскалупатор 23.12.2009, 22:03
Цитата(Tinysik2009 @  23.12.2009,  20:53 Найти цитируемый пост)
необходимо соединить, чтобы построить треугольник,

а как вы собираетесь его строить? я так понимаю что вам его строить не нужно, вам нужно проверить реально ли его построить.

Добавлено через 1 минуту и 35 секунд
Цитата

известно, что медианы треугольника делятся точкой пересечения в отношении 2:1, считая от вершин, из которых они проведены. Поэтому для нахождения координаты точки пересечения медиан достаточно найти координаты точки N, такой что |AN| : |NP| = 2:1, где P – середина отрезка BC. Имеем:
- координаты точки P: xP = (xB + xC)/2, yP = (yB + yC)/2, zP = (zB + zC)/2;
- координаты точки N (искомой точки пересечения медиан треугольника ABC):
xN = (xA + 2•xP)/3, yN = (yA + 2•yP)/3, zN = (zA + 2•zP)/3;


http://subscribe.ru/archive/science.exact.mathematicsfaq/200807/16132129.html

Автор: Tinysik2009 23.12.2009, 22:22
спасибо за помощь.  smile 
Думаю, завтра на свежую голову доделаю задачку =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)