На PORTA.ru
ОГРОМНЫЙ выбор портативной техники:
MD-плееры CD-плееры MP3-плееры Кассетные плееры Диктофоны Радио Цифр. камеры Сотовые Дешевые ноутбуки |
||
Алгоритм равномерного распределения суммы на 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 |