|
Задачка: в 1С Разбить число на примерно равные ЦЕЛЫЕ числа | ☑ | ||
---|---|---|---|---|
0
elena_schleht
28.06.13
✎
14:38
|
Нужно придумать механизм, который будет разбивать некую сумму на количество месяцев, так чтобы помесячные суммы были целыми числами т.е. без запятой.
Пример: сумма - 10000 кол-во мес. - 24 Итого: 10000=(16 раз по 417)+(8 раз по 416) Если же 10000 поделить на 24 месяца, то получим 416,6666666666667 в месяц. |
|||
1
Aprobator
28.06.13
✎
14:40
|
Деление с остатком.
|
|||
2
newfantom
28.06.13
✎
14:40
|
кури распределение затрат
|
|||
3
Aprobator
28.06.13
✎
14:41
|
*упал под стол*
|
|||
4
Alpen906
28.06.13
✎
14:41
|
Делим на цело на количество месяцев. Остаток прибавляем к последнему месяцу.
|
|||
5
kosts
28.06.13
✎
14:41
|
Всю сумму разделить на 24.
Округлить, присвоить первому месяцу. Уменьшить период на один. Перейти к первому шагу. |
|||
6
АнжелаДэвис
28.06.13
✎
14:42
|
кредитный калькулятор?
|
|||
7
elena_schleht
28.06.13
✎
14:43
|
(6) типо да ))
|
|||
8
Жан Пердежон
28.06.13
✎
14:44
|
FLOOR(1000/24) = 416
10000 - 416* 24 = 16 итого 16 * 417 + (24-16)* 416 |
|||
9
sda553
28.06.13
✎
14:46
|
Я эту задачку решаю всегда когда шторку на кючки вешаю
Решение, 1 отрезок Делим длину на количество отрезков, если дробная часть больше или равна 0.5 то округляем до верхнего иначе до нижнего 2 отрезок Делим оставшуюся длин (длина - первый отрезок) на (количество-1) если дробная часть больше или равна 0.5 то округляем до верхнего иначе до нижнего 3 отрезок Делим оставшуюся длин (длина - первый отрезок-второй отрещок) на (количество-2) если дробная часть больше или равна 0.5 то округляем до верхнего иначе до нижнего Последний отрезов =Длина-Все отрезки до последнего |
|||
10
acsent
28.06.13
✎
14:48
|
(4) не совсем так. Если 100 месяцев и остаток 49, то в последнем будет на 49 больше
|
|||
11
АнжелаДэвис
28.06.13
✎
14:49
|
(9) у шторки должны быть пришиты петельки для того, чтобы не решать каждый раз задачку
|
|||
12
NcSteel
28.06.13
✎
14:50
|
(0) В любой типовой есть необходимая процедура.
|
|||
13
NS
28.06.13
✎
14:54
|
Для а=0 по колво-1 цикл
дельта=окр(сумма/(колво-а),0); Сообщить(дельта); Сумма=Сумма-дельта; КонецЦикла; |
|||
14
sda553
28.06.13
✎
14:59
|
(11) Так в том то и дело - петелек 100 а крючков 37
вот и решай задачу о разбиении на примерно одинаковые 36 отрезков |
|||
15
acsent
28.06.13
✎
15:10
|
остаток нужно по единичке раскидывать по порядку или случайно можно
|
|||
16
elena_schleht
28.06.13
✎
15:13
|
(13) Вариант прикольный, но суммы не сортируются т.е. сначала идет 9 раз по 417 потом 416 и идет чередование 417 416
(15) по порядку сначала чуть больше потом чуть меньше |
|||
17
acsent
28.06.13
✎
15:14
|
(16) целыми же. Меньше 1 нельзя. И остатка на всех не хватит
|
|||
18
NS
28.06.13
✎
15:16
|
(16) А отсортировать это очень тяжело?
Если вместо окр() сделать цел() - то будут отсортированы. |
|||
19
NS
28.06.13
✎
15:16
|
Если нужно сначала больше, тогда цел(0.999999999999+)
|
|||
20
Serg_1960
28.06.13
✎
15:18
|
Жан уже дал ответ в (8) Об чём далее спорим? О смысле жизни без петелек на шторах?
"Общество, в котором нет цветовой дифференциации штанов, лишено цели"(Кин-дза-за) |
|||
21
Жан Пердежон
28.06.13
✎
15:18
|
кстати, фотки нет, зачем помогаем, что за беспредел?)
|
|||
22
Serg_1960
28.06.13
✎
15:20
|
Вот что пятница делает - совсем распоясались, приличия забыли. Без фотки - и помогают :)
|
|||
23
elena_schleht
28.06.13
✎
15:20
|
(21) от парни... Им ток фотку дай...
Вы только за фотки помогаете? )) |
|||
24
elena_schleht
28.06.13
✎
15:26
|
Может как нибудь позже и поставлю, если будете себя хорошо вести )))
Всем спасибо! Выбрала такое решение: Для а=0 по СрокКредитования-1 цикл ДатаНач = ДобавитьМесяц(ДатаНач, 1); НоваяСтрока = Объект.ГрафикПогашения.Добавить(); НоваяСтрока.Дата = ДобавитьМесяц(ДатаНач, -1); СуммаПлатежа = Цел(0.999999999999+Сумма/(СрокКредитования-а)); НоваяСтрока.СуммаПлатежа = СуммаПлатежа; Сумма=Сумма - СуммаПлатежа; КонецЦикла; |
|||
25
Aprobator
28.06.13
✎
15:30
|
|
|||
26
Aprobator
28.06.13
✎
15:31
|
хотя 1 цикл лишний. Остаток не может быть больше количества ОбъектовРаспределения.
|
|||
27
Lama12
28.06.13
✎
15:37
|
(0)А фотки так и нет.
И задача решена. Да и задача-от примитивная. :( |
|||
28
Aprobator
28.06.13
✎
15:41
|
(27) запишем долг на счет ТС.
|
|||
29
acsent
28.06.13
✎
15:42
|
последний цикл можно так
Для ИндексМассива = 1 По остаток Цикл |
|||
30
elena_schleht
28.06.13
✎
15:42
|
(28) за мной не заржавеет!
|
|||
31
acsent
28.06.13
✎
15:43
|
(28) через пару недель не поймешь что это такое
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |