Ю. Карпов - Иммитационное моделирование систем с AnyLogic 5 (1124147), страница 26
Текст из файла (страница 26)
Условное выражение имеет вид: <условие>2 <енражение1>: <аыражение2> Часть !!. Средства Аллод!с для имитационного моделирования систем РЕЗуЛЬтатОМ УСЛОВНОГО ВЫражЕНИя яВЛяЕтСя равенна[, ЕСЛИ ЗНаЧЕНИЕ услсанл истинно, и а ра ннаг, если значение ус аня ложно. Например, стоимость телефонного разговора с повременной тарификацией после первой минуты может быть вычислена с помощью условного выражения так: с<"-11 ьзтпвх1сез с*зьтпрх1се ЕСЛИ С вЂ” ВрЕМя раЗГОВОра В МИНутаХ, а азтпрхтса — СтОИМОСтЬ ОдНОй МИНутЫ разговора. Другие операции Операции ++ (инкремент); -- (лекремент), += (увеличение значения на) и полобные им также лопускаются в выражениях. Например, пусть нужно вычислить среднее число обработанных заявок в единицу времени после окончания обработки очередной заявки.
Для этого можно увеличить на единицу количество спппс обработанных заявок, после чего разделить это количество на время, прошедшее с момента начала Обработки. Это можно записать так: ссппх = поппе +1! Н = сопле/яахтьзае() Более коротко это записывается с использованием операции инкремента: поппе++[ н = саззпс/яестзаза() Но это же можно записать еше более кратко: И = ++сопле/дестгьзе О з В последней записи сначала значение ссппх увеличивается на !, а затем оно используется в выражении. Другой пример. Пусть необходимо при каждом поступлении отброшенной необслуженной заявки увеличить сумму цпрафа Рапатхтаа на величину рапа1хуРехса11.
Ддя ЭТОГО МОЖНО ВЫПОЛНИТЬ ОПЕратор: Репа1хьеа += рапа1ьурахСа11з Данная запись эквивалентна следующей: Репа1хьеа = Репа1сьаа + репа1гурехСа11! Для комбинации нескольких операций в одном выражении используются разные правила приоритета и ассоциативности. Например, обычные арифметические операции одного приоритета + и -', ' и / и им подобные левопсспциптивньс а-Ъ+с-т[ — [((а-Ь)+с)-х[) в то время как операции =, ++, --, = и некоторые другие — лрпвппсспциплз[/вны, например, а+=Ь+=с=![ а (а+=[Ь+=[с=й))) Глава 7.
Сведения о языке Заиа, необходимыедля разработки моделей на Длуг ода 127 Зти операторы могут встречаться и в других конструкциях, например, в условном выражении: (е++ == Ь >Э Ь-- -б : ++а+1 Во всех случаях, если программист не уверен в порядке выполнения опера- ций, он должен использовать круглые скобки. Выражения и оператор присваивания в Апу~ оя!с Выражение возврашает значение некоторого типа.
Выражение обычно является частью некоторой большей конструкции, чаше всего правой частью оператора присваивания. В модели Апу( орс в окне свойств объектов (активных объектов, состояний и переходов стейтчартов, элементов анимации и т. и.) сушествуют поля, в которые может быть помешено только выражение, возврашаюшее значение определенного типа. Например, в псле динамического значения текста должно появиться выражение, возврагцаюшее строку символов, в поле Условие перехода стейтчарта может стоять выражение„возврашаюшее в результате своего выполнения булевское значение, в поле для указания цвета элемента анимации может стоять выражение, возврашаюшее значение типа со1от, и т. п.
Никаких разделителей после таких выражений не нужно, их включение приведет к синтаксической ошибке. Во всех местах, где можно написать выражение, может быть использовано и условное выражение. В отличие от выражения, оператор присваивания (=) — это лействие, состояшее в вычислении значения выражения, стояшего в правой части оператора присваивания, объекту, стояшему в левой части оператора. Операторы присваивания в моделях АпуЕорс обычно записываются в полях, относягдихся к действиям, связанным с наступлением некоторого события. Тип объекта в левой части оператора присваивания должен совпадать с типом результата, возврагцаемого выражением в правой части этого оператора. 7.2. Сложные типы данных В качестве более сложных, непримитивных типов данных в )аха, мы рас- СМОтрИМ СтрОКИ, тИП Со1с И МаССИВЫ. 7.2.1.
Строки Строки — это последовательности символов, например, "Нейе". Ст1юки задаются стандартным образом — объявлением типа и именем: Яскъпд дкеесъпд; дкеес1пд = "не11о"; Здесь дкеееупд — переменная типа лет пд, которая при выполнении второго оператора присваивания получит значение этого типа — строку символов 528 Часть !5. Средства Апу1ода для имитационного моделирования систем "не11о".
До выполнения этого оператора вновь обьявленное значение этой переменной не определено. При обьявлении типа переменной ей может быть сразу присвоено значение: Бтт1пд е = Соединение лвух строк (конкатенация)обозначается знаком +, например: Бстьпд паше = "зо))п") Бттгпд дтеесъпд = "Не11о"; Бттьпд шеяяаде = "Не11о" + ", " + паше; В рсэуЛЬтатс-шевяаде ПОЛуЧИт ЗНаЧЕНИЕ "Не11о,,топп'.
Если выполняется операция конкатенации строки с объектом, не являющимся строкой, тип этого объекта неявно конвертируется в строку. Таким образом, если ае1са — переменная целого типа со значением 25б, то: Бтт1пд шеяяаде = "Ре1та = " + се1та; определяет строку с именем шевваде, которая при выводе даст: Ое1та = 256 Строки используются в моделях Апу).оя(с, в частности, для вывода текста и численных значений. Для вывола в окне анимации определяется текст, и строка записывается в поле линамических значений этого текста окна его свойств. В это поле может быть помещена любая конструкция типа Бттапд, например заданная условным выражением: "Опасность: "+ ( (т>30)? "Большая"." (Т>2с)? "средняя": "Малая") Если т(е1са — переменнаи нестрокового типа, то следующее определение, однако, будет ошибочным: Бттьпд шевяаде = сте1са) Здесь необхолимо использование пустой строки, к которой с помощью конкатенации присоединяется нестроковый объект.
Этот объект будет неявно конвертирован в строковое представление: Бттапд шевваде = "'+т(е1еат В Апу) ой(с при компиляции модели в программу на 3ата текст, находящийся в поле динамического значения текста, автоматически прелваряется тремя символами, двумя кавычками и плюсом: ""+. В результате, в этом поле может быть записан и любой нестроковый обьект, например число или выражение, которое присоединяется операцией конкатенации к пустой строке и поэтому неявно конвертируется в символьное представление. 7.2.2. Отладочная печать В качестве одного из операторов (в тексте какой-либо функции либо в поле Действие. связанном с некоторым событием) в модели может быть помещен вызов функции: Стасе1п( слепая строка> )) Глава Г. Саеденияоязыхе.1ауа, необходимьадля разрабатанмоделейнаДпу).ой1с 1св При вызове этой функции происходит печать строки в окне Глобальный журнал.
Например, выполнение кода: сгасе1п! "переход г1, переменная в =" + в 1; помещенного в поле Действие какого-либо перехода стейтчарта модели, вызовет печать в журнале строки: Переход г1, переменная в = 21.99 как только данный перехол лействительно сработает, и при этом значение переменной в будет равно 23.99. Такими контрольными выводами можно пользоваться. При отладке модели. 7.2.3. Тип Со1ог Сстсг — Зтс тИП даННЫХ.
В КаЧЕСтВЕ КОНСтаит даННОГО тнна В ЯЗЫКЕ )ауа определены ! 3 базовых цветов: ь1есх, ь1це, нь1се, дгееп, суап, тадепса, дгау, 11дьсогау, багхогву, сгапде, рапи,геб, уе11сн Обратиться к базовому цвету можно обычным образом, как к константам класса сс1сг, а ИмЕнНО: Сс1сг.ьъеск, Сс1сг.Ь1це, Сс1сг.мысе и т.п.
Задание статического значения цвета графического элемента модели В моделях на Апу) об)с цвет используется в анимации. Чтобы лля графического элемента задать статический цвет его заливки или граничной линии, используется выпадающее меню окна свойств этого графического объекта. Открытие выпадающего меню выбор статинесксго цвета Исгюльтсвание дсгюлнительных цветов Рис. 7.2. Диалог для работы с цветом В случае если имеющиеся в появившейся палитре цвета не полходят, с помощью кнопки Дополнительные цвета можно открыть окно стандартного системного диалога работы с цветом (рис.
7.3). С помощью этого окна простым щелчком мыши по выбранной клетке на палитре слева можно выбрать любой желаемый цвет для представления !ЗО Часть Д Средства Алу~одгс для имитационного модели вения систем в поле статического значения цвета выделенного графического элемента молели на АпуЕоя(с. Если и этих цветов не хватает, то используется двумерная палитра справа. Рис.
7.3. Окно стандартного системного диалога работы с цветом Сугцествует несколько моделей для определения цвета. Диалоговое окно рис. 7.3 поддерживает две из них, модель НБ! и модель КктВ. Модель НЯ (Ние, Ба1шайоп, Еши(поз!1у — тон, насыщенность, яркость) прелставлена в этом окне двумерной палитрой по координатам Ние, магога!юп и отдельным столбцом, управляющим яркостью. Параметры Нве, Ба( и 1лпп могут принимать целые значения в соответствии с палитрой, представленной в системном диалоговом окне справа. Модель КктВ использует три базовых цвета, Кед, Огееп и В!ое (красный, зеленый и синий), которые могут присутствовать с определенной интенсивностью в каждом конкретном цвете (рис. 7.4).