Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 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. Думаю как "подогнать", а мастера всегда дадут дельный совет ;) !




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.74 MB
Время: 0.023 c
3-42661           Net_DAN               2002-01-21 10:57  2002.02.14  
Не выгружается серверная часть


14-42837          XM-AD                 2001-12-23 11:14  2002.02.14  
Подскажите, что и в какой последовательности запускать!?


4-42903           ADM                   2001-12-13 06:52  2002.02.14  
Звук!!!!!


3-42670           Mikhail               2002-01-18 21:42  2002.02.14  
Ответте хоть ради смеха...


14-42871          creepster             2001-12-19 18:54  2002.02.14  
CGI