Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 21.06.2010
Сообщений: 23

*.exe привело в действие точку остановка

12.07.2010, 11:19. Показов 2104. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
при выполнении отладки VC 2010 express выдаёт ошибку: "*.exe привело в действие точку остановка". Что это за ошибка и где её искать? если нужно:
Задание
17. Библиотека для моделирования систем массового обслуживания
Написать библиотеку классов для моделирования включающую следующие
классы:
-- Генератор объектов
тип генерируемого объекта
(объекты в системе представляются номером типа)
среднее время появления
тип случайного распределения - равномерное
включить/выключить
кол-во сгенерированных объектов
процедура, вызываемая при генерации объекта
-- Очередь объектов к устройству обслуживания
добавить объект
взять объект
текущее число объектов в очереди
максимальное, минимальное, среднее
времени ожидания в очереди (расчет при моделировании)
максимальная длина очереди (расчет при моделировании)
-- Устройство обслуживания
поставить объект на обработку
среднее время обработки
тип случайного распределения - равномерное
работает/простаивает
коэффициент загрузки (расчет при моделировании)
кол-во обработанных объектов
процедура, вызываемая при завершении обработки объекта
-- Система в целом
количество объектов в системе
добавить объект в систему
удалить объект из системы
интервал моделирования
текущее время
процедура, вызываемая при завершении интервала моделирования
-- Очередь событий в системе

Написать модель следующей системы:
На карьере работает 2 экскаватора и M машин. В начальный момент
машины поровну делятся между очередями экскаватора. Экскаватор
наполняет кузов машины за 6-10 минут (распределение времени
равномерное). Машина отвозит песок потребителю за 45 минут
(распределение нормальное со стандартным отклонением 15 минут или 30-60 минут).
После возвращения становится под загрузку простаивающего
экскаватора или в самую маленькую очередь. Промоделировать систему
в течении 8 часов при различных M и выбрать M минимизирующее
простой экскаваторов и машин.
Для моделирования поездки машины к потребителю можно
использовать генератор, который необходимо включать, а после
генерации объекта выключать. А можно сделать M устройств обслуживания .

код
MyLib.h:
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
namespace kurs17
{
class system_queue          //класс очереди событий в системе
{
    int queue[999][3];      //очередь событий в системе
public:
    system_queue();         //конструктор
    void set_queue (int t1, int t2, int p);     //добавить элмент в очередь
    int first (int fl) const;       //возвращает значение колонки (fl) первого элемента
    void execute ();                //удалаяет первый элемент из очереди
};
class generator                 //класс объектов
{
    int tA;                     //мин. время генерации
    int tB;                     //макс. время генерации
    int m;                      //количество созданных объектов
    struct trucks               //объекты системы
    {
        int type;               //тип объекта
        int num;                //порядковый номер
        trucks *next;
        trucks *back;
    }*beg, *end, *cur; 
    void (*Gen)();              //процедура, вызываемая при генерации объекта
public:
    generator (void (*_Gen)(), int A, int B);       //конструктор
    void setM (int t);                              //увеличение количества объектов
};
class service_device                //класс обслуживающих устройств
{
    int lA;                         //минимальное время обработки
    int lB;                         //количество погрузчиков
    int loaded;                     //количество обработанных объектов
    bool busy;                      //флаг занятости устройства
    struct alpha                    //коэффициент загруженности устройства
    {
        int percent;                //в процентах
        int wt_time;                //общее время ожидания
        int ld_time;                //общее время работы
    } *a;
public:
    service_device (void (*_Ser)(), int A, int B);      //конструктор
    void (*Ser)();                  //процедура, вызываемая при завершении обработки объекта
    int next();                     //поставить объект на обработку
    bool isBusy();                  //тест на занятость устройств
    void setBusy();                 //установка флага занятости
    void setloaded ();              //устанавливает количество обработанных устройством объектов
    int getloaded ();               //возвращает количество обработанных устройством объектов
    int getA ();                    //возвращает коэф. загруженности УО
    void setA (int fl, int t);      //рассчёт коэффициента занятости устройства
};
class queue             //класс очереди объектов к обслуживающим устройствам
{
    int len;            //максимальная длина очереди
    int n;              //текущее количество объектов в очереди
    struct mid          //среднее время ожидания
    {
        int time;       //суммарное время ожидания
        int N;          //количество ожидавших
        double result;
    }*m;
    int min;            //минимальное время ожидания
    int max;            //максимальное время ожидания
public:
    queue ();               //конструктор
    void add ();            //принимает объект в очередь
    void give (int t);      //отдаёт объект свободному устройству
    int get_maxT ();        //возвращает максимальное время ожидания
    int get_minT ();        //возвращает минимальное время ожидания
    double get_midT ();     //возвращает среднее время ожидания
    int get_n ();           //возвращает текущее число объектов в очереди
};
class System                //класс системы в целом
{
    int t;                  //интервал моделирования
    long time;              //текущее время
    int m;                  //количество объектов
    void (*Sys)();          //процедура, вызываемая при завершении интервала моделирования
public:
    System (int T, void (*_Sys)());     //конструктор
    void set_m ();                      //добавление объекта в систему
    void delobj ();                     //удаление объекта из системы
    int get_m ();                       //возвращает количество объектов в системе
    int get_time ();                    //возвращает текущее время
    void set_time ();                   //переходит к следующей единице времени
};
}
MyLib.cpp:
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include "MyLib.h"
#include <stdexcept>
#include <conio.h>
 
 
namespace kurs17
{
    system_queue::system_queue ()
    {
        for (int i=0; i<99; i++)
            for (int j=0; j<3; j++)
                queue[i][j]=0;
    }
    void system_queue::set_queue (int p1, int p2, int p3)
    {
        int i=0;
        for (; i<98 && queue[i][1]!=0 && queue[i][1]<=p2; i++);
        int j=i;
        for (; j<98 && queue[j][1]!=0; j++);
        for (; j>=i; j--) 
        {
            queue[j+1][0]=queue[j][0];
            queue[j+1][1]=queue[j][1];
            queue[j+1][2]=queue[j][2];
        }
        queue[i][0]=p1;
        queue[i][1]=p2;
        queue[i][2]=p3;
    }
    int system_queue::first (int p) const {return queue[0][p];}
    void system_queue::execute ()
    {
        for (int j=0; j<98 && queue[j][1]!=0; j++) 
        {
            queue[j][0]=queue[j+1][0];
            queue[j][1]=queue[j+1][1];
            queue[j][2]=queue[j+1][2];
        }
    }
 
 
    generator::generator (void (*_Gen)(), int A, int B) 
    {
        tA=A;
        tB=B;
        Gen=_Gen;
        m=0;
        beg= new trucks;
        end=cur=beg;
        beg->back=NULL;
        beg->next=NULL;
        beg->num=-1;
        beg->type=-1;
    }
    void generator::setM (int t) 
    {
        cur->num=m;
        cur->type=t;
        cur->next=new trucks;
        end=cur->next;
        end->back=cur;
        cur=end;
        m++;
    }
    
 
    service_device::service_device (void (*_Ser)(), int A, int B) 
    {
        lA=A;
        lB=B;
        Ser=_Ser;
        a=new alpha;
        a->ld_time=0;
        a->percent=0;
        a->wt_time=0;
        busy=0; 
        loaded=0;
    }
    int service_device::next()          
    {
        setBusy();
        return rand()%(lB-lA+1)+lA;
    }
    bool service_device::isBusy() {return busy;}
    void service_device::setBusy() {busy=!isBusy();}
    void service_device::setloaded () {loaded++;}
    int service_device::getloaded () {return loaded;}
    int service_device::getA()
    {
        a->percent=(a->ld_time/(a->ld_time+a->wt_time))*100;
        return a->percent;
    }
    void service_device::setA (int fl, int t)
    {
        if (fl) a->ld_time+=t;
        else a->wt_time+=t;
    }
    
 
    queue::queue () 
    {
        n=min=max=0; 
        m=new mid; 
        m->N = m->result = m->time = 0;
    }
    void queue::add ()
    {
        n++;
        m->N++;
        if (len<n) len=n;
    }
    void queue::give (int t)
    {
        n--;
        m->time+=t;
        if (max<t) max=t;
        if (min>t) min=t;
    }
    int queue::get_maxT () {return max;}
    int queue::get_minT () {return min;}
    double queue::get_midT () 
    { 
        m->result = (double) m->time/m->N;
        return m->result;
    }
    int queue::get_n () {return n;}
 
 
    System::System (int T, void (*_Sys)()) 
    {
        Sys=_Sys;
        t=T; 
        m=0;
        time=-1;
    }
    void System::set_m () {m++;}
    void System::delobj () {m--;}
    int System::get_m () {return m;}
    void System::set_time () {time++; if (time==t*60) Sys();}
    int System::get_time () {return time;}
}
MyProg.cpp:
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
// kursovoy17.cpp: определяет точку входа для консольного приложения.
 
#include <iostream>
#include <time.h>
#include <conio.h>
#include "MyLib.h"
 
using namespace std;
using namespace kurs17;
 
const int tA=30;    //минимальное время транспортировки груза
const int tB=60;    //максимальное время транспортировки груза
const int lA=6;     //минимальное время загрузки погрузчика
const int lB=10;    //максимальное время загрузки погрузчика
 
generator *g;
service_device *sd[2];
service_device *tr[20];
System *s;
queue *q[2];
system_queue *sq;
 
void gen_proc ()
{
    int N=1;                //номер типа
    g->setM(N);
    s->set_m();
    if (!sd[0]->isBusy()) sq->set_queue(0, sd[0]->next(), 1);
    else if (!sd[1]->isBusy()) sq->set_queue(0, sd[1]->next(), 2);
    else 
    {
        if (q[0]->get_n() > q[1]->get_n()) 
        {
            q[1]->add();
            sq->set_queue(0, 1, -2);
 
        }
        else 
        {
            q[0]->add();
            sq->set_queue(0, 1, -1);
        }
    }
}
 
void ser_proc ()    
{
    int proc=sq->first(2);
    if (proc==1 || proc==2)
    {
        if (sd[proc-1]->isBusy())
        {
            sd[proc-1]->setA(1, sq->first(1)-sq->first(0));
            sd[proc-1]->setBusy();
            sd[proc-1]->setloaded();
            int i=0;
            for (; i<20 && tr[i]->isBusy(); i++);
            sq->set_queue(s->get_time(),s->get_time() + tr[i]->next(), i+10);
            sq->execute();
            if (q[proc-1]->get_n()) 
            {
                q[proc-1]->give(sq->first(1) - sq->first(0));
                int ldt=sd[proc-1]->next();
                sq->set_queue(s->get_time(), s->get_time() + ldt, proc);
                sd[proc-1]->setA(1, ldt);
            }
            else sq->set_queue(s->get_time(), s->get_time()+1, proc);   
        }
        else
        {
            if (q[proc-1]->get_n()) 
            {
                sd[proc-1]->setA(0, sq->first(1) - sq->first(0));
                q[proc-1]->give(sq->first(1) - sq->first(0));
                sq->set_queue(s->get_time(), s->get_time() + sd[proc-1]->next(), proc);
            }
            else sq->set_queue(sq->first(0), s->get_time()+1, proc);
        }
    }
    else
    {
        if (q[0]->get_n() > q[1]->get_n()) 
        {
            q[1]->add();
            sq->set_queue(s->get_time(), s->get_time()+1, -2);
 
        }
        else 
        {
            q[0]->add();
            sq->set_queue(s->get_time(), s->get_time()+1, -1);
        }
    }
}
 
void sys_proc ()
{
    int m = s->get_m();
    int min=q[0]->get_minT();
    if (min>q[1]->get_minT()) min=q[1]->get_minT();
    int max=q[0]->get_maxT();
    if (max<q[1]->get_maxT()) max=q[1]->get_maxT();
    double mid = (q[0]->get_midT()+q[1]->get_midT())/2;
    //int a=(sd[0]->getA()+sd[1]->getA())/2;
    int a=100;
    int l=sd[0]->getloaded() + sd[1]->getloaded();
    cout <<"trucks: "<<m<<"\nWaiting time:\n\tmin: "<<min<<"\n\tmid: "<<mid<<"\n\tmax: "<<max<<"\nLoaders: 2\nLoaded: "<<l<<"\nAlpha: "<<a<<"%\n\n";
}
 
int main()
{
    srand (time(0));
    int m=8;            //количество машин
    int n=2;            //количество эксковаторов
    int t=8;            //интервал моделирования
    for (m=8; m<15; m++)
    {
        g=new generator (gen_proc,0,0);
        sd[0]=new service_device(ser_proc, lA, lB);
        sd[1]=new service_device(ser_proc, lA, lB);
        q[0]=new queue ();
        q[1]=new queue ();
        sq=new system_queue ();     
        for (int i=0; i<20; i++)
        {
            tr[i]=new service_device (ser_proc, tA, tB);
        }
        s=new System (t, sys_proc);
        
        for (int i=0; i<m; i++) gen_proc ();
        int T=t*60;
        for ( ; s->get_time()<T; s->set_time() )
        {
            while (sq->first(1)==s->get_time())
            {
                if (sq->first(2)>0) ser_proc();
                else sq->set_queue(sq->first(0), s->get_time()+1, sq->first(2));
                sq->execute();
            }
        }
        //s->set_time();
    }
    _getch();
    return 0;
}


Добавлено через 1 час 18 минут
если такую ошибку тяжело отыскать, хотя бы скажите из-за чего она может возникнуть, пожалуйста...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.07.2010, 11:19
Ответы с готовыми решениями:

Действие по умолчанию при запуске EXE-шника
Не понял в какой момент и в результате чего, но случилось так, что все exe-файлы стали представлять собой не приложения, а 'Документ...

ОС Windows инициировала точку останова в exe
С Массивом из Русских букв, программа работает правильно, но оказываться что мне нужен массив Английского алфавита, В результате выдают...

ОС Windows инициировала точку останова в stroki.exe
#include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;string&gt; #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; using namespace std; int main() ...

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

ОС Windows инициировала точку останова в kursach.exe
Доброго времени суток! Проблема распространенная конечно, но в этом разобраться ни я сам, не с помощью преподавателя почему то не...

Назначить на кнопку действие, которое указывает путь к exe шнику игры
Добрый вечер господа! VS2005 делаю лаунчер... Готов графический интерфейс, путь на сайт игры, и прочие украшательства... Нужно...

[Pawn] Остановка на конечной точке, или остановка поворота при достижении заданного угла
Всем здравствуйте. У меня такой вопрос, реализация, по возможности более просто, остановка на конечной точке, или остановка поворота, при...

Увеличение оперативной памяти привело к тормозам
Добрый день. Ситуация такая. Изначально у меня стояло 2 планки по 1 гигабайту DDR2 PC2-5300 (667 MHz). Поставил 3-ю планку на 2 гигабайта...

Не запускаются AVZ. exe, CCleaner. exe, AutoLogger. exe, regedit. exe. Словил вирус bizigames
Доброго времени суток. Захотел я почистить комп от мусора всякого при помощи CCleaner, как не тут-то было. В общем, .exeшники...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru