Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 16.09.2015
Сообщений: 173

Смоделировать обработку 100 заданий

04.03.2018, 09:04. Показов 480. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно смоделировать обработку 100 заданий на 2х компьютерах.
Если свободны оба компьютера, то обрабатывает первый, очередь не ограничена.
C++
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// Example program
#include <iostream>
#include <string>
#include <locale.h>
 
int main()
{
    int a = 1, b = 15, i = 0;
    int aa = 1, bb = 19;
    double sr_ozh_1 = 0, sr_ozh_2 = 0;
    double p_prost_1 = 0, p_prost_2 = 0;
    int t_int_prih[50];//рандом прихода как бы по отдельности
    int t_int_obs_1[50];//рандом обслуживания 1го
    int t_int_obs_2[50];//рандом обслуживания второго
    int t_shag[50];
    int t_prih[50] = {0};//это уже рандом прихода задания, только суммарное время
    int t_ok_obs[50] = {0};//окончание обслуживания 1го
    int t_ok_obs_2[50] = {0};//окончание обслуживания 2го
    int t_nach_obs[50] = {0};//начало обслуживания 1го
    int t_nach_obs_2[50] = {0};//начало обслуживания 2го
    int t_prost[50] = {0};//время простоя 1го (когда в очереди нет заданий)
    int t_ozh[50] = {0};//время ожидания 1го (когда есть задания, но компы заняты)
    int t_prost_2[50] = {0};//время простоя 2го (когда в очереди нет заданий)
    int t_ozh_2[50] = {0};//время ожидания 2го (когда есть задания, но компы заняты)
    setlocale(LC_ALL,"RUS");
  for(i = 0; i<50; i++){
    t_shag[i] = i;  
    t_int_prih[i] = rand()%(b - a + 1) + a;
    t_int_obs_1[i] = rand()%(bb - aa + 1) + aa;
    t_int_obs_2[i] = rand()%(bb - aa + 1) + aa;
  }
  t_prih[0] = t_int_prih[0];
  for(i = 0; i<49; i++){
    t_prih[i+1] = t_prih[i] + t_int_prih[i];
}
    t_nach_obs[0] = t_prih[0];
    t_ozh[0] = 0;
    t_prost[0] = t_prih[0];
    t_ok_obs[0] = t_prih[0] + t_int_obs_1[0];
    
  
  for(i = 0; i<49; i++){
    if(t_ok_obs[i] < t_prih[i + 1]){
        t_prost[i+1] = t_prih[i+1] - t_ok_obs[i];
        t_nach_obs[i+1] = t_prih[i+1];
        t_ok_obs[i+1] = t_prih[i+1] + t_int_obs_1[i+1]; 
    }else{
           if(t_ok_obs_2[i] < t_prih[i+1]){
               t_prost_2[i+1] = t_ok_obs[i+1] - t_ok_obs_2[i];
               t_nach_obs_2[i+1] = t_ok_obs[i+1];
               t_ok_obs_2[i+1] = t_ok_obs[i+1] + t_int_obs_2[i+1]; 
               }
               else{
                   t_ozh[i+1] = t_ok_obs[i] - t_prih[i+1];
                   t_nach_obs[i+1] = t_prih[i+1] + t_ozh[i+1];
                   t_ozh_2[i+1] = t_ok_obs_2[i] - t_prih[i+1];
                   t_nach_obs_2[i+1] = t_prih[i+1] + t_ozh_2[i+1];
                   if(t_nach_obs_2[i+1]<t_nach_obs[i+1]){
                       t_ok_obs_2[i+1] = t_nach_obs_2[i+1] + t_int_obs_2[i+1];
                       }else{     
                           t_ok_obs[i+1] = t_nach_obs[i+1] + t_int_obs_1[i+1];
            }
    }
 
 
  }
  }
     for(i = 0; i<49; i++){
         sr_ozh_1 = sr_ozh_1 + t_ozh[i];
         sr_ozh_2 = sr_ozh_2 + t_ozh_2[i];
         if(t_prost[i] != 0){
            p_prost_1++;
        }
        if(t_prost_2[i] != 0){
            p_prost_2++;
        }
     }
        sr_ozh_1 = sr_ozh_1 / 50;
        sr_ozh_2 = sr_ozh_2 / 50;
        p_prost_1 = (p_prost_1 / 50) * 100;
        p_prost_2 = (p_prost_2 / 50) * 100;
        
   printf("shag int_prih int_obs_1  prih   nach_obs      ok_obs          ozh        prost       prih_2        nach_obs_2         ok_obs_2        ozh_2       prost_2\n");
  for(int j = 0; j<50; j++){
    printf("%d      %d          %d       %d         %d           %d              %d           %d            %d            %d                  %d               %d           %d\n", t_shag[j], t_int_prih[j], t_int_obs_1[j], t_prih[j], t_nach_obs[j], t_ok_obs[j], t_ozh[j], t_prost[j], t_ok_obs[j], t_nach_obs_2[j], t_ok_obs_2[j], t_ozh_2[j], t_prost_2[j]);
  }
  printf("\n\n Srednee ozhidanie 1 PC = %.2f\n Srednee ozhidanie 2 PC = %.2f\n Veroyatnost prostoya 1 PC = %.0f%%\n Veroyatnost prostoya 2 PC = %.0f%%\n", sr_ozh_1, sr_ozh_2, p_prost_1, p_prost_2);
 
}
Время поступления задания-рандом от 1 до 15, время обработки рандом от 1 до 19.

Проблема как я понял только с этой частью, именно в ней осуществляется весь этот подсчёт
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 for(i = 0; i<49; i++){
    if(t_ok_obs[i] < t_prih[i + 1]){
        t_prost[i+1] = t_prih[i+1] - t_ok_obs[i];
        t_nach_obs[i+1] = t_prih[i+1];
        t_ok_obs[i+1] = t_prih[i+1] + t_int_obs_1[i+1]; 
    }else{
           if(t_ok_obs_2[i] < t_prih[i+1]){
               t_prost_2[i+1] = t_ok_obs[i+1] - t_ok_obs_2[i];
               t_nach_obs_2[i+1] = t_ok_obs[i+1];
               t_ok_obs_2[i+1] = t_ok_obs[i+1] + t_int_obs_2[i+1]; 
               }
               else{
                   t_ozh[i+1] = t_ok_obs[i] - t_prih[i+1];
                   t_nach_obs[i+1] = t_prih[i+1] + t_ozh[i+1];
                   t_ozh_2[i+1] = t_ok_obs_2[i] - t_prih[i+1];
                   t_nach_obs_2[i+1] = t_prih[i+1] + t_ozh_2[i+1];
                   if(t_nach_obs_2[i+1]<t_nach_obs[i+1]){
                       t_ok_obs_2[i+1] = t_nach_obs_2[i+1] + t_int_obs_2[i+1];
                       }else{     
                           t_ok_obs[i+1] = t_nach_obs[i+1] + t_int_obs_1[i+1];
            }
    }
Что тут над пофиксить?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.03.2018, 09:04
Ответы с готовыми решениями:

Смоделировать обработку 100 заданий
Здравствуйте К компьютеру на обработку поступают задания, интервал между двумя поступлениями заданий к компьютеру подчиняется...

Смоделировать процесс функционирования ВЛ при условии, что обработать необходимо 100 заданий.
В вычислительной лаборатории (ВЛ) имеются три ЭВМ. Задания на обработку поступают с интервалом 20 ± 5 мин в пункт приема. Здесь в течение...

Смоделировать процесс обработки 200 заданий
Для ускорения прохождения “коротких” заданий на ЭВМ выбран пакетный режим работы с квантованием времени процессора. Это значит, что всем...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.03.2018, 09:04
Помогаю со студенческими работами здесь

Викторина из 100 заданий
Собственно, по теме: вопросы ( а их больше 100) - находятся в базе данных Имеется TextView, где будет храниться название вопроса,...

Смоделировать процесс обработки на станке 100 деталей
Помогите пожалуйста разобраться с задачей. Есть код, но не выводит ничего...вот код: void __fastcall TForm1::Button1Click(TObject...

Смоделировать процесс обработки на станке 100 деталей
Помогите с кодом не пойму как исправить ошибку. Я сама новичок в языке GPSS. Задача такая:С интервалом времени 5 ± 2 мин детали...

Смоделировать процесс обработки на станке 100 деталей
текст задания: С интервалом времени 5 ± 2 мин детали поштучно поступают к станку на обработку и до начала обработки хранятся на рабочем...

Смоделировать 100 возможных значений случайной величины х
Всем доброго времени суток. Есть задача которую необходимо написать на TP. &quot;Смоделировать 100 возможных значений случайной...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru