|
Придумал алгоритм подсчета отходов погонных материалов. Куда выложить исходник? | ☑ | ||
---|---|---|---|---|
0
YaroslavStr
10.07.13
✎
16:10
|
Привет.
Придумал алгоритм подсчета отходов погонных материалов. Куда выложить исходник? Просто, думаю, кому-нибудь пригодится... |
|||
1
YaroslavStr
10.07.13
✎
16:10
|
Может кто потестит...
|
|||
2
Ненавижу 1С
гуру
10.07.13
✎
16:11
|
расскажи на словах идею
|
|||
3
acsent
10.07.13
✎
16:15
|
на инфостарт
|
|||
4
drcrasher
10.07.13
✎
16:15
|
(0) разницу в словах "алгоритм" и "исходный код" видишь?
алгоритм - сюда, исходники - в дроп, гугл, ядиск, гитхаб |
|||
5
drcrasher
10.07.13
✎
16:15
|
ну или в (3)
забыл про него совсем |
|||
6
YaroslavStr
10.07.13
✎
16:16
|
Есть список деталей: ТЧ с колонками: Длина, Количество. Все это на форме документа. При внесении новой детали происходит вызов глобальной функции. В неё перед вызовом выгружается ТЗ со списком деталей (свернув перед этим) и Материал.длина в качестве параметров функции.
Возврат ТЗ со списком отходов. Плюс в глобальную переменную глКоличествоПолныхДлинМатериала записывается количество полных длин этого материала, который понадобится при раскрое. |
|||
7
YaroslavStr
10.07.13
✎
16:17
|
Можно было через Массивы и Структура, но до них у меня руки не дошли.
|
|||
8
YaroslavStr
10.07.13
✎
16:18
|
(3) За Инфостарт забыл, что то...
|
|||
9
acsent
10.07.13
✎
16:20
|
(6) глобальная переменная? в топку твой алгоритм
|
|||
10
Ненавижу 1С
гуру
10.07.13
✎
16:21
|
(6) Давай так:
1. что дано 2. что найти 3. описание решения сначала можно п.1 и п.2 только, но внятно |
|||
11
mikecool
10.07.13
✎
16:21
|
(6) это не алгоритм
|
|||
12
YaroslavStr
10.07.13
✎
16:25
|
1. Дано на документе в ТЧ список деталей (алюминиевый профиль):
1200 3 600 5 450 1 2. При порезке такого погонного материала надо вычислить возможные отходы для того, что пользователь мог их продать или не продать, в зависимости от того какова их длина и количество. А также по какой цене: если длина отходов мала и количество небольшое, то по продажной цене, а если длина отходов велика или велико их количество, то продать по цене себестоимости. |
|||
13
YaroslavStr
10.07.13
✎
16:26
|
(11) Прости, не так выразился. Я в курсе что такое алгоритм.
|
|||
14
YaroslavStr
10.07.13
✎
16:27
|
В коде расписан весь алгоритм в виде комментария
|
|||
15
YaroslavStr
10.07.13
✎
16:27
|
//*****************************************************************************************
//Перед обработкой строки проверим есть ли в списке отходы. Если нет - берем целые столешни //***************************************************************************************** НаличиеОтходовВСписке = 0; Если ТЗОтходы.Количество() >= 1 Тогда НаличиеОтходовВСписке = 1; //Сообщить("В базе: "+ТЗОтходы.Количество()+ " строк с отходами!"); Иначе НаличиеОтходовВСписке = 0; //Сообщить("В базе нет строк с отходами!"); КонецЕсли; Если НаличиеОтходовВСписке = 1 Тогда ШагКоличествоДеталей = 1;//переменная обозначающая количество деталей. Если количество данной детали больше или равно единицы ///******************************************************************* //цикл для обхода всех деталей и проверки их с наличием в базе отходов КоличествоОтобранныхКусков = 0;//количество деталей для которых в разных отходах нашлось свободное место для их порезки Пока (ШагКоличествоДеталей+КоличествоОтобранныхКусков) <= ТекСтрокаИзДетали.Количество Цикл //надо вычислить влезет ли деталь на наибольший отход в списке отходов //******************************************************************** ТЗОтходы.Сортировать("Длина Убыв"); |
|||
16
YaroslavStr
10.07.13
✎
16:28
|
И далее в таком же духе, только комментарии по плотнее будут :)
|
|||
17
YaroslavStr
10.07.13
✎
16:31
|
(12) При каждой новой детали или изменении количества уже введенной, изменяется вид и количество отходов (динамично). То есть при каждом изменении ищется максимально выгодный раскрой.
|
|||
18
samozvanec
10.07.13
✎
16:32
|
(17) тот, кто режет, имеет тот же алгоритм по нахождению оптимального раскроя?
|
|||
19
YaroslavStr
10.07.13
✎
16:33
|
Да, он печатается на листке. Сам раскрой делается в другой программе. Я написал аналог, так как программа стара как мир, но работает на ура. При сравнении результат одинаковый.
|
|||
20
YaroslavStr
10.07.13
✎
16:35
|
(12) Функция универсальна, так что её можно использовать для любых погонных материалов любой длины.
|
|||
21
YaroslavStr
10.07.13
✎
16:36
|
Видимо придется написать обработку, что смогли потестировать
|
|||
22
vde69
10.07.13
✎
16:37
|
(17) прикинем, есть 10 заготовок по 6 метров,
надо скроить 1.5 м - 2шт 2 метра - 3шт 4 м - 2шт сколько твоя программа посчитает если вводить по порядку ? человек насчитает 3палки и остаток по 1 метру 2шт |
|||
23
shuhard
10.07.13
✎
16:42
|
(15) не взлетит
|
|||
24
vde69
10.07.13
✎
16:43
|
(22)+ точнее будет так
1. 2+2+2 = 6 2. 1,5+4 = 5,5 3. 1,5+4 = 5,5 два полуметровых отхода |
|||
25
vde69
10.07.13
✎
16:44
|
(24)или вот так
1. 2+4 = 6 2. 2+4 = 6 3. 1,5+1,5+4 = 5 один кусок в 1 метр |
|||
26
Klesk
10.07.13
✎
16:47
|
||||
28
YaroslavStr
10.07.13
✎
16:55
|
||||
29
YaroslavStr
10.07.13
✎
16:57
|
(26) Кстати, спасибо за формулы. Искал - не мог найти подобное...
|
|||
30
YaroslavStr
10.07.13
✎
16:58
|
(25) Это неправильно.
|
|||
31
vde69
10.07.13
✎
16:59
|
(28) вот видиш херня получается, правильное решение (25) когда останется ОДИН метровый кусок...
|
|||
32
vde69
10.07.13
✎
17:00
|
(30) почему? там в последней строке ошибка вместо 4 нужно читать 2
|
|||
33
YaroslavStr
10.07.13
✎
17:03
|
1. 2+4 = 6
2. 2+4 = 6 3. 1,5+1,5+4 = 7 а не 5 |
|||
34
YaroslavStr
10.07.13
✎
17:10
|
(25) Да ты прав. Теоретически оно должно было посчитать именно по второму варианту. Поищу в чем причина... Спасибо.
|
|||
35
assasu
11.07.13
✎
07:00
|
(0) в пластиковых заводах все это уже придумано. сам видел.
обсчет изделий, расчет резки, отправка на станок. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |