Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на составление структуры данных
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
qwerty
Народ! Помогите плз!!!!

Есть небольшой клуб, где будет проходить концерт.
В связи с тем что клуб был реконструирован, его ряды имеют разное количество мест.Экономистам, которые будут продавать билеты на концерт, очень трудно запоминать билеты на какие места были проданы, а какие нет. Но в фирме плохо с финансированием, и вам был выделен компьютер Intel 8088 c 8 Kb ОЗУ. Как что вам надо написать программу так чтобы план зала занимал наименьшее места. Но конечная расстановка мест не известна, известно, что максимум рядов 100, а мест в ряде 30.

Ваша задача:
Составить структуру данных, которая будет хранить план зала используя минимум памяти. Не обязательно реализация её в коде, можно только подробное описание. Логически каждое место в зале может имеет два состояние ЗАНЯТО и СВОБОДНО. Исходя из этого, вам стоит составить программу.

Заранее спасибо.
Altair
(** мыслит про себя - volvo, а что если "треугольные", динамические матрицы?)

qwerty, в любом случае, подойдут динамические, прямоугольные матрицы.
FAQ: динамические матрицы.
volvo
Цитата(Oleg_Z @ 7.05.05 9:08)
а что если "треугольные", динамические матрицы?

Треугольные здесь не помогут - количество мест в ряду все-равно одинаковое...

Кстати, я бы в этом случае не смотрел в сторону матриц. Выигрыш тут может дать только список... :yes:
(или массив списков... или список списков... ) wacko.gif
Altair
Цитата
Треугольные здесь не помогут - количество мест в ряду все-равно одинаковое...

Если так тода, я думал это не обязательно.
Видел концертные залы не прямоугольные....
а вот список списков это интересно...
qwerty
Народ! Количество мест в ряду может быть разное!!! Но max=30.
Вариант с массивами вроде многовато памяти скушает.....
volvo
qwerty,
читать умеешь? "Список списков" тебе поможет...
qwerty
Да вроде еще не разучился...
Можешь поподробней по список списков?? :molitva:
volvo
Опиши 2 типа списков: один содержит информацию о посадочных местах, второй - о списках первого типа. Тогда у тебя памяти будет занято ровно столько, сколько необходимо на данный момент...

Нужно добавить купленный билет в каком-то ряду - идешь по списку РЯДОВ, проверяешь, есть ли он (т.е. был ли уже куплен в нем хотя бы один билет, до этого никакой информации о нем ты не хранишь, именно за счет этого и достигается экономия места). Если да, то добавляешь к найденному ряду еще одно место. Если нет - создаешь новый ряд и добавляешь в него место...
qwerty
СПАСИБО ОГРОМНОЕ ЧТО РАЗЪЯСНИЛ)))
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.