ed (const std :: string & name, size_t maxDlina):
structelem (name), obyavZayav (name), ochered (name),
peredatchik (name), priemnik (name)
_maxDlina (maxDlina> 0? maxDlina: 1)
{
;
}
~ konochered () {}
// отримання стану
virtual state_t GetState () const {
return _Dlina! = 0? (_maxDlina> _Dlina? Busy: full): empty;
}
// максимальна довжина
size_t GetMaxDlina () const {return _maxDlina;}
virtual bool _GotovKPriem () const {//aioiaiinou ei? eaio cayaee
return _maxDlina> _Dlina;
}
const size_t _maxDlina;// максимальна довжина черги
private:
}; masskontrol: virtual public structelem {:
// карта дескрипторів керованих клапанів
typedef
map , pair >>
klapandescriptormap_t;
{public:
// конструктор
explicit __ fastcall masskontrol (const std :: string & name):
structelem (name)
{
__KolichKlapan = 0;
try {
__pklapandescriptormap = new klapandescriptormap_t ();
}
// деструктор
~ masskontrol () {delete __ pklapandescriptormap;}
protected:
size_t __ KolichKlapan;// число керованих клапанів в групі
klapandescriptormap_t * __ pklapandescriptormap;
// додавання клапана для випадкового управління
virtual void _DobavKlapan (int klapanid, float reserved) {+ + __KolichKlapan;}
// видалення керованого клапана
// (викликається тільки з qchart :: UnregisterElement/Link)
void __ fastcall _UdalitKlapan (const structelem * pklapan);
// визначення стану заданого керованого клапана
int __ fastcall _GetSostUpr (int klapanid) const {
return (__pklapandescriptormap -> operator [] (klapanid)). first.second;
}
// обчислення станів клапанів в поточному такті
virtual void _VichislSostUprKlapana () = 0;
private:
}; prostrandomcontrol: public masskontrol {
// елемент випадкового управління клапанами
public:
// конструктор
explicit __ fastcall prostrandomcontrol (const std :: string & name):
masskontrol (name)
{
;
}
// деструктор
~ prostrandomcontrol () {}
protected:
// карта поточного стану керованих клапанів успадковується
// додавання клапана для випадкового управління ( перевизначення)
virtual void _DobavKlapan (int klapanid, float veroyatnost);
// обчислення станів клапанів в поточному такті (реалізація)
virtual void _VichislSostUprKlapana ();
private:
static const float __ proberror;// похибка розрахунку ймовірностей
// підсумовування ймовірностей і контро...