This commit is contained in:
Jonny007-MKD 2013-12-09 17:19:20 +01:00
parent 0b2912bb17
commit 54df760230
5 changed files with 67 additions and 34 deletions

Binary file not shown.

View file

@ -28,6 +28,7 @@
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseOfMfc>Static</UseOfMfc> <UseOfMfc>Static</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
@ -58,13 +59,14 @@
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild> <MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader> <PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat> <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<MultiProcessorCompilation>false</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<ResourceCompile> <ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@ -74,7 +76,8 @@
<Link> <Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress> <RandomizedBaseAddress>
</RandomizedBaseAddress>
<DataExecutionPrevention> <DataExecutionPrevention>
</DataExecutionPrevention> </DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine> <TargetMachine>MachineX86</TargetMachine>

View file

@ -63,9 +63,6 @@
<ClCompile Include="..\Hazard\Hazard\Hazard.cpp"> <ClCompile Include="..\Hazard\Hazard\Hazard.cpp">
<Filter>Quelldateien</Filter> <Filter>Quelldateien</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\Hazard\Hazard\KV.cpp">
<Filter>Quelldateien</Filter>
</ClCompile>
<ClCompile Include="..\Hazard\Hazard\PrimImplikant.cpp"> <ClCompile Include="..\Hazard\Hazard\PrimImplikant.cpp">
<Filter>Quelldateien</Filter> <Filter>Quelldateien</Filter>
</ClCompile> </ClCompile>
@ -75,6 +72,9 @@
<ClCompile Include="..\Hazard\Hazard\Wertetabelle.cpp"> <ClCompile Include="..\Hazard\Hazard\Wertetabelle.cpp">
<Filter>Quelldateien</Filter> <Filter>Quelldateien</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\Hazard\Hazard\KV.cpp">
<Filter>Quelldateien</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="GDE_3.h"> <ClInclude Include="GDE_3.h">
@ -128,9 +128,6 @@
<ClInclude Include="..\Hazard\Hazard\Cparser.h"> <ClInclude Include="..\Hazard\Hazard\Cparser.h">
<Filter>Headerdateien</Filter> <Filter>Headerdateien</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\Hazard\Hazard\KV.h">
<Filter>Headerdateien</Filter>
</ClInclude>
<ClInclude Include="..\Hazard\Hazard\PrimImplikant.h"> <ClInclude Include="..\Hazard\Hazard\PrimImplikant.h">
<Filter>Headerdateien</Filter> <Filter>Headerdateien</Filter>
</ClInclude> </ClInclude>
@ -140,6 +137,9 @@
<ClInclude Include="..\Hazard\Hazard\Wertetabelle.h"> <ClInclude Include="..\Hazard\Hazard\Wertetabelle.h">
<Filter>Headerdateien</Filter> <Filter>Headerdateien</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\Hazard\Hazard\KV.h">
<Filter>Headerdateien</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="res\GDE_3.ico"> <None Include="res\GDE_3.ico">

View file

@ -127,6 +127,34 @@ void KV::PrintPrimImplikanten()
{ {
PrimImplikant* currentPI = this->globalPic->at(i); PrimImplikant* currentPI = this->globalPic->at(i);
uint overflow = 0; // at which sides the PrimImplikant overlaps
for (uint j = 0; j < currentPI->implikanten.size(); j++)
{
uint currentI = currentPI->implikanten[j];
uint w = (currentI & ((0x1 << (this->numVarX)) - 1)); // get all bits that make X (=w)
w ^= w/2;
uint h = (currentI >> this->numVarX); // get all bits that make Y (=h)
h ^= h/2;
if (w == 0)
overflow |= 0x1; // left side
else if (w == this->numVarX)
overflow |= 0x2; // right side
if (h == 0)
overflow |= 0x10; // upper side
else if (h == this->numVarY)
overflow |= 0x20; // lower side
}
switch (overflow)
{
case 0x33: // all 4 edges
break;
case 0x30: // overflows from top to bottom
break;
case 0x03: // overflows from left to right
break;
default:
uint X1 = -1, X2 = 0, Y1 = -1, Y2 = 0; // find coordinates for Rechteck uint X1 = -1, X2 = 0, Y1 = -1, Y2 = 0; // find coordinates for Rechteck
for (uint j = 0; j < currentPI->implikanten.size(); j++) for (uint j = 0; j < currentPI->implikanten.size(); j++)
{ {
@ -164,6 +192,7 @@ void KV::PrintPrimImplikanten()
this->Rechteck(X1, Y1, X2, Y2, BLUE, TRANS); this->Rechteck(X1, Y1, X2, Y2, BLUE, TRANS);
} }
} }
}
} }

View file

@ -1,7 +1,6 @@
#include "stdafx.h" #include "stdafx.h"
#include <vector> #include <vector>
#include <string> #include <string>
#include <WinGDI.h>
#include "Cell.h" #include "Cell.h"
#include "CellCollection.h" #include "CellCollection.h"
#include "PrimImplikantCollection.h" #include "PrimImplikantCollection.h"
@ -10,6 +9,10 @@ extern uint dimension;
extern uint numElements; extern uint numElements;
extern bool KNF; extern bool KNF;
#ifndef _KV_H
#define _KV_H
class KV class KV
{ {
public: public:
@ -61,7 +64,5 @@ private:
}; };
#ifndef _KV_H
#define _KV_H
#define CENTER SINGLE_LINE|CENTER_ALIGN|VCENTER_ALIGN #define CENTER SINGLE_LINE|CENTER_ALIGN|VCENTER_ALIGN
#endif #endif