Форум: "Базы";
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];
ВнизЗаполнение таблицы Найти похожие ветки
← →
Aledo (2002-01-20 15:59) [0]Уважаемые мастера! Помогите решить проблему! Есть n-ое количество кусков стекла разных размеров, но подходящих под один критерий. В форме пользователь вводит: (Внимание!) количество кусков, их суммарный размер, количество кусков и суммарный размер после выполнения операций, выполняемые операции. Операции могут быть распика и расколка. Первая операция реализована, а во время второй стекло колется на несколько кусков. Задача: заполнить таблицу (Paradox) в соответствии с введенными данными. Каждая запись соответствует одному куску стекла до операции, т.е. количество записей должно соответствовать начальному кол-ву кусков. Кто подскажет как реализовать. Ответ прошу продублировать на e-mail!
← →
Фэ (2002-01-20 17:00) [1]Это не постановка задачи !
Это "кислое с пресным"..
← →
aledo (2002-01-20 19:00) [2]Я попытался описать то, что должно быть! Если что-то надо дополнить - напишу приватно, на e-mail.
← →
Aledo (2002-01-20 23:09) [3]Попытаюсь объяснить, что я хочу: есть (условно) таблица Paradox с полями Начальный размер, Количество после операции, Размер после операции. Пользователь вводит в форме вид операции, количество кусков начальное, суммарный размер ачальный,количество кусков после операции, суммарный размер после операции. Так вот, в каждой записи в соответствующих полях должны заносится данные для одного куска. Т.е., если нач. кол-во кусков 100, то и записей должно быть 100. А вот конечное количество может быть больше. Таким образом, в каждой записи таблицы необходимо генерировать размер куска до операции, размер кусков после операции и количество кусков после операции. Причем в сумме последние два параметра должны соответствовать вводимым. Как это решить? Приветствуются все конструктивные мысли! Прошу прощения у Фэ, если был резок.
← →
Desdechado (2002-01-21 11:27) [4]все одно ничего не понятно:
- или все слишком просто, тогда нет проблем;
- или все слишком сложно, тогда объяснение не то (похоже на попытку автора пропустить задачу через свое понимание, что приводит к сумбуру).
← →
Delirium (2002-01-21 14:20) [5]Может быть имеется в виду древовидная структура?
Т.е. из одного куска получается несколько с указанием к какому они принадлежали?
Что-то типо такого:
id name idParent
--------------------
1 Кусок null
2 Кусок2 null
3 Кусок3 1
4 Кусок4 1
5 Кусок5 2
6 Кусок6 2
← →
Фэ (2002-01-21 20:10) [6]К автору !
Уйди вообще от баз данных, Делфи и программирования.
Расскажи о технологических действиях с кусками стекла.
Пример.
Привез грузовик стекло 5-ти(6,7,..n) типоразмеров.
Есть дом-объект, где m-типоразмеров оконных рам.
Как наилучшим образом (с мин. отходами) распилить(колоть)
привезенное стекло и распределить по рамам.
← →
Aledo (2002-01-21 20:10) [7]>Delirium ©
Да, именно так. Из одного кускаполучается несколько. Для них в той же записи необходимо ставить количество и сумму размеров. Для меня сложность в том, что:
1. Надо генерировать в каждой строке размер и количество после операции. С генерацией проблем нет, но есть в
2. Общее количество и общий вес не должны превышать заданного.
примерно таблица:
Нач_кол-во | Нач_размер | Кол-во после операции | Размер после операции|
---------------------------------------------------------------
1 | 12 | 5 | 11
1 | 12.5 | 3 | 12
---------------------------------------------------------------
2 24.5 8 23
Низ вводит пользователь. Таблицу заполняет машина. Как это увязать? Нужен алгоритм и возможно пример кода.
Премного благодарен за участие.
P.S. Заполнение таблицы в принципе я реализовал через Randomize. Но суммарные значения надо ограничить!
Александр.
← →
Aledo (2002-01-21 23:47) [8]> Фэ ©
Ну хорошо, попробую еще раз.
Привез грузовик объемом V на базу n стекол одного типоразмера в лотках.
На базе их пилят на на n/b частей и получают m стекол объемом V1. Как разместить распиленные стекла в тех же лотках на том же грузовике оптимальным образом. :).
← →
Фэ (2002-01-22 00:18) [9]Если они размещались до распиловки, то и после распиловки они разместяться.
Все равно сумбур.
Если есть N стекол общим объемом V
Средний объем Vmid := V/N;
Задаемся вариацией объема при распиловке Vv := 0.1;
Генерим для каждого куска свой объем V[i]
for i:= 0 to N-2
{ V[i]:=Vmid(1 + Vv*(2*Random-1);
s:=s+V[i];
}
V[N-1] := V-s; // этим самым попадаем точно в объем V
Таким же образом генерим число разрезов P[i] для каждого стекла.
Принимаем потерю объема на каждый разрез Vd
Размер стекла после операции равен
Vp[i] := V[i] - Vd*P[i];
Кстати, если размер стекла после операции однозначно связан с размером до операции и числом операций,то не может задаваться оператором.
В противном случае, генеришь таким же образом потери на операции.
← →
Aledo (2002-01-22 00:30) [10]Спасибо, это уже что-то.
Может еще кто что-либо предложит.
P.S. Самое смешное, для меня, я реализовал подсчет размеров. Но произвольно, без "подгона" под требования пользователя. Пользовался RanG. Думаю как "подогнать", а мастера всегда дадут дельный совет ;) !
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.004 c