Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.078 c
3-42703
Sergant
2002-01-22 12:29
2002.02.14
Досуп к базам Btrieve


3-42675
Aledo
2002-01-20 15:59
2002.02.14
Заполнение таблицы


1-42807
Potemkin
2002-01-31 14:42
2002.02.14
FastReport


1-42763
DEPROL
2002-01-31 09:38
2002.02.14
Install Delphi5 for Win2k


7-42877
yuger
2001-11-02 10:16
2002.02.14
Программное включение/выключение устройства из конфигурации





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский