![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
medvedeva |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 4 Пол: Женский Репутация: ![]() ![]() ![]() |
тема:Объектная реализация контейнера на основе комбинированной структуры «Упорядоченный массив динамических очередей»
есть начало, но его нужно переделать так, чтобы выполнялось след: - информационные объекты являются квартирами дома с парой свойств Номер и Площадь - квартиры объединяются в рамках объекта Дом (свойство - НомерДома) на основе динамической очереди - дома объединяются в рамках объекта Улица (свойство - Название) на основе упорядоченного массива. Для этой задачи надо спроектировать набор необходимых классов, имена которых, а также имена их свойств и методов должны соответствовать поставленной задаче. - в классах ввести методы доступа к закрытым свойствам - использование динамической версии массива не является обязательным вот начало: uses заранее спасибо! Сообщение отредактировано: Lapp - 29.06.2011 22:04 |
IUnknown |
![]()
Сообщение
#2
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Во-первых, необходимо уточнение:
Цитата дома объединяются в рамках объекта Улица (свойство - Название) на основе упорядоченного массива. Упорядоченного по какому признаку?Во вторых - код совершенно нечитаемый, поскольку ты не воспользовалась подсветкой (выпадающий список CODE) |
medvedeva |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 4 Пол: Женский Репутация: ![]() ![]() ![]() |
|
medvedeva |
![]()
Сообщение
#4
|
Группа: Пользователи Сообщений: 4 Пол: Женский Репутация: ![]() ![]() ![]() |
код пыталась отредактировать, но чёт не получилось, судя по сообщению..
Сообщение отредактировано: medvedeva - 29.06.2011 16:42 |
IUnknown |
![]()
Сообщение
#5
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Возможно все... В первом приближении - вот так:
... (Показать/Скрыть)
|
medvedeva |
![]()
Сообщение
#6
|
Группа: Пользователи Сообщений: 4 Пол: Женский Репутация: ![]() ![]() ![]() |
ничего себе... спасибо огромное! для начала вот с этим всем разберусь, потом.... раньше делала всё в консольке, поэтому было проще... надо в оконном виде... буду думать теперь что положить на форму и потом уже описывать методы и всё остальное... но чёт пока каша, если честно... но уже спасибо=)
|
snejinka |
![]()
Сообщение
#7
|
Группа: Пользователи Сообщений: 4 Пол: Женский Репутация: ![]() ![]() ![]() |
вопрос по этой же теме... запись использовать нельзя... только классы... как тогда?
|
IUnknown |
![]()
Сообщение
#8
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не поверишь, достаточно заменить Record на Class и описать конструктор:
type, функция Apt больше не нужна. Но потребуется внести еще два изменения: 1) заполнение очереди теперь надо делать так: with Hs_02 do2) деструктор очереди примет вот такой вид: destructor TQueue.Destroy; А вообще мне очень не нравится, когда начинают накладывать ограничения. Задача сделать это на Дельфи? Какие могут быть "... использовать нельзя"? Всё, что доступно в языке, должно использоваться. Иначе тут же начинается изобретение костылей из-за ограничений вместо собственно решения задачи. Вот зачем, спрашивается, делать Apts классом? Просто чтобы было? Чтобы "крутое ООП" реализовать, ни шагу без классов? Смысла в этом ровно ноль. С записями я могу не беспокоиться об удалении из кучи, ибо записи там не создавались. В случае классов я должен еще и следить за тем, чтобы где-то в другом месте (вдруг мне понадобится удалить элемент из очереди не в ее деструкторе?) не было утечки. Кому нужна эта лишняя головная боль? Сообщение отредактировано: IUnknown - 2.07.2011 11:04 |
Гость |
![]()
Сообщение
#9
|
Гость ![]() |
Кому нужна эта лишняя головная боль? эта головная боль нужна преподу, который походу других примеров просто не знает... он зациклился на этих домах, улицах.... я считаю, что вообще этот пример по очереди не подходит.... потому что много всяких ньюансов... но, БИк ЗУР РАХМАТ ![]() |
Гость |
![]()
Сообщение
#10
|
Гость ![]() |
простите конечно, но я опять к этой теме... на препода слов уже нет... мне надо было показать ему описание классов с этими домами и очередями... я ему скинула
на что получаю вот что: 1. Описание классов - отдельный модуль (один или несколько) 2. Класс Квартира: это не класс, а какое-то недоразумение! 3. Зачем вводить второе имя: TQItem = Apts; 4. Имена классов, свойств и методов должны быть содержательными: никаких Queue, Container и т.д. 5. Где метод удаления из списка и методы работы с файлами? |
IUnknown |
![]()
Сообщение
#11
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата на что получаю вот что: Я бы ответил вот так:1. Описание классов - отдельный модуль (один или несколько) 2. Класс Квартира: это не класс, а какое-то недоразумение! 3. Зачем вводить второе имя: TQItem = Apts; 4. Имена классов, свойств и методов должны быть содержательными: никаких Queue, Container и т.д. 5. Где метод удаления из списка и методы работы с файлами? 1. Описание классов НЕ ОБЯЗАНО быть в отдельных модулях, нечего "размазывать" эти несколько строк по десятку файлов. 2. Класс Квартира тут вообще не нужен, тут вполне достаточно Записи, если кто-то требует использования классов там, где они не нужны - то пускай он не удивляется недоразумениям. (Справедливости ради я бы все-таки добавил конструктор, я показывал как именно в посте №8) 3. Вот хочу и ввожу. Чем дополнительное имя помешало? Память при описании типа не выделяется, что не так? Не понимаем - значит "плохо"? Я захочу проверить, как работает очередь с целыми числами - присвою TQItem = Integer, и пускай компилятор мне скажет, где что надо поправить, а не буду ползать по программе и искать, "а где же тут еще надо заменить Apts на Integer"... Это называется "абстрагирование", если что. 4. Имена более чем содержательные: Queue - она и в Африке "Очередь", и если что-то делает работу Очереди, то оно должно называться TQueue, а не Ochered, и не TutBudutZapisaniUlicy... Собственно, TContainer по той же причине. Это именно контейнер (подними глаза на название темы: "Контейнер на базе очереди", и TQueue/TCOntainer, оказывается, несодержательны... Бред...) 5. Добавь - будет... Я программу "под ключ" делать не собираюсь. Во-первых - потому что это ТВОЕ задание, а во-вторых - Дельфи под Debian-ом почему-то не очень работает. Ты не в курсе, почему? ![]() |
Гость |
![]()
Сообщение
#12
|
Гость ![]() |
Ты покажи, что сделано самостоятельно, что пыталась, что не получилось. Поможем исправить... вот что получилось, думаю не хватает многого...
|
![]() ![]() |
![]() |
Текстовая версия | 7.07.2025 22:59 |