Форум: "Базы";
Поиск по всему сайту: 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.024 c
7-42886           amamed_3071           2001-11-09 13:41  2002.02.14  
Как Форму сохранит в DLL


14-42830          DieMan                2001-12-23 20:50  2002.02.14  
Russian Help


1-42750           IronHawk              2002-01-29 16:44  2002.02.14  
Как правильно создать fsMDIChild ФОРМУ


3-42654           Do№                   2002-01-16 22:02  2002.02.14  
Как игнорировать ошибку при открытии БД


3-42672           RealyGrey             2002-01-15 13:21  2002.02.14  
Немогу законнектиться в оракловскую базу. Мистика!!