From 172b262e2bc48e6fe1d55599e4e59fcdb9ed05e4 Mon Sep 17 00:00:00 2001 From: gaeltp3 Date: Mon, 23 Dec 2013 19:33:41 +0100 Subject: [PATCH] Entfernung der Funktion Anwesendheit. --- Hazard/Hazard/KV.cpp | 36 +++++++++++------------ Hazard/Hazard/PrimImplikantCollection.cpp | 33 +++++++-------------- Hazard/Hazard/PrimImplikantCollection.h | 2 +- 3 files changed, 28 insertions(+), 43 deletions(-) diff --git a/Hazard/Hazard/KV.cpp b/Hazard/Hazard/KV.cpp index 26158e8..4e2066d 100644 --- a/Hazard/Hazard/KV.cpp +++ b/Hazard/Hazard/KV.cpp @@ -218,7 +218,6 @@ void KV::PrintPrimImplikanten() vector* kullers = currentPI->PI_groupCollection[j]; uint X1 = -1, X2 = 0, Y1 = -1, Y2 = 0; - for (vector::iterator it = kullers->begin(); it < kullers->end(); it++) { @@ -234,25 +233,24 @@ void KV::PrintPrimImplikanten() Y1 = min(Y1, y1); Y2 = max(Y2, y2); - if (currentPI->name.find("|") != string::npos) - { - this->Rechteck(X1 + 12, Y1 + 9, X2 - 12, Y2 - 9, RED, TRANS); - } + + + } + if (currentPI->name.find("|") != string::npos) + { + this->Rechteck(X1 + 12, Y1 + 9, X2 - 12, Y2 - 9, RED, TRANS); + } + else + { + uint random = rand() % 10; + X1 += random; + X2 -= random; + Y1 += random; + Y2 -= random; + if (currentPI->implikanten.size() == 1) + this->Rechteck(X1, Y1, X2, Y2, GREEN, TRANS); else - { - uint random = rand() % 10; - X1 += random; - X2 -= random; - Y1 += random; - Y2 -= random; - if (currentPI->implikanten.size() == 1) - this->Rechteck(X1, Y1, X2, Y2, GREEN, TRANS); - else - this->Rechteck(X1, Y1, X2, Y2, BLUE, TRANS); - } - - - + this->Rechteck(X1, Y1, X2, Y2, BLUE, TRANS); } diff --git a/Hazard/Hazard/PrimImplikantCollection.cpp b/Hazard/Hazard/PrimImplikantCollection.cpp index ec35546..07c94f5 100644 --- a/Hazard/Hazard/PrimImplikantCollection.cpp +++ b/Hazard/Hazard/PrimImplikantCollection.cpp @@ -58,23 +58,11 @@ bool PrimImplikantCollection::contains(PrimImplikant* foreign) return false; } -bool PrimImplikantCollection::Anwesenheit(Implikant_localisation* &I, vector &group) -{ - for (vector::iterator it = group.begin(); it < group.end(); it++) - { - if ((*it)->i == (I->i)) - { - return true; - } - - } - return false; -} void PrimImplikantCollection::setgroupCollection1(PrimImplikant* ¤tPI) { - vector::iterator it1; + vector groupA; // Jede I_vector wird in einem oder in Zwei vectoren vector groupB; // zuerst gespaltet. @@ -85,7 +73,7 @@ void PrimImplikantCollection::setgroupCollection1(PrimImplikant* ¤tPI) - for (it1 = currentPI->I_Vector.begin(); it1 < currentPI->I_Vector.end(); it1++) + for (vector::iterator it1 = currentPI->I_Vector.begin(); it1 < currentPI->I_Vector.end(); it1++) { if ((((*it1)->h) == (numVarY / 2) - 1) || (((*it1)->h) == (numVarY / 2))) { @@ -98,20 +86,20 @@ void PrimImplikantCollection::setgroupCollection1(PrimImplikant* ¤tPI) if (Linie_mitte) // Wenn wahr ist. ES geht um Linie_mitte_Y { - for (it1 = currentPI->I_Vector.begin(); it1 < currentPI->I_Vector.end(); it1++) + /*for (it1 = currentPI->I_Vector.begin(); it1 < currentPI->I_Vector.end(); it1++) { groupA.push_back(*it1); } - - currentPI->PI_groupCollection.push_back(&groupA); + */ + currentPI->PI_groupCollection.push_back(&(currentPI->I_Vector)); Linie_mitte = 0; } else { - for (it1 = currentPI->I_Vector.begin(); it1 < currentPI->I_Vector.end(); it1++) + for (vector::iterator it1 = currentPI->I_Vector.begin(); it1 < currentPI->I_Vector.end(); it1++) { - if (((*it1)->h < (numVarY / 2) - 1)) // die Implikanten, deren h <= numVary/2 -1 sind im groupA + if ((*it1)->h < ((numVarY / 2) - 1)) // die Implikanten, deren h <= numVary/2 -1 sind im groupA { // gespeichert. groupA.push_back(*it1); @@ -142,7 +130,6 @@ void PrimImplikantCollection::setgroupCollection2(PrimImplikant* ¤tPI, vec { vector hilfVec1, hilfVec2; - vector::iterator it1; uint numVarX = (uint)floor(dimension / 2.0f); static int Linie_mitte; // Zustand 0--> wird w überprüft im Vector // Zustand 1 oder >1 -->wird w überprüft im Vector. @@ -150,7 +137,7 @@ void PrimImplikantCollection::setgroupCollection2(PrimImplikant* ¤tPI, vec - for (it1 = group.begin(); it1 < group.end(); it1++) + for (vector::iterator it1 = group.begin(); it1 < group.end(); it1++) { if ((((*it1)->h) == (numVarX / 2) - 1) || (((*it1)->h) == (numVarX / 2))) { @@ -169,10 +156,10 @@ void PrimImplikantCollection::setgroupCollection2(PrimImplikant* ¤tPI, vec } else { - for (it1 = group.begin(); it1 < group.end(); it1++) + for (vector::iterator it1 = group.begin(); it1 < group.end(); it1++) { - if (((*it1)->w < (numVarX / 2) - 1)) // die Implikanten, deren w <= numVarX/2 -1 sind im groupA + if ((*it1)->w < ((numVarX / 2) - 1)) // die Implikanten, deren w <= numVarX/2 -1 sind im groupA { // gespeichert. wenn w größer, dann wird im hilfVec2 gespeichert hilfVec1.push_back(*it1); diff --git a/Hazard/Hazard/PrimImplikantCollection.h b/Hazard/Hazard/PrimImplikantCollection.h index 749f0c2..ec88bfe 100644 --- a/Hazard/Hazard/PrimImplikantCollection.h +++ b/Hazard/Hazard/PrimImplikantCollection.h @@ -24,7 +24,7 @@ public: bool contains(PrimImplikant* foreign); void setgroupCollection1(PrimImplikant* ¤tPI); void setgroupCollection2(PrimImplikant* ¤tPI,vector &group); - bool Anwesenheit(Implikant_localisation* &I, vector &group); + void Dispose();