Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МиАПО / SIMC_dorab.doc
Скачиваний:
13
Добавлен:
07.02.2016
Размер:
756.22 Кб
Скачать

2.10 Построение гистограмм. Функцииtabulate,newhist,prnhist

Построение гистограмм в системе возможно для любого типа скалярных данных, переводимых к типу double.

С понятием "гистограмма" связывается объект типа histogram. В модели он определяется ссылка на него:

phistogram h;

Перед использованием переменной hдля табулирования значе­ний некоторой случайной величины необходимо создать гистограмму. Для этого служит функция void newhist(phistogram&,double,double,hint2,bool,alfa):

newhist(<ссылка на гистограмму>,

<нижний предел изменения табулируемой величины>,

<верхний предел изменения табулируемой величины>,

<число интервалов табулирования>,

<"ключ" печати графика>,

<символьное имя гистограммы>);

Максимальное число точек табулирования задается системной константой hint=33.

Функция tabulateимеет формат записи:

void tabulate(phistogram hist,double r),гдеhist- ссылка на гистограмму,r- табулируемая величина. Функция записывается в той части модели, где измеряется интересующая программиста величинаr.

Функция void prnhist(phistogram)служит для печати гистограммы.

2.11. Создание, использование и обработка списков

В системе моделирования определены понятия списков транзак­тов, приборов, очередей, накопителей, гистограмм и списка спис­ков транзактов.

Для работы с этими типами списков (кроме списка списков транзактов) определены функции создания списков, включения в них элементов и их исключение. На списках заданы функции следо­вания: выбор следующего и предыдущего элементов из списка. Все списки в системе моделирования имеют кольцевую структуру: первый элемент списка указывает на второй и последний, второй - на пер­вый и третий... последний - на предпоследний и первый. Элементы списка не нумеруются. Чтобы выделить в списке первый элемент, на него указывает ссылка firstпеременной типа список:[ссылка на список]->first. Кольцевая структура обеспечивает поиск нужного элемента в любом из двух выбранных программистом направлений.

Понятие списков определяется в СИ, поэтому ниже дается лишь краткий обзор функций, список их параметров и способ обра­щения к ним.

2.11.1 Создание списков

Для создания списка необходимо определить соответствующую переменную типа ссылки на него:

plistt ltссылка на список транзактов

plistq lqссылка на список очередей

plistf lfссылка на список приборов

plists lsссылка на список накопителей

plisth lhссылка на список гистограмм

Cписки создаются с помощью следующих функций:

void newtlist(plistt&)создание списка транзактов;

void newqlist(plistq&)создание списка очередей;

void newflist(plistf&)создание списка приборов;

void newslist(plists&)создание списка накопителей;

void newhlist(plisth&)создание списка гистограмм.

Списки создаются пустыми без каких-либо наполняющих их объ­ектов. Для того, чтобы поместить объект в список, необходимо предварительно его сгенерировать.

2.11.2 Включение объектов в списки

Для включения объекта в список используются следующие функции:

void inlt(plistt&,ptransact) для транзактов

void inlf(plistf&,pfacility) для приборов

void inlq(plistq&,pqueue) для очередей

void inls(plists&,pstorage) для накопителей

void inlh(plisth&,phistogram) для гистограмм

2.11.3 Удаление объектов из списков

На удаляемый объект всегда указывает голова списка. напри­мер: l->first- ссылка на первый элемент спискаl.

Такое определение позволяет до удаления элемента из списка запомнить его присваиванием рl=l->first; гдерl- переменная ссылочного типа (ptransact, pfacility, pqueue, pstorage, phistogram).

Исключить элемент из списка можно посредством следующих функций:

void outtlist(plistt&)

void outflist(plistf&)

void outqlist(plistq&)

void outslist(plists)

void outhlist(plisth)

Указатель списка firstпосле удаления указывает на следую­щий по порядку объект в списке. Если удаляемый объект единствен­ный в спискеl, то устанавливаетсяl->first=nil.

Соседние файлы в папке МиАПО