Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
diegovoin
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 98
1

Имитационная модель

10.04.2016, 18:39. Просмотров 315. Ответов 4
Метки нет (Все метки)

Подскажите с работой ... голову всю сломал ...нужно по сути правильное условие поставить для профилактики .. условие ставил во времени до месяца и после..

[ATTACH]
Имитационная модель
[/ATTACH]
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Var T , Time , Time_or , Time_pr, K_or, K_pr , H,D,W,M, T_op,P_op : real;
     Time_nab,Kol_vkl : real;
     s:real;
begin
 Time_nab := strtofloat(Edit1.Text);
 Kol_vkl:=strtofloat(Edit2.Text);
 T_op := Time_nab / Kol_vkl ;
 P_op := 1 / T_op;
  T_op:=Round(T_op);
  P_op:=RoundTo(P_op, -5);
 Memo3.Lines.Add(floattostr(T_op));
 Memo4.Lines.Add(floattostr(P_op));
 
 // обнуление переменных
     Time:=0;Time_or:=0;Time_pr:=0;
     K_or:=0;K_pr:=0;H:=0;D:=0;W:=0;M:=0;
 
    while Time <= Time_nab do
    begin
    Randomize;
    Time:=Time+1;
      begin;
      H:=H+1;
      if (H=24) then begin
        D:=D+1;
        W:=W+1;
        H:=0;
        end;
      end;
    if (W>7) then
     w:=1;
    if(D=28) and (M=2) then
      begin;
      D:=1;
      M:=M+1;
      end;
    if (D=30)and ((M=4) or(M=6) or(M=9) or (M=11)) then
      begin;
      D:=1;
      M:=M+1;
      end;
    if (D=31) and ((M=1) or (M=3) or (M=5) or(M=7) or(M=8) or (M=10)) then
      begin;
      D:=1;
      M:=M+1;
      end;
    s := Random(10)/100;
    if ( Time < 3648) and (Time >4368) then
    if (P_op > s)then
      begin;
        // вход в нормальный режим
      Time := Time+23;
      Time_or:=Time_or+23;
      K_or:=K_or+1;
      end
 
       else
       begin;
 
        if (Time >= 3648) and (Time <=4368) then
            begin
              Time:=Time + 8;
              Time_pr:=Time_pr+8;
              K_pr:=K_pr+1;
            end;
       end;
 
     end;
        Memo1.Lines.Add('Time' + floattostr(Time_or));
           Memo1.Lines.Add('K_or' + floattostr(K_or));
              Memo2.Lines.Add('Time_pr' + floattostr(Time_pr));
           Memo2.Lines.Add('K_pr' + floattostr(K_pr));
0
Миниатюры
Имитационная модель  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2016, 18:39
Ответы с готовыми решениями:

Имитационная модель парикмахерской
Условия, помогите ПОЖАЛУЙСТА,читаю пособие ничего не пойму, чувствую себя валенком! В мужской...

Очереди(имитационная модель)
Помогите найти очереди охарактеризовать их и как устранить?

Имитационная модель машинного зала
Добрый день! Проверьте пожалуйста код, представленный ниже. Что там лишнее, или чего-то не хватает?...

Имитационная модель мастерской - GPSS
В автомобильной мастерской работает один мастер. Средний интервал между моментами поступления...

Имитационная модель вычислительной системы
Постройте имитационную модель процесса обслуживания заказов, которые поступают в вычислительную...

4
FIL
Модератор
3445 / 2574 / 734
Регистрация: 19.09.2012
Сообщений: 7,943
10.04.2016, 18:57 2
diegovoin, по правилам форума задания следует перепечатывать в тему, а не постить картинки с текстом.
0
diegovoin
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 98
10.04.2016, 19:21  [ТС] 3
Извините. не учел этого
0
ветеран_5Э92
9 / 9 / 4
Регистрация: 13.10.2015
Сообщений: 52
10.04.2016, 19:38 4
Обратите внимание на условие строки 48.Наверное там должно быть или.
if ( Time < 3648) or (Time >4368) then
0
diegovoin
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 98
10.04.2016, 22:31  [ТС] 5
агась) еще подправил ) ... так как по заданию система включается 19 раз в год то
а условие if (P_op < s)then это вероятность включения
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
 s := Random(10) /100;
      if (P_op < s)then
                         begin;
                         if ( Time < 3648) or (Time >4368) then
    while K_or < 19 do
      begin;
        // âõîä Гў Г*îðìГ*ëüГ*ûé ðåæèì
      Time := Time+23;
      Time_or:=Time_or+23;
      K_or:=K_or+1;
      end
             end
Добавлено через 2 часа 32 минуты
помогите исправить.... в году 8760 часов... должен быть подсчет часов дней недель месяцев... доходит до середины месяца и все.... а у меня для профилактики нужно использовать 6-ой месяц...
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 Time:=Time+1;
        H:=H+1;
        if (H=24) then begin
        D:=D+1;
        W:=W+1;
        H:=0;
        end;
           if (W>7) then begin
              W:=1;
               end;
              if((D=28) and (M=2)) then
                 begin;
                 D:=1;
                 M:=M+1;
                 end;
               if (D=30)and ((M=4) or(M=6) or(M=9) or (M=11)) then
                     begin;
                      D:=1;
                       M:=M+1;
                        end;
          if (D=31) and ((M=1) or (M=3) or (M=5) or(M=7) or(M=8) or (M=10)) then
                     begin;
                       D:=1;
                     M:=M+1;
                       end;
0
10.04.2016, 22:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2016, 22:31

Имитационная модель, теория вероятности
Здравствуйте! Тут есть задачка: Разработайте и запрограммируйте имитационная модель, которая...

Имитационная модель системы СМО
Всем привет!! Мне прислали модель, сказали что надо запутсить в Visual C++, но что то я ничего не...

Имитационная модель интерне - кафе. Ошибки
Всем доброго времени суток. Помогите пожалуйста исправить ошибки в коде программы, которая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru