Модераторы: Се ля ви

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Наследование: линия, луч, сегмент, Наследование: линия, луч, сегмент 
:(
    Опции темы
zlobozavr
Дата 15.12.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 14.12.2008

Репутация: нет
Всего: нет



mes

по поводу твоей реализации, дело в том что угол нужен всем трем, точка начала нужна только двум, а точка конца только одному из трех перечисленных объектов. И терминология в условии немного отличается от привычной - сегмент - обычная линия с двумя концами под определенным углом, так что ей нужны все три параметра, а не два..  smile 
PM MAIL   Вверх
ida
Дата 15.12.2008, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


замужем
****


Профиль
Группа: Завсегдатай
Сообщений: 2277
Регистрация: 14.5.2002
Где: Санкт-Петербург

Репутация: 6
Всего: 58



Все зависит от системы координат.
Можно взять декартову, а можно полярную.
Тогда в декартовой всем трем будет достаточно двух точек
А в полярной - угла и одной точки.
PM WWW   Вверх
zlobozavr
Дата 15.12.2008, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 14.12.2008

Репутация: нет
Всего: нет



тоже верно  smile 
PM MAIL   Вверх
maxim1000
Дата 15.12.2008, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: нет
Всего: 110



Цитата(zlobozavr @  15.12.2008,  16:01 Найти цитируемый пост)
по поводу твоей реализации, дело в том что угол нужен всем трем, точка начала нужна только двум, а точка конца только одному из трех перечисленных объектов.

можно выделить класс объектов, которые могут быть аналитически представлены частью прямой
что-то типа Linear

границы можно будет задавать параметром на этой прямой, а не полноценными трёхмерными точками, у прямой не будет ни одной, в луча одна, у отрезка - две границы

от этого класса унаследуются все три объекта

хотя здесь стоит быть поосторожнее - получается вынесение внутренних аспектов реализации наружу


--------------------
qqq
PM WWW   Вверх
zlobozavr
Дата 15.12.2008, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 14.12.2008

Репутация: нет
Всего: нет



Интересный вариант..  smile 
PM MAIL   Вверх
StepS
Дата 16.12.2008, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 26.8.2005
Где: Днепропетровск

Репутация: нет
Всего: нет



maxim1000, практически прав, но я бы предложил немного другой подход:

все три объекта содержат координаты хотя бы 2-х точек, т.к. чтобы нарисовать линию - нужно знать 2 точки, луч - тоже, только у него одна из точек является началом, отрезок - 2 точки (начало и конец). Т.е. у них разное только поведение НарисоватьСебя. Отсюда имеем:

Код

class Line {
private Point x, y;
public Draw(){
   //уравнение прямой
}

class Ray:Line {
  public new Draw(){
     //уравнение прямой, но начало отсчета по x координате берется из приватной переменной
  }
}

class Segment: Line {
  public new Draw(){
     //уравнение прямой, но ограничение идет по 2-м точкам.
  }
}


как-то так.

Это сообщение отредактировал(а) StepS - 16.12.2008, 19:45
PM MAIL ICQ   Вверх
zlobozavr
Дата 16.12.2008, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 14.12.2008

Репутация: нет
Всего: нет



аналогично как и я думал сначала. Но дело в том что не требуется здесь никакая конкретная реализация, а
    
1. Как бы вы построили классы, представляющие эти три понятия, в виде иерархии наследования? 
2. Будет ли ваше решение другим, если вы обратите особое внимание на представление данных (на поведение)? 
3. Охарактеризуйте тип наследования, который вы использовали.

По-моему правильнее будет

1. сегмент - часть луча, луч - часть линии ("has a")
2. не изменится (нарисоватьСебя())
3. композиция
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Системный анализ, проектирование и UML"
Се ля ви

Форум "Системный анализ, проектирование и UML" предназначен для обсуждения вопросов, так или иначе связанных с этапами жизненного цикла автоматизированных (программных, информационных, автоматических) систем:

• предпроектные обследования объектов автоматизации;

• разработка концепции создания систем;

• моделирование бизнес-процессов (в т.ч. на UML);

• проектирование архитектуры систем;

• управление проектами;

• управление качеством;

• CASE-средства;

• реинжиниринг.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Системный анализ, проектирование и UML | Следующая тема »


 




[ Время генерации скрипта: 0.0694 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.