<?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[Klausuraufgabe....]]></title><description><![CDATA[<p>in der klausur bekommen z.B folgenden quellcode und müssen die ausgabe des programms hinschreiben. allderings versteh ich einiges an diesem programm nich und hoffe das mir einer weiterhelfen kann...</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;
string fu (string alpha, unsigned int &amp;aRef) 
{do
{ if(aRef%2 ==0)
alpha =&quot;1&quot; + alpha;
else
alpha =&quot;0&quot; + alpha;
aRef/=2;
} while(aRef!=0);
return alpha;
}
int main ()
{ unsigned int n=0;
string beta;
n=2899;
cout &lt;&lt; &quot;Ergebnis: &quot; &lt;&lt; fu(beta,n) &lt;&lt; endl;
return 0;
}
</code></pre>
<p>//was genau sollen die 2 weiteren variabeln in der klammer bedueten, die nach string fu kommen? wo genau wird die referenzvariable aRef definiert??!?!<br />
wie läuft das programm überhaupt in einezelnen ab, ich find das sehr verwirrend.</p>
<p>die ausgabe sollte: 010010101100 lauten, aber wie kommt man darauf? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/296704/klausuraufgabe</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 17:55:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/296704.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 10 Dec 2011 13:54:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klausuraufgabe.... on Sat, 10 Dec 2011 13:54:14 GMT]]></title><description><![CDATA[<p>in der klausur bekommen z.B folgenden quellcode und müssen die ausgabe des programms hinschreiben. allderings versteh ich einiges an diesem programm nich und hoffe das mir einer weiterhelfen kann...</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;
string fu (string alpha, unsigned int &amp;aRef) 
{do
{ if(aRef%2 ==0)
alpha =&quot;1&quot; + alpha;
else
alpha =&quot;0&quot; + alpha;
aRef/=2;
} while(aRef!=0);
return alpha;
}
int main ()
{ unsigned int n=0;
string beta;
n=2899;
cout &lt;&lt; &quot;Ergebnis: &quot; &lt;&lt; fu(beta,n) &lt;&lt; endl;
return 0;
}
</code></pre>
<p>//was genau sollen die 2 weiteren variabeln in der klammer bedueten, die nach string fu kommen? wo genau wird die referenzvariable aRef definiert??!?!<br />
wie läuft das programm überhaupt in einezelnen ab, ich find das sehr verwirrend.</p>
<p>die ausgabe sollte: 010010101100 lauten, aber wie kommt man darauf? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155376</guid><dc:creator><![CDATA[Juleian*]]></dc:creator><pubDate>Sat, 10 Dec 2011 13:54:14 GMT</pubDate></item><item><title><![CDATA[Reply to Klausuraufgabe.... on Sat, 10 Dec 2011 14:02:50 GMT]]></title><description><![CDATA[<p>Das ist der Kopf einer Funktion, keine Variable.</p>
<p>Das Programm ist (hoffentlich) absichtlich schlecht und unübersichtlich geschrieben. Wenn man den gröbsten Unfug rauskürzt, wird es schon viel lesbarer:</p>
<pre><code class="language-cpp">string funktion(unsigned int wert)
{
  string ergebnis;
  do
    { 
      if(wert % 2 == 0)
        ergebnis = &quot;1&quot; + ergebnis;
      else
        ergebnis = &quot;0&quot; + ergebnis;
      wert /= 2;
    } 
  while(wert != 0);
  return ergebnis;
}

int main ()
{
  cout &lt;&lt; &quot;Ergebnis: &quot; &lt;&lt; funktion(2899) &lt;&lt; endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2155379</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155379</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 10 Dec 2011 14:02:50 GMT</pubDate></item><item><title><![CDATA[Reply to Klausuraufgabe.... on Sat, 10 Dec 2011 15:14:22 GMT]]></title><description><![CDATA[<p>könntest du mir vllt kurz erklären was denn genau passiert?<br />
offensichtlich wird die funktion (dadruch wirds für mich schon klarer^^)<br />
mit dem wert 2899 gefüttert. dann erfolgt irgendeine modulorechnung mit resten?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155411</guid><dc:creator><![CDATA[Juleian*]]></dc:creator><pubDate>Sat, 10 Dec 2011 15:14:22 GMT</pubDate></item><item><title><![CDATA[Reply to Klausuraufgabe.... on Sat, 10 Dec 2011 15:17:23 GMT]]></title><description><![CDATA[<p>&quot;Irgendeine Modulorechnung mit Resten&quot;, ja. <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="😃"
    /><br />
Such mal danach, wie man in verschiedene Zahlensysteme umrechnet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155414</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 10 Dec 2011 15:17:23 GMT</pubDate></item><item><title><![CDATA[Reply to Klausuraufgabe.... on Sat, 10 Dec 2011 15:19:08 GMT]]></title><description><![CDATA[<p>Juleian* schrieb:</p>
<blockquote>
<p>könntest du mir vllt kurz erklären was denn genau passiert?<br />
offensichtlich wird die funktion (dadruch wirds für mich schon klarer^^)<br />
mit dem wert 2899 gefüttert. dann erfolgt irgendeine modulorechnung mit resten?!</p>
</blockquote>
<p>genau. wenn man sich mal den algorythmus ansieht, würde man auch ziemlich schnell sehen, was da genau passiert.</p>
<p>edit: tz, schon wieder alles verraten - und dann auch noch vor mir^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155416</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 10 Dec 2011 15:19:08 GMT</pubDate></item><item><title><![CDATA[Reply to Klausuraufgabe.... on Sat, 10 Dec 2011 15:49:54 GMT]]></title><description><![CDATA[<p>ja wie man in in verschidene zahlensysteme umrechnet kann ich. da das ergebnis nur 10101010 is müsste es das binärsystem sein. aber wie setzt das programm das um und woran erkennt man überhaupt was im einzelnen passiert.... bin im 1.semester, seid also gnädig mit mir <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155423</guid><dc:creator><![CDATA[Juleian*]]></dc:creator><pubDate>Sat, 10 Dec 2011 15:49:54 GMT</pubDate></item><item><title><![CDATA[Reply to Klausuraufgabe.... on Sat, 10 Dec 2011 16:01:58 GMT]]></title><description><![CDATA[<p>Die Funktion macht das im Prinzip genau so, wie du es auch auf dem Papier machen würdest? Was gibt es da nicht zu verstehen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Am besten du nimmst dir einfach mal ein Blatt Papier und verfolgst den Programmablauf.</p>
<p>Bei main() wird angefangen. Als erstes wird &quot;Ergebnis: &quot; ausgegeben, gut das ist nicht so spannend. Dann wird funktion(2899) aufgerufen. Ok, also springen wir in &quot;funktion()&quot;. wert ist jetzt 2899. Ist wert mod 2 == 0? Nein, also packen wir eine '0' vorne an &quot;Ergebnis&quot;. Jetzt teilen wir wert durch 2, wert ist jetzt 1449. (Integerdivision, alles hinterm Komma wird abgeschnitten.)<br />
Und so weiter und so fort.<br />
PS: Bist du dir sicher, dass die if() Abfrage so sein soll? Die macht nämlich für das Binärsystem genau da Nullen hin wo Einsen sein sollten und umgekehrt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155428</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 10 Dec 2011 16:01:58 GMT</pubDate></item><item><title><![CDATA[Reply to Klausuraufgabe.... on Sat, 10 Dec 2011 16:05:40 GMT]]></title><description><![CDATA[<p>hab das so aus ner altklausur kopiert, kann ja als zusätzliche hürde so gemacht sein^^ deine beschreibung hilft mir auf jeden fall schon mal das ganze nachvollziehen zu können^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155429</guid><dc:creator><![CDATA[Juleian*]]></dc:creator><pubDate>Sat, 10 Dec 2011 16:05:40 GMT</pubDate></item><item><title><![CDATA[Reply to Klausuraufgabe.... on Sat, 10 Dec 2011 16:06:50 GMT]]></title><description><![CDATA[<p>1. Gucke, was Zahl modulo 2 ist. Wenn es 0 ist, merken wir uns die Ziffer '0', wenn es 1 ist, merken wir uns die Ziffer '1'. Warum? Wie bekommt man die letzte Ziffer einer Zahl im Zehnersystem? Man schaut sich die Zahl modulo 10 an! 12345 % 10 = 5, 54321 % 10 = 1. Genauso im Zweiersystem, aber eben mit 2 als Basis.<br />
2. Teile durch Zwei und vergesse den Divisionsrest. Warum? Wie schiebt man eine Zahl im Zehnersystem um eine Ziffer nach rechts? Man teilt durch 10 ohne Rest! 12345 / 10 = 1234, 54321 / 10 = 5432. Genauso im Zweiersystem, aber eben mit 2 als Basis.<br />
3. Gehe zurück zu 1., bis der Wert 0 geworden ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155430</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 10 Dec 2011 16:06:50 GMT</pubDate></item><item><title><![CDATA[Reply to Klausuraufgabe.... on Sat, 10 Dec 2011 16:10:44 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>PS: Bist du dir sicher, dass die if() Abfrage so sein soll? Die macht nämlich für das Binärsystem genau da Nullen hin wo Einsen sein sollten und umgekehrt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Das ist wahrscheinlich Absicht. Das Programm soll nichts sinnvolles tun. Die Ursprungsfassung war ja sogar absichtlich schwer verständlich. Man soll lernen, wie man selber Programmcode nachvollziehen kann und zwar nicht einfach am Ergebnis ablesen, sondern indem man sich den Code anguckt und versteht. Leider etwas, wo der Threadersteller in doppelter Hinsicht versagt hat <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="😞"
    /> , da er erstens schon bei Lesen des Codes gescheitert ist als auch den sauber aufgeschriebenen Algorithmus nicht nachvollziehen konnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2155431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2155431</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 10 Dec 2011 16:10:44 GMT</pubDate></item><item><title><![CDATA[Reply to Klausuraufgabe.... on Wed, 14 Dec 2011 18:47:17 GMT]]></title><description><![CDATA[<p>Hab das Programm so soweit nachvollziehen können, nur verstehe ich nicht ganz warum das Programm: 010010101100 ausgibt. Hätte das Ergebnis genau in verkehrter reihenfolge ausgegeben. Woran kann man im Quellcode sehen, dass die Neue Zahl bei 0 oder 1 + alpha vor die alte kommt und nicht dahinter?</p>
<p>hoffe ihr versteht was ich meine <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2156958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156958</guid><dc:creator><![CDATA[Juleian*]]></dc:creator><pubDate>Wed, 14 Dec 2011 18:47:17 GMT</pubDate></item><item><title><![CDATA[Reply to Klausuraufgabe.... on Wed, 14 Dec 2011 19:02:58 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">alpha =&quot;1&quot; + alpha;
</code></pre>
<p>Bedeutet aus &quot;1&quot; + alpha wird ein neuer temporärer String gebildet und an alpha zugewiesen.<br />
Anfügen wäre</p>
<pre><code class="language-cpp">alpha = alpha + &quot;1&quot;;
</code></pre>
<p>wobei man in im Falle des Anfügens auf den temporären String verzichten und besser</p>
<pre><code class="language-cpp">alpha += '1';
</code></pre>
<p>schreiben sollte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156965</guid><dc:creator><![CDATA[Thorgrim]]></dc:creator><pubDate>Wed, 14 Dec 2011 19:02:58 GMT</pubDate></item></channel></rss>