Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Центр помощи > Написать программу в Delphi на задачу |
Автор: Миринда 1.5.2013, 12:54 |
Сможет ли кто-нибудь мне помочь. Задача на моделирование систем. Детали, необходимые для работы цеха, находятся на цеховом и центральном складах. На цеховом складе хранится 20 комплектов деталей, потребность в которых возникает через 60 ± 10 мин и составляет один комплект. В случае снижения запасов до трех комплектов формируется в течение 60 мин заявка на пополнение запасов цехового склада до полного объема в 20 комплектов, которая посылается на центральный склад, где в течение 60 ± 20 мин происходит комплектование и за 60 ±5 мин осуществляется доставка деталей в цех. Смоделировать работу цеха в течение 400 ч. Определить вероятность простоя цеха из-за отсутствия деталей и среднюю загрузку цехового склада. Определить момент пополнения запаса цехового склада, при котором вероятность простоя цеха будет равна 0. Надо написать программку на Delphi. |
Автор: Mirkes 1.5.2013, 19:52 |
В чем проблема? Запускаете процесс моделирования. В начальный момент времени вычисляете время возникновения потребности в детали по формуле t:=50+round((random()-0.5)*20) пропускаете время t. вычисляете цледующее время по той же формуле и вперед. Сформулируйте что у вас не получается. |
Автор: Миринда 15.5.2013, 22:12 |
Здравствуйте! Ну вот, наконец-то, то задание, которое я выкладывала, вроде бы готово, но преподаватель меня не оставляет в покое по поводу такого момента в работе программы, она при пороговом значении 3 считает время простоя равным нулю, а препод утверждает, что не может быть нулевое время простоя. Оно будет небольшим, но будет. Подскажите что и как можно изменить в моей программке чтобы время простоя и вероятность простоя цеха не была равной нулю ? |
Автор: Mirkes 16.5.2013, 21:18 |
Ведите протокол моделирования ![]() Рассмотрим вашу ситуацию Со склада забрали 17 комплект. Осталось 3 Считаем это время за Т0. Сначала цех. Цех потребует новую деталь через 50-70 минут. Потом еще через 50-70 и еще через 50-70 и наконец еще через 50-70 минут возникнет потребность, которую вы не сможете удовлетворить и начнется простой. Таким образом от момента снижения запасов до 3 комплектов до момента простоя проидет от 200 до 280 минут Теперь поставки. Формирование заявки 60 минут Формирование поставки 40-80 минут Доставка 55-65 минут Таким образом от момента снижения запасов до 3 комплектов до момента возобновления запасов пройдет от 155 до 205 минут Вообще говоря преподаватель прав, но только отчасти: простой может возникнуть, но не более чем на 5 минут за большой цикл (я имею в виду пополнение склада) и с довольно маленькой вероятностью. Вы моделируете 400 часов. Это всего около 25 больших циклов. Как ответ преподавателю - запустите на моделирование не 400 часов а 4000 часов Выведите в файл протокол моделирования с момента снижения запасов до момента доставки комплектов на склад. Кстати это поможет вам понять нет ли у вас ошибки ![]() Предложите удвоить время формирования заявки - тогда простой почти гарантирован каждый раз. |
Автор: Миринда 17.5.2013, 21:48 | ||||||||||
Почти всё поняла до определенного момента.
Как вы высчитали эти 5 минут и 25 циклов ?
|
Автор: Миринда 19.5.2013, 20:11 | ||||
Здравствуйте.
Я уже совсем запуталась, каша в голове. Времени на долгие раздумья у меня совершенно нет, поэтому просто взяла да присвоила времени простоя случайное число от 1 до 6, полученное Random-ом, которое влияет на расчет вероятности простоя. Да вот что-то не всегда вероятность получается от 0 до 1. Буквально через раз вычисляется то "4", то "8". Добавила лишь эти строчки:
Может не туда их прописала? |
Автор: Mirkes 20.5.2013, 20:38 |
К сожалению у меня нет под рукой паскаля. Не совсем понял про вероятность. В паскале две принципиально разные функции получения случайного числа, причем имя у них одно. Если вы пишете i:=Random(6); то вы просите ЦЕЛОЕ число от нуля до 5. Если вы пишете i:=Random(); то вы просите ДЕЙСТВИТЕЛьное число в диапазоне от 0 до 1. |