Форум программистов, компьютерный форум CyberForum.ru

Система массового обслуживания - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Из двумерного массива удалить строку и столбец на пересечении которых находится минимальный элемент http://www.cyberforum.ru/cpp-beginners/thread1047480.html
Из двумерного массива удалить строку и столбец на пересечении которых находится минимальный элемент
C++ Задачки Напишите хотя бы несколько задач на C++ очень надо. Спасибо! 1)Винни-Пух похвастался кролику,что похудел на М килограмм. Определить, насколько похудел Винни-Пух в фунтах (0.4536кг) и унциях (0.0283кг) одна тема - одна задача, читайте правила форума http://www.cyberforum.ru/cpp-beginners/thread1047477.html
C++ Проверить истинность высказывания: "Данное число является нечетным трехзначным"
программу надо написать на С++ 1. Дано целое положительное число. Проверить истинность высказывания: «Данное число является нечетным трехзначным». одна тема - одна задача, читайте правила форума
Процедуры и функции dev cpp, С++ C++
Составить процедуру, «рисующую» на экране горизонтальную линию из заданного числа символов «*». ребята пожалуйста! зачёт уже завтра и осталось сдать одну единственную задачу!
C++ Реализация функций http://www.cyberforum.ru/cpp-beginners/thread1047466.html
Как реализовать функции ,что бы программа выдавала так как показано в примере:
C++ Блок-схема. Одномерные массивы Нужна помощь в составлении блок-схемы. Очень срочно. Никак не могу составить..:( #pragma argsused int main() { int i,s,min,x,n,massiv; char v; randomize (); printf("Input N (<=10)"); scanf("%d", &n); подробнее

Показать сообщение отдельно
Quadrillionaire
13 / 13 / 1
Регистрация: 09.03.2013
Сообщений: 180

Система массового обслуживания - C++

18.12.2013, 22:07. Просмотров 1522. Ответов 6
Метки (Все метки)

Доброй ночи! Препод задал такую задачу:
" Система массового обслуживания состоит из обслуживающего аппарата (ОА) и очереди заявок двух типов.
Заявки первого типа поступают в "хвост" очереди по случайному закону с интервалом времени Т1, равномерно распределенным от 0 до 5 единиц времени. В ОА они поступают из "головы" очереди по одной и обслуживаются также равновероятно за время Т2 от 9 до 4 единиц времени, после чего покидают систему.
Единственная заявка второго типа постоянно обращается в системе, обслуживаясь в ОА равновероятно за время Т2 и возвращаясь в очередь не далее 4-й позиции от "головы". В начале процесса заявка 2-го типа входит в ОА, оставляя пустую очередь.
Смоделировать процесс обслуживания первых 1000 заявок 1-го типа, выдавая после обслуживания каждых 100 заявок информацию о текущей и средней длине очереди, а в конце процесса - общее время моделирования и количества вошедших в систему и вышедших из нее заявок 1-го типа."
Проблема в том, что весь вечер мучаюсь с ней. Не могу понять, что из чего следует. Был бы очень признателен за помощь!

Добавлено через 21 минуту
Вот код, который был написан..но чувствую я, что она работает неправильно, так как в ответе выдает, что обработано из 1000 заявок 1-го типа все 1000, что в принципе быть не может.
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
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <locale>
 
using namespace std;
 
double Rand(int);
void OA(int &line, int &Exit, int &OASUM);
void Torder(double &t1, double &t2, int &line, int &Exit, int &OASUM, double &AllTime);
 
int main()
{
    srand(time(NULL));
    setlocale (LC_ALL,"Russian");
    int order = 0,Exit = 0,summ_oa = 0; ///очередь, Заявки которые вышли из системы, Заявок обработалось
    double time_xvost = Rand(5),time_tail = Rand(4); ///Время поступления заявок в хвост, Время обслужающего аппарата,
    double LineSum = 0,LineChanges = 0; ///Сумма очередей для посчета средней очереди,Кол-во раз изменения длины очереди
    double All_time = time_xvost; ///Общее время моделирования
 
    while (Exit != 1000)
    {
        Torder(time_xvost, time_tail, order, Exit, summ_oa,All_time);
        LineSum += order;
        LineChanges++;
        if ((Exit % 100) == 0)
        {
                cout<<"В очереди: "<<Exit<<" заявок"<<endl;
                cout<<"Средняя длина очереди: "<<LineSum/LineChanges<<endl;
                cout<<Exit<<" заявок вышло из системы"<<endl<<endl;
        }
    }
 
    cout<<endl<<"Общее время моделирования: "<<All_time<<" е.в."<<endl;
    cout<<endl<<Exit<<" заявок 1-го типа вышло из системы"<<endl;
    cout<<order+Exit<<" заявок 1-го типа вошло в систему";
 
 
    //cout<<endl<<"В системе обработалось "<<OASUM;
    return 0;
}
 
 
double Rand(int num)
{
    return rand()*1.0/RAND_MAX*num;
}
void Torder(double &t1, double &t2, int &line, int &Exit, int &OASUM, double &AllTime)
{
    if (t1 > t2)
    {
        if (line == 0)
        {
            line++;
            t1 = Rand(5);
            t2 = Rand(4);
            AllTime += t1;
        }
 
        if (line > 0)
        {
            t1 -= t2;
            OA(line,Exit, OASUM);
        }
        t2 = Rand(4);
    }
 
    if (t1 < t2)
    {
        line++;
        t2 -= t1;
        t1 = Rand(5);
        AllTime += t1;
    }
    if (t1 == t2)
    {
        line++;
        OA(line,Exit, OASUM);
        t1 = Rand(5);
        t2 = Rand(4);
        AllTime += t1;
    }
}
void OA(int &line, int &Exit, int &OASUM)
{
        OASUM++;
        line--;
        Exit++;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru