PORTA.ru - on-line магазин ПОРТАтивной техники.PORTA.ru - on-line магазин ПОРТАтивной техники.

Новости
Мои разработки
FAQ
Ссылки
Форум

Алгоритм равномерного распределения суммы на n-значений с заданной точностью.

Процедура Сформировать()
     // сумма, которую нужно распределить
     Сумма=100;           Если ВвестиЧисло(Сумма,"Сумма",10,0)=0 Тогда     Возврат     КонецЕсли;
     // количество позиций, по которым нужно равномерно распределить сумму
     Количество=31;     Если ВвестиЧисло(Количество,"Количество",10,0)=0 Тогда     Возврат     КонецЕсли;
     // требуемая точность
     Точность=2;          Если ВвестиЧисло(Точность,"Точность",10,0)=0 Тогда     Возврат     КонецЕсли;
     // сам алгоритм
     ПрошлыйРезультат=0;
     СреднееЗначение=Сумма/Количество;
     Сум=0; // для проверки, в оригинале строка не нужна
     Для к=1 По Количество Цикл
          ПромежуточныйРезультат=Окр(СреднееЗначение*к,Точность);
          Результат=ПромежуточныйРезультат-ПрошлыйРезультат;
          Сообщить(""+к+": "+Результат);          
          
ПрошлыйРезультат=ПромежуточныйРезультат;
          Сум=Сум+Результат;      // для проверки, в оригинале строка не нужна
     КонецЦикла;     
     
Сообщить("Сумма "+?(Сум=Сумма,"распределилась","не распределилась")+": "+Сум,?(Сум=Сумма,"i","!"));
КонецПроцедуры

<сообщил кук>

- Наверх -

В качестве благодарности за решение проблемы, щелкните здесь.
Поддержите развитие сайта.
Спасибо!
Автор и разработчик: Кайгородов Андрей aka mszsuz. mszsuz@online.sinor.ru ICQ#33993114. Дата последнего обновления страницы: Friday 09.04.2004 16:52
1C:TOP-100 Рейтинг ресурсов 1С
Hosted by uCoz