<?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[c++ geldwechsel klasse]]></title><description><![CDATA[<p>Hallo allerseits,<br />
ich suche mal wieder nach Rat <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>
<p>und zwar bin ich grade dabei eine klasse zu schreiben die dazu dient einen betrag in möglichst wenige scheine, bzw. münzen zu wechseln<br />
also bei 420 soll der 4x100 und 1x20 ausrechnen.</p>
<p>nun hab ich daran schon einiges geändert und hänge an folgendem:<br />
ich habe zwei funktionen eingebaut die 1. den restbetrag nach der ersten rechnung ausgibt und 2. die berechnet wie viel der aktuellen scheinart vorhanden sind<br />
die erste gibt mir den restbetrag genau richtig zurück und die zweite auch die scheine, jedoch kann ich die scheine ausrechnen wenn ich beide nacheinander aufrufe.. es kommt immer 0 raus</p>
<p>meine vermutung: da ja bereits ein restbetrag ausgerechnet wurde und dann ja mit dem rest weitergerechnet wird</p>
<p>meine frage ist wie ich der sache aus dem weg gehen kann und ich komme nicht drauf weil ich ein wenig aus der übung bin <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=":/"
      alt="😕"
    /></p>
<p>vielen dank schonmal im voraus<br />
greetz isi</p>
<p>das ist mein source so wie er momentan aussieht:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;iomanip.h&gt;

using namespace std;

class GeldWechselRechner
{
    private:
    int restbetrag;
    public:

    int scheinmu[6];
    int scheine;

   GeldWechselRechner()
   {

       scheinmu[0]=100;
       scheinmu[1]=50;
       scheinmu[2]=20;
       scheinmu[3]=10;
       scheinmu[4]=5;
       scheinmu[5]=2;
       scheinmu[6]=1;
   }

   int restberechnen(int zaehler)
   {
        restbetrag=restbetrag%scheinmu[zaehler];
        return restbetrag;
   }

    int scheineausgeben(int zaehler)
    {
        scheine=restbetrag/scheinmu[zaehler];
        setprecision(2);
        return scheine;
    }

    void wechseln()
    {
            int zaehler=0;

            if(restbetrag&gt;0)
            {
            cout&lt;&lt;restberechnen(zaehler)&lt;&lt;endl;
            cout&lt;&lt;scheineausgeben(zaehler);
                zaehler+=1;
            }

    }

    int eingeben(int value)
    {
    restbetrag=value;
    }
};

int main()
{
    int eingabe;
    GeldWechselRechner gwr;
    cout&lt;&lt;&quot;Zu wechselnder Betrag: &quot;;
    cin&gt;&gt;eingabe;
    gwr.eingeben(eingabe);
    gwr.wechseln();

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/280963/c-geldwechsel-klasse</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 22:28:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/280963.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 24 Jan 2011 18:04:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to c++ geldwechsel klasse on Mon, 24 Jan 2011 18:08:05 GMT]]></title><description><![CDATA[<p>Hallo allerseits,<br />
ich suche mal wieder nach Rat <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>
<p>und zwar bin ich grade dabei eine klasse zu schreiben die dazu dient einen betrag in möglichst wenige scheine, bzw. münzen zu wechseln<br />
also bei 420 soll der 4x100 und 1x20 ausrechnen.</p>
<p>nun hab ich daran schon einiges geändert und hänge an folgendem:<br />
ich habe zwei funktionen eingebaut die 1. den restbetrag nach der ersten rechnung ausgibt und 2. die berechnet wie viel der aktuellen scheinart vorhanden sind<br />
die erste gibt mir den restbetrag genau richtig zurück und die zweite auch die scheine, jedoch kann ich die scheine ausrechnen wenn ich beide nacheinander aufrufe.. es kommt immer 0 raus</p>
<p>meine vermutung: da ja bereits ein restbetrag ausgerechnet wurde und dann ja mit dem rest weitergerechnet wird</p>
<p>meine frage ist wie ich der sache aus dem weg gehen kann und ich komme nicht drauf weil ich ein wenig aus der übung bin <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=":/"
      alt="😕"
    /></p>
<p>vielen dank schonmal im voraus<br />
greetz isi</p>
<p>das ist mein source so wie er momentan aussieht:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;iomanip.h&gt;

using namespace std;

class GeldWechselRechner
{
    private:
    int restbetrag;
    public:

    int scheinmu[6];
    int scheine;

   GeldWechselRechner()
   {

       scheinmu[0]=100;
       scheinmu[1]=50;
       scheinmu[2]=20;
       scheinmu[3]=10;
       scheinmu[4]=5;
       scheinmu[5]=2;
       scheinmu[6]=1;
   }

   int restberechnen(int zaehler)
   {
        restbetrag=restbetrag%scheinmu[zaehler];
        return restbetrag;
   }

    int scheineausgeben(int zaehler)
    {
        scheine=restbetrag/scheinmu[zaehler];
        setprecision(2);
        return scheine;
    }

    void wechseln()
    {
            int zaehler=0;

            if(restbetrag&gt;0)
            {
            cout&lt;&lt;restberechnen(zaehler)&lt;&lt;endl;
            cout&lt;&lt;scheineausgeben(zaehler);
                zaehler+=1;
            }

    }

    int eingeben(int value)
    {
    restbetrag=value;
    }
};

int main()
{
    int eingabe;
    GeldWechselRechner gwr;
    cout&lt;&lt;&quot;Zu wechselnder Betrag: &quot;;
    cin&gt;&gt;eingabe;
    gwr.eingeben(eingabe);
    gwr.wechseln();

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2011368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011368</guid><dc:creator><![CDATA[isi147]]></dc:creator><pubDate>Mon, 24 Jan 2011 18:08:05 GMT</pubDate></item><item><title><![CDATA[Reply to c++ geldwechsel klasse on Mon, 24 Jan 2011 18:07:03 GMT]]></title><description><![CDATA[<p>Was mir als erstes aufgefallen ist ist, dass Scheinmu[7] sein muss, nicht 6. Korrigier den Quelltext - tritt der Fehler immer noch auf?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011370</guid><dc:creator><![CDATA[Zenker]]></dc:creator><pubDate>Mon, 24 Jan 2011 18:07:03 GMT</pubDate></item><item><title><![CDATA[Reply to c++ geldwechsel klasse on Mon, 24 Jan 2011 18:10:01 GMT]]></title><description><![CDATA[<p>Es muss auch void eingabe sein und #include &lt;iomanip&gt; ohne &quot;.h&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011371</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Mon, 24 Jan 2011 18:10:01 GMT</pubDate></item><item><title><![CDATA[Reply to c++ geldwechsel klasse on Mon, 24 Jan 2011 18:10:58 GMT]]></title><description><![CDATA[<p>ja is noch gleich geblieben.. der arbeitet ja bis jetzt noch nicht bis zum 7. wert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011372</guid><dc:creator><![CDATA[isi147]]></dc:creator><pubDate>Mon, 24 Jan 2011 18:10:58 GMT</pubDate></item><item><title><![CDATA[Reply to c++ geldwechsel klasse on Mon, 24 Jan 2011 18:14:48 GMT]]></title><description><![CDATA[<p>Muss das nicht irgendwie so gehen</p>
<p>statt:</p>
<pre><code class="language-cpp">if(restbetrag&gt;0)
            {
            cout&lt;&lt;restberechnen(zaehler)&lt;&lt;endl;
            cout&lt;&lt;scheineausgeben(zaehler);
                zaehler+=1;
            }
</code></pre>
<p>nicht sowas stehen wie:</p>
<pre><code class="language-cpp">while(restbetrag&gt;0)
{
restbetrag = restberechnen(zahler);
cout &lt;&lt; &quot;xxx&quot;;
//Scheineausgeben
zaehler++;
}
</code></pre>
<p>(Code aus dem Kopf geschrieben)<br />
Mir fehlt das durch alle Zaehler gehen total oder hab ich das übersehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011377</guid><dc:creator><![CDATA[Zenker]]></dc:creator><pubDate>Mon, 24 Jan 2011 18:14:48 GMT</pubDate></item><item><title><![CDATA[Reply to c++ geldwechsel klasse on Mon, 24 Jan 2011 18:29:18 GMT]]></title><description><![CDATA[<p>also das mit der while schleife is schon richtig aber dass hab ich alles noch net eingebaut weil ich erstma die funktionalität sicher gestellt haben wollte<br />
befor das mir alles nur verwirrender wird hab ich das so gelassen</p>
<p>danke für die vielen antworten schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011396</guid><dc:creator><![CDATA[isi147]]></dc:creator><pubDate>Mon, 24 Jan 2011 18:29:18 GMT</pubDate></item><item><title><![CDATA[Reply to c++ geldwechsel klasse on Mon, 24 Jan 2011 18:35:10 GMT]]></title><description><![CDATA[<p>Du brauchst eigentlich nur 3 variablen und 3 Funktionen mit einem Konstruktor.</p>
<p>Die Funktionen sind: Eingabe/Ausgabe/Wechseln<br />
Die Variablen sind: scheine[7], anzahl[7] (oder mehrdimensionales array), betrag</p>
<p>In Ausgeben wird nichts weiter gemacht als durch scheine und Anzahl zu iterieren und diese werte auszugeben z.B. so:</p>
<pre><code class="language-cpp">void Ausgeben()
{
	for(int i = 0; i &lt; 7; ++i)
		cout &lt;&lt; &quot;\nSchein: &quot; &lt;&lt; scheine[i] &lt;&lt; &quot;\n Anzahl: &quot; &lt;&lt; anzahl[i] &lt;&lt; &quot;\n&quot;;
}
</code></pre>
<p>&quot;Eingeben&quot; hast du schon richtig.</p>
<p>Beim Konstruktor müsst man den Anzahl-Array noch auf 0 setzen bzw. man sollte direkt einen Betrag mitgeben können.</p>
<pre><code class="language-cpp">GeldWechselRechner(int betrag): betrag(betrag)
{ 
    scheine[0]=100; 
    scheine[1]=50; 
    scheine[2]=20; 
    scheine[3]=10; 
    scheine[4]=5; 
    scheine[5]=2; 
    scheine[6]=1;

    for(int i = 0; i &lt; 7; ++i)
       anzahl[i] = 0;
}
</code></pre>
<p>Das wechseln ist wohl für dich der schwierigste Teil. Dafür brauchst du eine while- und eine for-schleife. Du musst für jeden schein den restbetrag solange verringern, bis dieser nichtmehr verringerbar ist. Bei jedem while-durchlauf wird dann das Ergebnis in anzahl[] hochgezählt. Das könnte dann so aussehen:</p>
<pre><code class="language-cpp">void Wechseln() 
{ 
	int restbetrag = betrag;

	for(int i = 0; i &lt; 7; ++i)
	{
		while(restbetrag &gt;= scheine[i])
		{
			restbetrag -= scheine[i];
			++anzahl[i];
		}
	}
}
</code></pre>
<p>Setzt du das alles zusammen hast du deine Klasse schon <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="😉"
    /><br />
Mit dem neuen Konstruktor verwendest du die Klasse dann wie folgt:</p>
<pre><code class="language-cpp">GeldWechselRechner gwr(eingabe);
gwr.Wechseln();
gwr.Ausgeben();
</code></pre>
<p>Viel spaß!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011404</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Mon, 24 Jan 2011 18:35:10 GMT</pubDate></item><item><title><![CDATA[Reply to c++ geldwechsel klasse on Mon, 24 Jan 2011 18:44:13 GMT]]></title><description><![CDATA[<p>Ich würd die Klasse anders schreiben:</p>
<pre><code class="language-cpp">void Wechseln()
{
    int restbetrag = betrag;

    for(int i = 0; i &lt; 7; ++i)
    {
        while(restbetrag &gt;= scheine[i])
        {
            restbetrag -= scheine[i];
            ++anzahl[i];
        }
    }
}
</code></pre>
<p>in</p>
<pre><code class="language-cpp">void Wechseln()
{
int restbetrag = betrag;

for(int i=0;(restbetrag &gt; 0);i++)
{
anzahl[i} = restbetrag/scheine[i];
restbetrag = restbetrag%scheine[i];
}
}
</code></pre>
<p>Könnte aufgrund der Division zwar langsamer sein, find ich aber leichter zu verstehen und &quot;schöner&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011412</guid><dc:creator><![CDATA[Zenker]]></dc:creator><pubDate>Mon, 24 Jan 2011 18:44:13 GMT</pubDate></item><item><title><![CDATA[Reply to c++ geldwechsel klasse on Mon, 24 Jan 2011 18:46:48 GMT]]></title><description><![CDATA[<p>Zenker schrieb:</p>
<blockquote>
<p>Könnte aufgrund der Division zwar langsamer sein, find ich aber leichter zu verstehen und &quot;schöner&quot;</p>
</blockquote>
<p>Finde ich nicht ;), aber da sieht man wieder, dass mehrere Wege nach Rom führen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011416</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Mon, 24 Jan 2011 18:46:48 GMT</pubDate></item><item><title><![CDATA[Reply to c++ geldwechsel klasse on Mon, 24 Jan 2011 18:59:57 GMT]]></title><description><![CDATA[<p>wow vielen dank dafür an alle<br />
werde mich gleich dransetzen</p>
<p>greetz isi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011421</guid><dc:creator><![CDATA[isi147]]></dc:creator><pubDate>Mon, 24 Jan 2011 18:59:57 GMT</pubDate></item><item><title><![CDATA[Reply to c++ geldwechsel klasse on Mon, 24 Jan 2011 19:15:52 GMT]]></title><description><![CDATA[<p>Ich persönlich würde für Eingabe und Ausgabe die Stream-Operatoren überladen. Ist wohl Geschmackssache.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011439</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 24 Jan 2011 19:15:52 GMT</pubDate></item><item><title><![CDATA[Reply to c++ geldwechsel klasse on Mon, 24 Jan 2011 19:20:34 GMT]]></title><description><![CDATA[<p>Ich auch aber, das hilft dem TA wenig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2011444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2011444</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Mon, 24 Jan 2011 19:20:34 GMT</pubDate></item></channel></rss>