void circuit(Home home, const IntArgs& c, const IntVarArgs& x, IntVar z, IntConLevel icl) { if (home.failed()) return; IntVarArgs y(home, x.size(), Int::Limits::min, Int::Limits::max); circuit(home, c, x, y, z, icl); }
double flux(const index_type circuitIndex) const { const Circuit& c = circuit(circuitIndex); double sum = 0.0; for (Circuit::const_iterator i = c.begin(), last = c.end(); i != last; ++i) { sum += i->weight * contact(i->index).phase; } return c.square * sum; }
void simnet() { Signal a, b, c, d, F; // Switch and output objects Switch ( SD("1a"), a, 'a' ); // Switch a controlled by 'a' key Switch ( SD("2a"), b, 'b' ); // Switch b controlled by 'b' key Switch ( SD("3a"), c, 'c' ); // Switch c controlled by 'c' key Switch ( SD("4a"), d, 'd' ); // Switch d controlled by 'd' key circuit( SD("1c-4c"), a, b, c, d, F ); Probe ( (SD("2e"), "F"), F ); // Probe }
void circuit(Home home, const IntArgs& c, const IntVarArgs& x, const IntVarArgs& y, IntVar z, IntConLevel icl) { int n = x.size(); if ((y.size() != n) || (c.size() != n*n)) throw Int::ArgumentSizeMismatch("Graph::circuit"); circuit(home, x, icl); if (home.failed()) return; IntArgs cx(n); for (int i=n; i--; ) { for (int j=0; j<n; j++) cx[j] = c[i*n+j]; element(home, cx, x[i], y[i]); } linear(home, y, IRT_EQ, z); }
int main(int argc, const char * argv[]){ /* //MŰKÖDÉS FELHASZNÁLÓVAL //függvény beolvasása a szabványos bemenetről std::cout << "Kérlek add meg a hálózatod maxtermekkel!"<< std::endl; std::cout << "(Csak nagy- vagy csak kisbetűket használj!)"<< std::endl; std::cout << "Maxterm:"<< std::endl; std::cout << "> "; std::string userInput; std::cin >> userInput; Function function(userInput); //egy függvényobjektum létrehozása (funcion lesz a neve) std::cout << std::endl; //Megadott függvény kiírása. std::cout << "A megadott függvény: " << userInput << std::endl; std::cout << std::endl; //Megadott függvény kapuinak neveinek a kiírása. std::cout << "A hálózat bemenetei a megadott függvény alapján: "; std::cout << function.getLetters() << std::endl; std::cout << std::endl; //Kapuk darabszámának kiírása. std::string gates = function.getLetters(); size_t gatesnumber = gates.length(); std::cout << "A hálózatnak " << gatesnumber << " bemenete van." << std::endl; std::cout << std::endl; //Gates osztály példányosítása és értékekkel való feltöltése. Gates gate(gatesnumber); gate.setGates(); //A megadott értékek kiírása sorban. std::cout << std::endl; std::cout << "A hálózat bemeneteinek értéke sorban: "; gate.printGates(); //Az eredeti függvénybe behelyettesítve az értékek: std::cout << std::endl; std::cout << "A kimenet: "; Circuit circuit(function, gate); circuit.printCircuit(); */ //TESZTELÉS ELŐRE MEGADOTT ADATOKKAL //függvény beolvasása a szabványos bemenetről std::cout << "Kérlek add meg a hálózatod maxtermekkel!"<< std::endl; std::cout << "(Csak nagy- vagy csak kisbetűket használj!)"<< std::endl; std::cout << "Maxterm:"<< std::endl; std::cout << "> "; std::string userInput = "abc+ad+fgh+i"; Function function(userInput); //egy függvényobjektum létrehozása (funcion lesz a neve) std::cout << std::endl; //Megadott függvény kiírása. std::cout << "A megadott függvény: " << userInput << std::endl; std::cout << std::endl; //Megadott függvény kapuinak neveinek a kiírása. std::cout << "A hálózat bemenetei a megadott függvény alapján: "; std::cout << function.getLetters() << std::endl; std::cout << std::endl; //Kapuk darabszámának kiírása. std::string gates = function.getLetters(); size_t gatesnumber = gates.length(); std::cout << "A hálózatnak " << gatesnumber << " bemenete van." << std::endl; std::cout << std::endl; //Gates osztály példányosítása és értékekkel való feltöltése. Gates gate(gatesnumber); gate.setGatesOneByOne(0, 1); gate.setGatesOneByOne(1, 1); gate.setGatesOneByOne(2, 1); gate.setGatesOneByOne(3, 0); gate.setGatesOneByOne(4, 1); gate.setGatesOneByOne(5, 0); gate.setGatesOneByOne(6, 0); gate.setGatesOneByOne(7, 1); gate.setGatesOneByOne(8, 1); //A megadott értékek kiírása sorban. std::cout << std::endl; std::cout << "A hálózat bemeneteinek értéke sorban: "; gate.printGates(); //Az eredeti függvénybe behelyettesítve az értékek: std::cout << std::endl; std::cout << "A kimenet: "; Circuit circuit(function, gate); circuit.printCircuit(); try { if(circuit.getResult() == true) std::cout << "Az eredmény helyes!" << std::endl; return 0; } catch(std::exception e) { std::cout << "Az eredmény hibás!" << std::endl; return 1; } }
Inductor::~Inductor() { circuit().removeComponent(this); }
Capacitor::~Capacitor() { circuit().removeComponent(this); }
ECDiode::~ECDiode() { circuit().removeComponent(this); }