ль рівності суми одиниці
bool __ SummirVeroyat () const;
}; adaptcontrol: public prostrandomcontrol {
// елемент випадкового управління клапанами, що дозволяє динамічно
// виключати заблоковані клапани з відповідним перерахуванням
// ймовірностей відкриття клапанів
public:
// конструктор
explicit __ fastcall adaptcontrol (const std :: string & name):
prostrandomcontrol (name)
{
try {
__ pustanklapandescriptormap = new klapandescriptormap_t ();
}
__ srcprobmapsaved = false;
}
// деструктор
~ adaptcontrol () {delete __ pustanklapandescriptormap;}
protected:
// карта поточного стану керованих клапанів успадковується
// додавання асоційованого елемента для керованого клапана
void __ fastcall
_DobavKlapanAssocCtrl (int klapanid, structelem * passocelem, state_t assocelemstate);
// перерахунок ймовірностей відкриття клапанів
virtual void _PereschetVeroyat ();
private:
// вихідна карта дескрипторів керованих клапанів
Klapandescriptormap_t * __ pustanklapandescriptormap;
// карта з prostrandomcontrol динамічно змінюється і використовується для
// розрахунку станів клапанів, а ця карта зберігає вихідні ймовірності і
// не перераховується
// ознака збереження вихідної карти ймовірностей
bool __ srcprobmapsaved;
// фіксація вихідної карти дескрипторів
// викликається після реєстрації всіх керованих клапанів
void __ SaveSrcProbMap () {
* __pustanklapandescriptormap = * __pklapandescriptormap;
__ srcprobmapsaved = true;
}
// відновлення вихідної карти дескрипторів клапанів
void __ VosstVeroyatKlapanov () {
* __pklapandescriptormap = * __pustanklapandescriptormap;
}
Polzovatcontrol: public masskontrol {
public:
// вектор асоційованих контролерів
typedef vector assoccontr_t;
// карта станів керованих клапанів
typedef map klapanstatemap_t;
// компонента 1 - унікальний ідентифікатор клапана;
// компонента 2 - обчислене стан клапана
protected:
// ZakonUpr-функція для реалізації користувацького закону керування
typedef
void (* pcustomfuncupr_t)
(const assoccontr_t & assoccontr, klapanstatemap_t & klapanstatemap);
/*
assoccontr - вектор покажчиків на асоційовані контролери,
стан яких можна враховувати при формуванні сигналів управління
клапанами;
klapanstatemap - карта станів (0 або 1) керованих клапанів,
обчислюється callback-функцією (її розмір визначається розміром вектора)
*/
public:
// конструктор
__ fastcall obobmasscontrol ...