<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Wahrheitstabelle]]></title><description><![CDATA[<p>Hi, ich brauch bisschen Hilfe beim Aufbau eines zweidimensionalen Arrays.</p>
<p>Als Input hab ich eine boolsche Gleichung z.B.:<br />
E1 = a1 &amp;&amp; ! a2 || ! a1 &amp;&amp; a2</p>
<p>ich möchte jetzt die komplette Wahrheitstabelle in ein 2d Array schreiben. So sollte das dann aussehen ( am besten gleich ein bool Array[][] ):</p>
<p>a1 / a2 / Gleichung_erg</p>
<p>F / F / F<br />
T / F / T<br />
F / T / T<br />
T / T / F</p>
<p>wobei ich jetzt false und true abgekürzt habe!</p>
<p>Natürlich könnte ich das jetzt &quot;per Hand&quot; aufbauen, aber das wird mich nicht weiterbringen da der Nutzer ja verschiedene Gleichungen eingeben kann, die ein Algorithmus dann in eine Wahrheitswertetabelle/Array wandeln soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/200079/wahrheitstabelle</link><generator>RSS for Node</generator><lastBuildDate>Sun, 04 Oct 2026 05:30:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/200079.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 10 Dec 2007 15:10:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wahrheitstabelle on Mon, 10 Dec 2007 15:10:25 GMT]]></title><description><![CDATA[<p>Hi, ich brauch bisschen Hilfe beim Aufbau eines zweidimensionalen Arrays.</p>
<p>Als Input hab ich eine boolsche Gleichung z.B.:<br />
E1 = a1 &amp;&amp; ! a2 || ! a1 &amp;&amp; a2</p>
<p>ich möchte jetzt die komplette Wahrheitstabelle in ein 2d Array schreiben. So sollte das dann aussehen ( am besten gleich ein bool Array[][] ):</p>
<p>a1 / a2 / Gleichung_erg</p>
<p>F / F / F<br />
T / F / T<br />
F / T / T<br />
T / T / F</p>
<p>wobei ich jetzt false und true abgekürzt habe!</p>
<p>Natürlich könnte ich das jetzt &quot;per Hand&quot; aufbauen, aber das wird mich nicht weiterbringen da der Nutzer ja verschiedene Gleichungen eingeben kann, die ein Algorithmus dann in eine Wahrheitswertetabelle/Array wandeln soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418201</guid><dc:creator><![CDATA[RunSeb]]></dc:creator><pubDate>Mon, 10 Dec 2007 15:10:25 GMT</pubDate></item><item><title><![CDATA[Reply to Wahrheitstabelle on Mon, 10 Dec 2007 15:18:50 GMT]]></title><description><![CDATA[<p>Um die eingegebenen booleschen Gleichungen verarbeiten zu können, benötigst du einen Parser - eventuell boost::spirit. Die einzelnen Wahrheitswerte kannst du dann in einer Schleife über alle t/f-Kombinationen (sind ja &quot;nur&quot; 2<sup>#Variablen</sup>) ermitteln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418208</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418208</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 10 Dec 2007 15:18:50 GMT</pubDate></item><item><title><![CDATA[Reply to Wahrheitstabelle on Mon, 10 Dec 2007 15:48:46 GMT]]></title><description><![CDATA[<p>Ach du sch...eibenkleister. Habe noch nie etwas geparst.<br />
Das boost::spirit tutorial hab ich mir gerade durchgelesen aber nur die Hälfte kapiert. Da muss ich wohl Regeln erstellen, aber was für Regeln wären das dann für meinen Fall von Gleichungen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418247</guid><dc:creator><![CDATA[RunSeb]]></dc:creator><pubDate>Mon, 10 Dec 2007 15:48:46 GMT</pubDate></item><item><title><![CDATA[Reply to Wahrheitstabelle on Tue, 11 Dec 2007 06:46:07 GMT]]></title><description><![CDATA[<p>In deinem Fall würde ich mir erstmal einige Rechenklassen entwerfen, die die verschiedenen booleschen Operationen umsetzen - jede mit einer zentralen Berechnungsfunktion, die einen vector&lt;bool&gt; übernimmt und einen bool zurückgibt:</p>
<pre><code class="language-cpp">struct boole_func
{
  virtual bool calc(const vector&lt;bool&gt;&amp; args) = 0;
};

class arg : public boole_func
{
  size_t m_num;
public:
  arg(size_t num) : m_num(num) {}
  virtual bool calc(const vector&lt;bool&gt;&amp; args)
  {
    assert(m_num&lt;args.size());
    return args[m_num];
  }
};

...
</code></pre>
<p>Als nächstes brauchst du einige Regeln, die in Spirit-EBNF beschreiben, wie eine boolesche Funktion aufgebaut ist - in den eingebauten Aktionen baust du dir dann eine dazu passende boole_func zusammen.<br />
(ich bin ein wenig aus der Übung - schau mal in der Spirit-Doku, wie das auszusehen hat)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1418501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1418501</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 11 Dec 2007 06:46:07 GMT</pubDate></item></channel></rss>