13 / 13 / 2
Регистрация: 31.03.2013
Сообщений: 107
|
||||||
1 | ||||||
Объясните, как в данном примере функционирует работа операторов24.09.2014, 13:09. Показов 2075. Ответов 5
Метки нет (Все метки)
Всем доброго времени суток. У меня такoй вoпрос не могу понять как в данном примере функционирует работа split 2,FN$abc,4, и как происходят прыжки по блокам.
Кликните здесь для просмотра всего текста
Текст задачи: Кликните здесь для просмотра всего текста
Мастерская по наладке устройств получает задания каждые a мин. Устройство состоит из трех частей. Бригада ремонтников (3 чел.) после получения устройства в течение (5 2) мин разбирает его на части, и каждый из рабочих занимается своей частью в течение b мин. Затем части отправляются на тестирование, а бригада берется за новое устройство, но только после отправки всех трех частей. Тестирование занимает по c мин. на часть, после чего устройство собирают в течение (6 3) мин и отправляют на склад.
Разработать имитационную программу для анализа процесса работы мастерской в течение дня (две смены). Предложить способы повышения эффективности работы ремонтников.
0
|
24.09.2014, 13:09 | |
Ответы с готовыми решениями:
5
Объясните, как в данном примере работает friend Объясните на данном примере как работать с композицией Объясните, как в данном примере работают виртуальные функции? Объясните работу с интерфейсами в данном примере |
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
24.09.2014, 17:41 | 2 |
Сообщение было отмечено Dukalys как решение
РешениеКод
Описание Блок SPLIT выполняет функцию копирования входящего в него транзакта, который называется исходным или порождающим. Формат SPLIT <A> ,[<B>],[<C>] В поле А задается число создаваемых копий. Если вычисленное значение аргумента поля А равно нулю, то блок SPLIT не выполняет никаких операций. После создания копий транзакт пытается перейти к следующему по номеру блоку. Все копии формируются в момент входа порождающего транзакта в блок SPLIT. Поле В задает номер следующего блока, к которому переходят копии исходного транзакта, причем значение вычисляется для каждой копии отдельно. В поле С может быть задан номер параметра, используемого для присвоения копиям последовательных номеров. Если, например, задан параметр j, то j-му параметру исходного транзакта и n - копиям этого транзакта будут присвоены значения, как показано ниже. Пусть Х - входное значение параметра j, тогда значение параметра j первой копии равно Х+1, второй копии - Х+2, третьей копии - Х+3 и т.д. Помимо значений параметров в каждую копию записывается значение приоритета и отметка времени исходного транзакта. Копии поочередно поступают в список текущих событий, причем каждая копия помещается в конец соответствующего приоритетного класса. split 2,FN$abc,4 Входящая заявка делает две копии. Оригинал идёт ниже по программе, копии идут по пути, который разыгрывается функцией abc - то есть blocka b или с. В четвёртый параметр записывается значение 0 для оригинала 1 для 1ой копии 2 для второй. И тут интересный момент а что раньше? 1. вычисляется путь, который зависит от параметра 4 (p4 смотреть функцию abc) или же 2. сначала вычисляется p4 а потом вычисляется путь? Разница огромная в первом случае p4 = 0 и функция будет возвращать всегда самое первое значение, Либо вообще ругаться на отсутсвие значения параметра 4. Во втором случае функция вернёт нормальную метку blocka blockb или с. Добавлено через 1 минуту Судя по результатам моделирования работает вариант 2, очень интересно. Возьму на вооружение. Код
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 60 0 0 2 ADVANCE 60 5 0 3 TEST 55 0 0 4 SAVEVALUE 55 0 0 5 SPLIT 55 0 0 BLOCKA 6 SEIZE 55 0 0 7 ADVANCE 55 1 0 8 RELEASE 54 0 0 9 SAVEVALUE 54 0 0 10 ADVANCE 54 0 0 11 TRANSFER 54 0 0 BLOCKB 12 SEIZE 55 0 0 13 ADVANCE 55 0 0 14 RELEASE 55 0 0 15 SAVEVALUE 55 0 0 16 ADVANCE 55 0 0 17 TRANSFER 55 0 0 BLOCKC 18 SEIZE 55 0 0 19 ADVANCE 55 1 0 20 RELEASE 54 0 0 21 SAVEVALUE 54 0 0 22 ADVANCE 54 0 0 23 TRANSFER 54 0 0 SBORKA 24 ASSEMBLE 163 1 0 25 ADVANCE 54 0 0 26 TERMINATE 54 0 0 27 GENERATE 2 0 0 28 TERMINATE 2 0 0
1
|
13 / 13 / 2
Регистрация: 31.03.2013
Сообщений: 107
|
|
24.09.2014, 19:49 [ТС] | 3 |
Скажите, а почему, когда идёт розыгрыш куда пойдут, копии ни разу не идут в block a, ведь он также описан в функции abc. И про 4 параметр - это как бы индекс массива ( если я правильно вас понял), и по этому индексу выбирается параметр функции abc p4?
0
|
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
24.09.2014, 20:05 | 4 |
параметр это никакой не индекс. у каждой заявки в системе есть параметры ( у каждой заявки может храниться своё значение в параметре). 4 - это просто номер этого параметра, можно хоть 1 использовать, хоть имя.
сейчас дополнил модель таблицами и результат следующий, значения P4 принимают значения ТОЛЬКО 1 2 3, я так понимаю =1 оригинал =2 1я копия и =3 вторая копия.
1
|
13 / 13 / 2
Регистрация: 31.03.2013
Сообщений: 107
|
|
24.09.2014, 22:07 [ТС] | 5 |
Спасибо, понял
У меня теперь вопрос по таблице... у нас в методичке пример таблицы точно с такими же коэф. как и у вас TABLE Р$1,0,5,10 - Но не написано, что значит каждый параметр, но я на просторах интернета нашёл очень крутой справочник по командам с примерами (очень выручает)... Только вот про таблицы понял, что значит 10, а вот с остальными аргументами не понял в чём фишка ( пробовал менять пользы не принесло). Вот вырезка: Кликните здесь для просмотра всего текста
TABLE - определение таблицы.
Формат: num TABL[E] A,B,C,D,E num - номер таблицы; А - аргумент таблицы (-): IА - промежуточный интервал; RT - интенсивность прихода; В - верхняя граница нижнего интервала; С - ширина интервала; D - число интервалов; Е - интервал времени (только для RT-режима).
0
|
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
25.09.2014, 07:30 | 6 |
Сообщение было отмечено TopolM как решение
Решение
A - значение которое вносится в таблицу, в вашем случае значение 4 го параметра заявки
В - первое значение которое будет в таблице (минимум) С - элементарный интервал таблицы D - сколько всего интервалов содержит таблица Таким образом В-D задают диапазон или ширину таблицы
0
|
25.09.2014, 07:30 | |
25.09.2014, 07:30 | |
Помогаю со студенческими работами здесь
6
Объясните подробно , пожалуйста , каким образом работает цикл for на данном примере Пожалуйста объясните в чем состоит перегрузка операторов данном случае? Объясните использование "double" в данном примере Как мыслить в данном примере? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |