<?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[Verschachtelte Bedingungen (Negativbeispiel)]]></title><description><![CDATA[<p>Hallo!</p>
<p>Es seien a,b,c,d und stat als int-Variabeln deklariert. Ein hoffentlich abschreckendes Beispiel für schlechtes Layout stellt folgende geschachtelte if-Bedingung dar:</p>
<pre><code>if(a&lt;b) {if(c&lt;d)                   {stat=1;}
     else {if(a&lt;c) {if(b&lt;d)        {stat=2;}
                             else  {stat=3;}
   }  else {if(a&lt;d) {if(b&lt;c)       {stat=4;}
                             else  {stat=5;}
                      }      else  {stat=6;}
          } } }              else  {stat=7;}
</code></pre>
<p>Bestimmen Sie die Werte, die der Variablen stat in den folgenden vier Fällen zugewiesen werden.</p>
\begin{array}{|c|c|c|c|c|c|}  
\mbox{Fall} & a & b & c & d & \mbox{stat}\\  
\hline  
1 & 0 & 1 & 1 & 0\\  
2 & 1 & 0 & 0 & 1\\  
3 & 0 & 1 & 0 & 1\\  
4 & 1 & 0 & 1 & 0\\  
\end{array}
<p>---</p>
<p>Ich habe mal versucht, mich da durchzuboxen.<br />
Meine Ergebnisse (letzte Spalte) sind:</p>
\begin{array}{|c|c|c|c|c|c|}  
\mbox{Fall} & a & b & c & d & \mbox{stat}\\  
\hline  
1 & 0 & 1 & 1 & 0 & 3\\  
2 & 1 & 0 & 0 & 1 & 7\\  
3 & 0 & 1 & 0 & 1 & 1\\  
4 & 1 & 0 & 1 & 0 & 7\\  
\end{array}
<p><strong>Erläuterung:</strong></p>
<p>Ich habe es mir mal ein bisschen übersichtlicher hingeschrieben (zumindest habe ich es versucht) und bin damit dann zu obigen Ergebnissen gekommen.</p>
<pre><code>if(a&lt;b) {
    if(c&lt;d) {
       stat=1;
    }
    else {
        if(a&lt;c) {
          if(b&lt;d) {
             stat=2;
          }
          else {
          stat=3;
        }
        }
        else {
            if(a&lt;d) {
                  if(b&lt;c) {
                      stat=4;
                  }
                  else {
                      stat=5;
                  }
            }
            else {
                 stat=6;
            }
}
else {
    stat=7;
}
</code></pre>
<p>Vielleicht hat ja jemand Lust mir zu sagen, ob meine Ergebnisse korrekt sind [wenn nicht, habe ich dafür auch Verständnis, denn das ist ja wirklich eine Zumutung!].</p>
<p>Beste Grüße</p>
<p>LinuxC_newbie</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/315779/verschachtelte-bedingungen-negativbeispiel</link><generator>RSS for Node</generator><lastBuildDate>Fri, 31 Jul 2026 03:31:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/315779.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 11 Apr 2013 15:44:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verschachtelte Bedingungen (Negativbeispiel) on Thu, 11 Apr 2013 15:45:30 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Es seien a,b,c,d und stat als int-Variabeln deklariert. Ein hoffentlich abschreckendes Beispiel für schlechtes Layout stellt folgende geschachtelte if-Bedingung dar:</p>
<pre><code>if(a&lt;b) {if(c&lt;d)                   {stat=1;}
     else {if(a&lt;c) {if(b&lt;d)        {stat=2;}
                             else  {stat=3;}
   }  else {if(a&lt;d) {if(b&lt;c)       {stat=4;}
                             else  {stat=5;}
                      }      else  {stat=6;}
          } } }              else  {stat=7;}
</code></pre>
<p>Bestimmen Sie die Werte, die der Variablen stat in den folgenden vier Fällen zugewiesen werden.</p>
\begin{array}{|c|c|c|c|c|c|}  
\mbox{Fall} & a & b & c & d & \mbox{stat}\\  
\hline  
1 & 0 & 1 & 1 & 0\\  
2 & 1 & 0 & 0 & 1\\  
3 & 0 & 1 & 0 & 1\\  
4 & 1 & 0 & 1 & 0\\  
\end{array}
<p>---</p>
<p>Ich habe mal versucht, mich da durchzuboxen.<br />
Meine Ergebnisse (letzte Spalte) sind:</p>
\begin{array}{|c|c|c|c|c|c|}  
\mbox{Fall} & a & b & c & d & \mbox{stat}\\  
\hline  
1 & 0 & 1 & 1 & 0 & 3\\  
2 & 1 & 0 & 0 & 1 & 7\\  
3 & 0 & 1 & 0 & 1 & 1\\  
4 & 1 & 0 & 1 & 0 & 7\\  
\end{array}
<p><strong>Erläuterung:</strong></p>
<p>Ich habe es mir mal ein bisschen übersichtlicher hingeschrieben (zumindest habe ich es versucht) und bin damit dann zu obigen Ergebnissen gekommen.</p>
<pre><code>if(a&lt;b) {
    if(c&lt;d) {
       stat=1;
    }
    else {
        if(a&lt;c) {
          if(b&lt;d) {
             stat=2;
          }
          else {
          stat=3;
        }
        }
        else {
            if(a&lt;d) {
                  if(b&lt;c) {
                      stat=4;
                  }
                  else {
                      stat=5;
                  }
            }
            else {
                 stat=6;
            }
}
else {
    stat=7;
}
</code></pre>
<p>Vielleicht hat ja jemand Lust mir zu sagen, ob meine Ergebnisse korrekt sind [wenn nicht, habe ich dafür auch Verständnis, denn das ist ja wirklich eine Zumutung!].</p>
<p>Beste Grüße</p>
<p>LinuxC_newbie</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2314795</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2314795</guid><dc:creator><![CDATA[LinuxC_newbie]]></dc:creator><pubDate>Thu, 11 Apr 2013 15:45:30 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelte Bedingungen (Negativbeispiel) on Thu, 11 Apr 2013 15:55:18 GMT]]></title><description><![CDATA[<p>Programmierst du in C oder C++?</p>
<p>Na ja, machs dir nicht so schwer:</p>
<pre><code>#include &lt;iostream&gt;

int GetStat(int a, int b, int c, int d)
{
	int stat = 0;

	if(a&lt;b) {if(c&lt;d)                   {stat=1;}
     else {if(a&lt;c) {if(b&lt;d)        {stat=2;}
                             else  {stat=3;}
   }  else {if(a&lt;d) {if(b&lt;c)       {stat=4;}
                             else  {stat=5;}
                      }      else  {stat=6;}
          } } }              else  {stat=7;}

		  return stat;
}

int main()
{
	std::cout &lt;&lt; GetStat(0, 1, 1, 0) &lt;&lt; std::endl;
	std::cout &lt;&lt; GetStat(1, 0, 0, 1) &lt;&lt; std::endl;
	std::cout &lt;&lt; GetStat(0, 1, 0, 1) &lt;&lt; std::endl;
	std::cout &lt;&lt; GetStat(1, 0, 1, 0) &lt;&lt; std::endl;
}
</code></pre>
<p>Ausgabe:</p>
<blockquote>
<p>3<br />
7<br />
1<br />
7<br />
Drücken Sie eine beliebige Taste . . .</p>
</blockquote>
<p>Deine Ergebnisse sehen gut aus. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2314798</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2314798</guid><dc:creator><![CDATA[gfhfgh]]></dc:creator><pubDate>Thu, 11 Apr 2013 15:55:18 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelte Bedingungen (Negativbeispiel) on Thu, 11 Apr 2013 15:56:22 GMT]]></title><description><![CDATA[<p>Schreibe doch einfach ein Programm!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2314800</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2314800</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Thu, 11 Apr 2013 15:56:22 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelte Bedingungen (Negativbeispiel) on Thu, 11 Apr 2013 15:56:39 GMT]]></title><description><![CDATA[<p>LinuxC_newbie schrieb:</p>
<blockquote>
<p>Vielleicht hat ja jemand Lust mir zu sagen, ob meine Ergebnisse korrekt sind</p>
</blockquote>
<p>Das klingt doch nach einem idealen Anwendungsfall für eine programmierbare Rechenmaschine. Damit könnte man sich wiederholende Aufgaben automatisiert durchführen. Schade, dass es so etwas noch nicht gibt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> .</p>
<p>P.S.: Können denn a,b,c und d nur 0 oder 1 sein? So wie das geschrieben ist, würde ich erwarten, dass es sich um beliebige Zahlen handeln kann. Somit erhöht sich die Zahl der Fälle gewaltig:</p>
<pre><code>a=b=c=d
a=b=c&lt;d
a=b&lt;c=d
...und viele andere mehr...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2314801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2314801</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 11 Apr 2013 15:56:39 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelte Bedingungen (Negativbeispiel) on Thu, 11 Apr 2013 16:01:40 GMT]]></title><description><![CDATA[<p>Puh, ich freu mich, dass meine Ergebnisse stimmen und ich mich nicht umsonst da durchgeackert habe.</p>
<p>Du hast einfach eine Funktion daraus gemacht, oder? Sehr klug!<br />
Wir hatten das Thema &quot;Funktionen&quot; noch nicht; aber ich bin immerhin schon in der Lage zu erkennen, dass Du eine Funktion benutzt hast. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Ich weiß ehrlich gesagt nicht genau, wo da der Unterschied ist.<br />
Ich glaube aber, dass wir in dem Kurs zwar C++ benutzen, aber wohl nur das, was Schnittmenge mit C ist, was immer genau das ist...</p>
<p>Edit:</p>
<p>Ich weiß nicht, ob die nur die Werte 0 und 1 annehmen können, ich denke aber wohl schon, man soll ja auch nur die Ergebnisse für die vorgegebenen Werte bestimmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2314803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2314803</guid><dc:creator><![CDATA[LinuxC_newbie]]></dc:creator><pubDate>Thu, 11 Apr 2013 16:01:40 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelte Bedingungen (Negativbeispiel) on Thu, 11 Apr 2013 16:04:06 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Schreibe doch einfach ein Programm!</p>
</blockquote>
<p>Ähm, ja. Das hätte ich zur Überprüfung meiner Ergebnisse in der Tat machen können. Einfach eines, das die Ergebnisse ausgibt...</p>
<p>Sorry, dann hätte ich Euch gar nicht damit behelligen müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2314804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2314804</guid><dc:creator><![CDATA[LinuxC_newbie]]></dc:creator><pubDate>Thu, 11 Apr 2013 16:04:06 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelte Bedingungen (Negativbeispiel) on Thu, 11 Apr 2013 16:05:53 GMT]]></title><description><![CDATA[<p>Manchmal sieht man den Wald vor lauter Bäumen nicht. Außerdem war es mal eine ganz nette Übung. Wie du das jetzt eleganter lösen kannst, hast du ja nun gelernt. Also alles gut. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2314806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2314806</guid><dc:creator><![CDATA[gfhfgh]]></dc:creator><pubDate>Thu, 11 Apr 2013 16:05:53 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelte Bedingungen (Negativbeispiel) on Thu, 11 Apr 2013 16:21:05 GMT]]></title><description><![CDATA[<p>LinuxC_newbie schrieb:</p>
<blockquote>
<p>Ich glaube aber, dass wir in dem Kurs zwar C++ benutzen, aber wohl nur das, was Schnittmenge mit C ist, was immer genau das ist...</p>
</blockquote>
<p>Die Schnittmenge wäre eine Art kastriertes C. Oder mindestens schlechtes C. Solche Kurse gibt es leider zuhauf. Am Ende hast du dann weder C noch C++ richtig gelernt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Falls du die Wahl hast, wäre ein gutes Buch wohl besser. Für C++ siehe meine Signatur, für C siehe Empfehlungen im C-Forum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2314808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2314808</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 11 Apr 2013 16:21:05 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelte Bedingungen (Negativbeispiel) on Fri, 12 Apr 2013 11:03:04 GMT]]></title><description><![CDATA[<p>Es lohnt sich nicht nur den Code übersichtlich zu schreiben, sondern ihn auch zu kommentieren:</p>
<pre><code>if(a&lt;b) { // a &lt; b
        if(c&lt;d) { // a &lt; b AND c &lt; d
            stat=1;
        } else { // a &lt; b AND d &lt;= c
            if(a&lt;c) { // a &lt; b AND d &lt;= c AND a &lt; c
                if(b&lt;d) {
                    stat=2;
                } else {
                    stat=3;
                }
            } else { // d &lt;= c &lt;= a &lt; b
                if(a&lt;d) { // kann nie erfüllt sein, da d &lt;= a!
                    if(b&lt;c) {
                        stat=4;
                    } else {
                        stat=5;
                    }
                } else {
                    stat=6;
                }
            } 
        } 
    } else {
        stat=7;
    }
</code></pre>
<p>dann sieht man sofort, dass die Bedingung <code>a&lt;d</code> in Zeile 12 nie erfüllt sein kann, da sie durch die vorher erfüllten Bedingungen bereits ausgeschlossen wurde. Damit vereinfacht sich das ganze zu:</p>
<pre><code>if(a&lt;b) { // a &lt; b
        if(c&lt;d) { // a &lt; b AND c &lt; d
            stat=1;
        } else { // a &lt; b AND d &lt;= c
            if(a&lt;c) { // a &lt; b AND d &lt;= c AND a &lt; c
                if(b&lt;d) {
                    stat=2;
                } else {
                    stat=3;
                }
            } else { // d &lt;= c &lt;= a &lt; b
                stat=6;
            } 
        } 
    } else {
        stat=7;
    }
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2314976</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2314976</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Fri, 12 Apr 2013 11:03:04 GMT</pubDate></item></channel></rss>