Программа составления расписания, подскажите алгоритм |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Программа составления расписания, подскажите алгоритм |
Chester |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 11 Репутация: 0 |
Решать задачу за меня никого не прошу, прошу помочь ;) и вообще пора переходить на обсуждени есложных программ
Программа не из легких, мне кажется. Итак, есть список преподавателей (1 препод. ведет 1 предмет), классов. Условия: есть максимальное кол-во часов в которое учитель может работать с таким-то классом в неделю, ограничения по дням недели (может работать только во вторник, или ,например, все дни кроме среды), кол-во часов которое он может работать в одном классе в день (пусть например, 2). ну там конечно еще условий дофига, но я хотел бы чтобы мне сначала посоветовали, как делать это. Жду идей Сообщение отредактировано: Chester - |
trminator |
Сообщение
#2
|
Четыре квадратика Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: 4 |
Возможно, пройдет метод на динамическом программировании. Будет рекурсивная процедура примерно такого плана:
Код procedure make_shed; if возможно добавить предмет (есть время в учебном плане) then for i := 1 to n do if i-й учитель свободен в первый же незанятый день, begin добавить этого учителя (точнее, его предмет) make_shed; убрать этого учителя, чтобы попытаться сунуть другого end; else получено расписание -- выйти из всех этих процедур end; Фактически тут идет полный перебор всех вариантов =( А массив с расписанием, может, сделать плоским? (то есть примерно как расписание, которое в школе висит -- двумерная матрица, а не трехмерная =) ) -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
Текстовая версия | 23.05.2024 12:39 |