Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

КАЛЕНДАРЬ СОБЫТИЙ

Читайте также:
  1. A. Когда необходимо рассчитать вероятность одновременного появления нескольких зависимых событий.
  2. А) изучать последовательность исторических событий во времени
  3. Августовский путч. Хронология событий
  4. Бунташное время, причины, схема развития событий.
  5. Вопрос 2. Сущность формационного и цивилизационного подхода к изучению исторических фактов, явлений и событий.
  6. Идентификация Лицевых Событий
  7. Изучении последовательности исторических событий во времени;
  8. Какие из этих событий происходили на территории Англии?
  9. КАЛЕНДАРЬ
  10. Календарь иммунизации против дифтерии, коклюша и столбняка.

1. Васильев С.В., Комар В.И., Цыркунов В.М. Практика инфекциониста. Минск. 1993.

2. Временные протоколы обследования и лечения больных в амбулаторно-поликлинических и стационарных лечебно-профилактических учреждениях. Минск. 1999.

3. Приказ МЗ РБ № 66 от 20 апреля 1993 года «О мерах по снижению заболеваемости вирусными гепатитами в Республике Беларусь».

4. Справочник по диетологии. Под редакцией А.А. Покровского. Москва. Медицина. 1992.

ЛАБОРАТОРНАЯ РАБОТА №1

 

КАЛЕНДАРЬ СОБЫТИЙ

Цель работы: ознакомление со структурой и обслуживанием календаря событий систем имитационного моделирования.

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

 

Учет и регистрация планируемых временных событий в процессе имитационного моделирования осуществляются с помощью особого файла (списка) – календаря событий. Планируемые события заносятся в календарь в любые моменты системного времени в соответствии с логикой работы модели, отображающей поведение исследуемого объекта. При этом в очередную запись календаря вносятся характеристики (атрибуты) планируемого события, его код (класс события) и время наступления. Записи календаря упорядочены по времени наступления событий в порядке возрастания. Процессор имитационного моделирования в нужные моменты времени извлекает из календаря очередную запись с ближайшим событием и реализует его, осуществляя необходимые для этого изменения в модели.

Рассмотрим программу, демонстрирующую формат календаря, операции по планированию и перегруппировке событий в календаре и извлечению из календаря события с минимальным временем исполнения.

 

program kalendar;

uses crt;

type

ta1=array [1..10] of integer;

ta2=array [1..12,1..10] of integer;

var

i,j,kevnt,matr,dtime,nnq1,tnow:integer;

f:file of ta2;

a,b,a1,a2,attr:ta1;

a3:ta2;

procedure grup;

var

l,k,h,i,j,n:integer;

begin

writeln(' Подпрограмма перегруппировки');

seek(f,0);

read(f,a3);

n:=1;

while a3[matr+2,n]=0 do

begin

for k:=1 to nnq1-1 do

for l:=1 to matr+2 do

begin

a3[l,k]:=a3[l,k+1];

a3[l,k+1]:=0;

end;

n:=n+1;

end;

h:=nnq1 div 2;

i:=0;

while h<>0 do

begin

for j:=h+1 to nnq1 do

begin

i:=j-h;

for k:=1 to matr+2 do

a[k]:=a3[k,j];

repeat

for k:=1 to matr+2 do

b[k]:=a3[k,i];

if (a[matr+2]<b[matr+2])and(a[matr+2]>0) then

begin

for k:=1 to matr+2 do

a3[k,i+h]:=b[k];

i:=i-h;

end;

until (i<=0)or(a[matr+2]>=b[matr+2])or(a[matr+2]=0);

for k:=1 to matr+2 do

a3[k,i+h]:=a[k];

end;

h:=h div 2;

end;

seek(f,0);

write(f,a3);

writeln(' Вывод нового календаря');

for i:=1 to nnq1 do

begin

for j:=1 to matr+2 do

write(a3[j,i],' ');write(' ');

end;

writeln;

end;

procedure schdl(kevnt,dtime:integer;a4:ta1);

var

i,j:integer;

begin

for i:=1 to matr do a2[i]:=a4[i];writeln('атрибуты события ',a1[1]);

a2[matr+1]:=kevnt;writeln('код события ',kevnt);

a2[matr+2]:=tnow+dtime;writeln('время события ', tnow+dtime);

seek(f,0);

read(f,a3);

j:=1;

while a3[matr+1,j]<>0 do j:=j+1;

for i:=1 to matr+2 do a3[i,j]:=a2[i];

seek(f,0);

write(f,a3);

writeln(' Вывод календаря');

for i:=1 to nnq1 do

begin

for j:=1 to matr+2 do

write(a3[j,i],' ');write(' ');

end;

writeln;

grup;

end;

procedure rmove;

var

i,j:integer;

begin

seek(f,0);

read(f,a3);

i:=a3[matr+1,1];

writeln(' Код извлеченного события ',i);

writeln(' Время извлеченного события ',a3[matr+2,1]);

for j:=1 to matr+3 do a3[j,1]:=0;

for j:=1 to matr do attr[j]:=a3[j,1];

seek(f,0);

write(f,a3);

writeln(' Вывод календаря');

for i:=1 to nnq1 do

begin

for j:=1 to matr+2 do

write(a3[j,i],' ');write(' ');

end;

writeln;

grup;

end;

begin

clrscr;

matr:=1;

nnq1:=3;

tnow:=4;

assign(f,'kalend.dat');

rewrite(f);

for i:=1 to nnq1 do

for j:=1 to matr+2 do

a3[j,i]:=0;

seek(f,0);

write(f,a3);

a1[1]:=_;

writeln(' Планирование первого события');

schdl(_,_,a1);

writeln(' Планирование второго события');

schdl(_,_,a1);

writeln(' Планирование третьего события');

schdl(_,_,a1);

writeln(' Извлечение ближайшего события');

rmove;

writeln('Имитация завершена');

end.

 

 

В программе используются следующие величины:

kevnt – код планируемого события,

matr – количество атрибутов,

dtime – интервал свершения планируемого события,

nnq1- число записей календаря,

tnow – системное время.

При проведении операций с календарем данные из файла календаря f копируются в массив a3. Для формирования очередной записи используется вспомогательный массив a2, куда поступают атрибуты события (из массива a1), код и интервал свершения. Извлечение атрибутов события производится в специализированный массив atrib.

С целью восстановления структуры календаря после операций планирования и извлечения записи вызывается подпрограмма перегруппировки grup. Последняя либо сдвигает весь календарь влево на одну запись (после извлечения события), либо расставляет записи по закону «меньшее вперед», сравнивая между собой времена свершения запланированных событий.

 




Дата добавления: 2014-12-19; просмотров: 40 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.01 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав