|
64 / 40 / 10
Регистрация: 12.11.2010
Сообщений: 841
|
|
Распределение по StringGrid18.11.2013, 18:55. Показов 1063. Ответов 18
Метки нет (Все метки)
Всем доброго времени суток. Есть следующая задача: даны промежутки времени и есть StringGrid (в шапке прописываю числа) промежутков времени рандомное количество. Нужно так их распределить в StrinGrid что бы они не накладывались друг на друга (строк фиксированное количество). Т.е. вот как на рисунке:
Заранее извество что их можно расположить без накладок друг на друга
0
|
|
| 18.11.2013, 18:55 | |
|
Ответы с готовыми решениями:
18
Вывести данные из StringGrid-ов на двух формах в StringGrid на третьей форме Как соединить StringGrid с другим StringGrid (Rad xe8) Сохранение из StringGrid массива в файл и загрузка из файла в StringGrid |
|
|
|
| 18.11.2013, 21:00 | |
|
у самого стоит такая задача, только у меня:
1) заранее известный интервал времени год текущий и будующий 2) строк не фиксированное кол-во строк, а динамическое 3) необходимо выводить пересечение временных интервалов на данном этапе думаю как это решать, в чем хранить данные и т.д. P.S. раз появился единомышленник думаю начну решать сегодня...
1
|
|
|
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
|
||
| 19.11.2013, 06:35 | ||
|
но тогда непонятно в чем проблема, раз известно что их можно расположить без накладок, т.е. делаем друг за другом и все. если же все-таки задаются как начало-конец, то тоже непонятно, что мы можем двигать? поясните.
1
|
||
|
64 / 40 / 10
Регистрация: 12.11.2010
Сообщений: 841
|
|
| 19.11.2013, 07:57 [ТС] | |
|
AntonChik, мы можем по строкам вверх вниз перемещать. И там начало и конец задаётся
0
|
|
|
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
|
|
| 19.11.2013, 08:01 | |
|
1
|
|
|
64 / 40 / 10
Регистрация: 12.11.2010
Сообщений: 841
|
|
| 19.11.2013, 08:02 [ТС] | |
|
AntonChik, ну если допустим пересекаются на первой строчке то необходимо спустить на строку ниже.
0
|
|
|
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
|
|
| 19.11.2013, 08:15 | |
|
"в одной строке один промежуток" это неверно?
т.е. промежутки не должны пересекаться в пределах одной строки? и надо разложить в минимальное число строк?
1
|
|
|
64 / 40 / 10
Регистрация: 12.11.2010
Сообщений: 841
|
|
| 19.11.2013, 10:01 [ТС] | |
|
нет строк строго ограниченное количество а промежутков времени неогшраниченное количество, но их можно расположить по этим строкам без пересечений
0
|
|
|
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
|
|
| 19.11.2013, 10:08 | |
|
требований к алгоритму нет?
а то может и brutal force сгодится) вообще задачка интересная, надо будет подумать, деревце строить... выращивать точнее.
1
|
|
|
64 / 40 / 10
Регистрация: 12.11.2010
Сообщений: 841
|
|
| 19.11.2013, 10:14 [ТС] | |
|
AntonChik, ну вот только на метод "грубой силы" и думаю
0
|
|
|
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
|
|
| 19.11.2013, 10:24 | |
|
ну это крайний вариант.
тут стоит попробовать решить рекурсивно. написать процедуру на вход которой передаются расставленные промежутки с указанием, в какую строку они помещены, и нерасставленные промежутки. процедура должна будет проверить не найдено ли уже решение (это если нерасставленных 0) иначе перебрать в цикле нерасставленные промежутки и попытаться каждый вставить в каждую строку, в случае успеха вставки вызывая себя рекурсивно. что скажете?
1
|
|
|
|
|
| 19.11.2013, 20:57 | |
|
сравнить интервалы времени нельзя?
каждая строка - интервал времени... вопрос в том как этот интервал считать... можно сперва создать небольшой "календарик" по дате закрытия строки (промежуток)... если в двух словах дата начала или конца не должна попадать в новый временной интервал!... P.S. временные переменные если не ошибаюсь можно сравнивать так же как и обычные числа Добавлено через 11 минут есть такие команды как: StrToDate, DateToStr Добавлено через 5 минут ну если совсем туго то ВОТ
1
|
|
|
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
|
||
| 20.11.2013, 11:23 | ||
|
алгоритм я предложил, реализовывать самому нет времени, далее могу только дать пояснения или подсказки.
1
|
||
|
64 / 40 / 10
Регистрация: 12.11.2010
Сообщений: 841
|
|
| 20.11.2013, 15:47 [ТС] | |
|
Всё сделал решение. Получается выстраиваю цепочки из этих промежутков с пометкой в какую строку буду заносить, после того как это сделано просто не задумываясь вношу их в StringGrid и всё. Всем спасибо за участие.
0
|
|
|
|
||||
| 20.11.2013, 21:38 | ||||
|
Добавлено через 1 минуту
1
|
||||
|
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
|
||
| 21.11.2013, 05:33 | ||
|
а простое сравнение(хотя непонятно что подразумевается под простым) не поможет, т.к. возникнут варианты и все их надо будет рассмотреть, т.е. без тупого перебора или умной рекурсии не обойтись.
1
|
||
|
|
|||
| 21.11.2013, 17:36 | |||
|
два отрезка лежащие на одной прямой не пересекаются если координаты конца и начала одного отрезка не лежат между координатами начала и конца другого! что тут трудного-то? по условию как он и сказал даны случайные временные рамки, которые отображены по столбцам, они и используются при задании интервалов и заполнения таблицы, значит у нас есть: x1, x2 - координаты начала отрезков наших y1, y2 - координаты конца и сравнив их мы получим наше решение!!
0
|
|||
|
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
|
||||
| 22.11.2013, 05:14 | ||||
|
вообще вся суть в расстановке, не знаю что вы так привязались к сравнению.
0
|
||||
|
|
|||
| 25.11.2013, 17:21 | |||
|
0
|
|||
| 25.11.2013, 17:21 | |
|
Помогаю со студенческими работами здесь
19
Возможность вручную писать данные в ячейки StringGrid и заполнение ячеек StringGrid данными из файла после нажатия кнопки
Delphi 7 Stringgrid Нужно сделать цикл для заполнения Stringgrid данными из другого Stringgrid Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит значение перечислений.
/ / Событие "НачалоВыбора" реквизита на форме. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|