<?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[Übung Schaltjahr]]></title><description><![CDATA[<p>Hallo liebe Gemeinde.</p>
<p>Ich habe heute erst Übungen für meine Prüfung bekommen.</p>
<p>Die erste Übung lautet:</p>
<p>Schreiben sie eine Funktion istSchaltjahr(), die ermittelt, ob es sich bei einem eingegebenen Jahr um ein Schaltjahr handelt oder nicht. Der Funktion wird das Jahr übergeben, handelt es sich um ein Schaltjahr wird ‚true’ zurückgeliefert, wenn nicht ‚false’. Ein Jahr ist ein Schaltjahr, wenn die Jahreszahl durch 4 teilbar ist, aber nicht wenn sie durch 100 teilbar ist, außer wenn sie durch 400 teilbar ist. Der Rückgabedatentyp ist Boolean (bool).<br />
Lesen die Jahreszahl im Hauptprogramm ein und rufen sie diese Funktion aus dem Hauptprogramm auf. Das Ergebnis, ob es sich um ein Schaltjahr handelt oder nicht wird wieder im Hauptprogramm ausgegeben.<br />
Beispiel für die Ein- und Ausgabe:<br />
Zu prüfendes Jahr: 2000<br />
Das Jahr 2000 ist ein Schaltjahr</p>
<p>Bin ich mit folgendem Quellcode auf dem richtigen Weg??</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

bool istSchaltjahr(int Jahr)
{
	if(Jahr/4)
		if (Jahr/400)
		{
			Jahr = true;
		}
		else(Jahr/100)
		{
			Jahr = false
		}
}

int main()
{
	cout &lt;&lt; &quot;Pruefung auf Schaltjahr!&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;Zu pruefendes Jahr: &quot;;
	int Jahr;
	cin  &gt;&gt; Jahr;
	Jahr = Schaltjahr(Jahr);

	return 0;
}
</code></pre>
<p>Weil ich komme mir meilenweit davon entfernt vor, den richtigen Quellcode geschrieben zu haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/301681/übung-schaltjahr</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 19:25:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/301681.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 01 Apr 2012 16:14:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Übung Schaltjahr on Sun, 01 Apr 2012 16:14:33 GMT]]></title><description><![CDATA[<p>Hallo liebe Gemeinde.</p>
<p>Ich habe heute erst Übungen für meine Prüfung bekommen.</p>
<p>Die erste Übung lautet:</p>
<p>Schreiben sie eine Funktion istSchaltjahr(), die ermittelt, ob es sich bei einem eingegebenen Jahr um ein Schaltjahr handelt oder nicht. Der Funktion wird das Jahr übergeben, handelt es sich um ein Schaltjahr wird ‚true’ zurückgeliefert, wenn nicht ‚false’. Ein Jahr ist ein Schaltjahr, wenn die Jahreszahl durch 4 teilbar ist, aber nicht wenn sie durch 100 teilbar ist, außer wenn sie durch 400 teilbar ist. Der Rückgabedatentyp ist Boolean (bool).<br />
Lesen die Jahreszahl im Hauptprogramm ein und rufen sie diese Funktion aus dem Hauptprogramm auf. Das Ergebnis, ob es sich um ein Schaltjahr handelt oder nicht wird wieder im Hauptprogramm ausgegeben.<br />
Beispiel für die Ein- und Ausgabe:<br />
Zu prüfendes Jahr: 2000<br />
Das Jahr 2000 ist ein Schaltjahr</p>
<p>Bin ich mit folgendem Quellcode auf dem richtigen Weg??</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

bool istSchaltjahr(int Jahr)
{
	if(Jahr/4)
		if (Jahr/400)
		{
			Jahr = true;
		}
		else(Jahr/100)
		{
			Jahr = false
		}
}

int main()
{
	cout &lt;&lt; &quot;Pruefung auf Schaltjahr!&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;Zu pruefendes Jahr: &quot;;
	int Jahr;
	cin  &gt;&gt; Jahr;
	Jahr = Schaltjahr(Jahr);

	return 0;
}
</code></pre>
<p>Weil ich komme mir meilenweit davon entfernt vor, den richtigen Quellcode geschrieben zu haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2197690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2197690</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Sun, 01 Apr 2012 16:14:33 GMT</pubDate></item><item><title><![CDATA[Reply to Übung Schaltjahr on Sun, 01 Apr 2012 16:37:24 GMT]]></title><description><![CDATA[<p>Ein paar Hinweise:<br />
Eine Funktion gibt werte mit &quot;return Wert;&quot; zurück. Wobei &quot;Wert&quot; den gleichen Typ haben muss wie der Rückgabetyp der Funktion (in diesem Fall bool) :</p>
<pre><code class="language-cpp">bool istSchaltjahr(int Jahr){
...
return true;
}
</code></pre>
<p>Und du solltest du dir deine verschachtelten Bedingungen in der istSchaltjahr Funktion genauer ansehen. Im Moment ist das Jahr laut deiner Funktion nur ein Schaltjahr, wenn Jahr durch 4 UND durch 400 teilbar ist.</p>
<p>Außerdem weist du in Main einem Integer (Jahr) einen bool-Wert zu (den Rückgabewert der Funktion istSchaltjahr())</p>
<p>Und du solltest den Modulo operator ( % ) verwenden, also:</p>
<pre><code class="language-cpp">if(Jahr%4==0)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2197699</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2197699</guid><dc:creator><![CDATA[Thopthes]]></dc:creator><pubDate>Sun, 01 Apr 2012 16:37:24 GMT</pubDate></item><item><title><![CDATA[Reply to Übung Schaltjahr on Sun, 01 Apr 2012 16:30:38 GMT]]></title><description><![CDATA[<p>Du solltest Modulo verwenden und nicht /.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2197700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2197700</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Sun, 01 Apr 2012 16:30:38 GMT</pubDate></item><item><title><![CDATA[Reply to Übung Schaltjahr on Sun, 01 Apr 2012 17:07:20 GMT]]></title><description><![CDATA[<p>Ist folgender Ansatz richtig?</p>
<pre><code class="language-cpp">bool istSchaltjahr(int Jahr)
{
	bool schaltjahr = false;

	if(!(Jahr % 4))
	{
		if (!(Jahr % 100))
		{
			if (!(Jahr % 400))
				schaltjahr = true;
			else
				schaltjahr = false;
		}
		else
			schaltjahr = true;
	}

	return schaltjahr;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2197711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2197711</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Sun, 01 Apr 2012 17:07:20 GMT</pubDate></item><item><title><![CDATA[Reply to Übung Schaltjahr on Sun, 01 Apr 2012 17:14:45 GMT]]></title><description><![CDATA[<p>Nein... Debuggs halt durch, dann wirst du sehen, an welcher Stelle was falsches passiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2197712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2197712</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Sun, 01 Apr 2012 17:14:45 GMT</pubDate></item><item><title><![CDATA[Reply to Übung Schaltjahr on Sun, 01 Apr 2012 17:21:17 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">// Ermitteln ob ein Jahr ein Schaltjahr ist

#include &lt;iostream&gt;
using namespace std;

bool istSchaltjahr(int Jahr)
{
	bool schaltjahr = false;

	if(!(Jahr % 4))
	{
		if (!(Jahr % 100))
		{
			if (!(Jahr % 400))
				schaltjahr = true;
			else
				schaltjahr = false;
		}
		else
			schaltjahr = true;
	}

	return schaltjahr;
}

int main()
{
	cout &lt;&lt; &quot;Zu pruefendes Jahr: &quot;;
	int Jahr;
	cin  &gt;&gt; Jahr;

	Jahr = istSchaltjahr(Jahr);

	if (istSchaltjahr)
		cout &lt;&lt; &quot;Das Jahr &quot; &lt;&lt; Jahr &lt;&lt; &quot; ist ein Schaltjahr!&quot; &lt;&lt; endl;
	else
		cout &lt;&lt; &quot;Das Jahr &quot; &lt;&lt; Jahr &lt;&lt; &quot; ist kein Schaltjahr!&quot; &lt;&lt; endl;

	return 0;
}
</code></pre>
<p>Der Compiler/Debugger mekert zwar nicht, aber egal welches Jahr ich eingebe, es kommt immer ein Schaltjahr raus.<br />
Habe ich irgendetwas übersehen? Weil mir tut schon der Kopf weh vor lauter hinschauen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2197715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2197715</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Sun, 01 Apr 2012 17:21:17 GMT</pubDate></item><item><title><![CDATA[Reply to Übung Schaltjahr on Sun, 01 Apr 2012 17:26:30 GMT]]></title><description><![CDATA[<p>deswegen sollst du ja nicht hinschauen sondern mit dem Debugger Zeile für Zeile durch deine Funktion springen und dabei überlegen, ob das was der Code tut, das ist, was wirklich passieren sollte.</p>
<p>greetz KN4CK3R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2197717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2197717</guid><dc:creator><![CDATA[KN4CK3R]]></dc:creator><pubDate>Sun, 01 Apr 2012 17:26:30 GMT</pubDate></item><item><title><![CDATA[Reply to Übung Schaltjahr on Mon, 02 Apr 2012 08:16:58 GMT]]></title><description><![CDATA[<p>Das mit dem Debugger solltest du dir ausführlicher ansehen <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>
<p>Eigentlich merkst du schon bei der Bedienung des Programms wo es klemmt.<br />
Du gibst fürs Jahr z.B.: 2003 ein.<br />
Und was zeigen dir Zeile 35 oder 37 als Werte fürs Jahr?</p>
<p>Überleg mal warum das so ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2197854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2197854</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Mon, 02 Apr 2012 08:16:58 GMT</pubDate></item><item><title><![CDATA[Reply to Übung Schaltjahr on Mon, 02 Apr 2012 09:24:16 GMT]]></title><description><![CDATA[<p>silent_max schrieb:</p>
<blockquote>
<pre><code class="language-cpp">bool istSchaltjahr(int Jahr)
{
	bool schaltjahr = false;

	if(!(Jahr % 4))
	{
		if (!(Jahr % 100))
		{
			if (!(Jahr % 400))
				schaltjahr = true;
			else
				schaltjahr = false;
		}
		else
			schaltjahr = true;
	}
	
	return schaltjahr;
}
</code></pre>
</blockquote>
<p>SESE (single entry, singe exit) und die Bool'sche Flagge mag ich nicht. SESE ist unter C Programmierern beliebt. Es wird wohl eingesetzt, teilweise in Verbindung mit goto, um Resourcen vernünftig zu verwalten und die Freigabe nicht zu vergessen. In C++ brauchen wir das nicht. Ich finde das hier schöner:</p>
<pre><code class="language-cpp">bool istSchaltjahr(int Jahr)
{
    if ((Jahr %   4)!=0) return false;
    if ((Jahr % 400)==0) return true;
    if ((Jahr % 100)==0) return false;
    return true;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2197884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2197884</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Mon, 02 Apr 2012 09:24:16 GMT</pubDate></item><item><title><![CDATA[Reply to Übung Schaltjahr on Mon, 02 Apr 2012 16:27:44 GMT]]></title><description><![CDATA[<p>f.-th. schrieb:</p>
<blockquote>
<p>Das mit dem Debugger solltest du dir ausführlicher ansehen <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>
<p>Eigentlich merkst du schon bei der Bedienung des Programms wo es klemmt.<br />
Du gibst fürs Jahr z.B.: 2003 ein.<br />
Und was zeigen dir Zeile 35 oder 37 als Werte fürs Jahr?</p>
<p>Überleg mal warum das so ist?</p>
</blockquote>
<p>Ich habe einmal nachgedacht.</p>
<p>Irgendwie haut das mit der Funktionsübergabe noch nicht hin. Ich sehe einfach den Fehler nicht.</p>
<pre><code class="language-cpp">int main()
{
	cout &lt;&lt; &quot;Zu pruefendes Jahr: &quot;;
	int Jahr;
	cin  &gt;&gt; Jahr;

	int Jahr_ = istSchaltjahr(Jahr);

	if (istSchaltjahr)
		cout &lt;&lt; &quot;Das Jahr &quot; &lt;&lt; Jahr_ &lt;&lt; &quot; ist ein Schaltjahr!&quot; &lt;&lt; endl;
	else
		cout &lt;&lt; &quot;Das Jahr &quot; &lt;&lt; Jahr_ &lt;&lt; &quot; ist kein Schaltjahr!&quot; &lt;&lt; endl;

	return 0;
}
</code></pre>
<p>Hat einer von euch einen Tipp oder einen Hinweis?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2198047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2198047</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Mon, 02 Apr 2012 16:27:44 GMT</pubDate></item><item><title><![CDATA[Reply to Übung Schaltjahr on Mon, 02 Apr 2012 16:38:29 GMT]]></title><description><![CDATA[<p>Du sollst nicht raten <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>
<p>Jetzt hast du Zeile 7 noch verschlimmbessert. Lass die weg.<br />
Auch deine anderen Verbesserungen sind schlecht.</p>
<p>Ergänze statt dessen Zeile 9 entsprechend.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2198048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2198048</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Mon, 02 Apr 2012 16:38:29 GMT</pubDate></item><item><title><![CDATA[Reply to Übung Schaltjahr on Mon, 02 Apr 2012 16:56:27 GMT]]></title><description><![CDATA[<p>f.-th. schrieb:</p>
<blockquote>
<p>Du sollst nicht raten <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>
<p>Jetzt hast du Zeile 7 noch verschlimmbessert. Lass die weg.<br />
Auch deine anderen Verbesserungen sind schlecht.</p>
<p>Ergänze statt dessen Zeile 9 entsprechend.</p>
</blockquote>
<pre><code class="language-cpp">// Ermitteln ob ein Jahr ein Schaltjahr ist

#include &lt;iostream&gt;
using namespace std;

bool istSchaltjahr(int Jahr)
{
    bool schaltjahr = false;

    if(!(Jahr % 4))
    {
        if (!(Jahr % 100))
        {
            if (!(Jahr % 400))
                schaltjahr = true;
            else
                schaltjahr = false;
        }
        else
            schaltjahr = true;
    }

    return schaltjahr;
}

int main()
{
	cout &lt;&lt; &quot;Zu pruefendes Jahr: &quot;;
	int Jahr;
	cin  &gt;&gt; Jahr;

	istSchaltjahr(Jahr);

	if (Jahr)
		cout &lt;&lt; &quot;Das Jahr &quot; &lt;&lt; Jahr &lt;&lt; &quot; ist ein Schaltjahr!&quot; &lt;&lt; endl;
	else
		cout &lt;&lt; &quot;Das Jahr &quot; &lt;&lt; Jahr &lt;&lt; &quot; ist kein Schaltjahr!&quot; &lt;&lt; endl;

	return 0;
}
</code></pre>
<p>So, jetzt wird wenigstens etwas sinnvolles, aber nicht richtiges ausgegeben.</p>
<p>Jetzt ist komischerweise jedes Jahr, das ich eingebe, ein Schaltjahr. Dann muss ja doch noch an der Funktion etwas verkehrt sein.</p>
<p>Ich bitte euch echt um Hilfe, ich bin kurz davor, durchzudrehen, da ich den Fehler einfach nicht sehe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2198050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2198050</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Mon, 02 Apr 2012 16:56:27 GMT</pubDate></item><item><title><![CDATA[Reply to Übung Schaltjahr on Mon, 02 Apr 2012 16:59:11 GMT]]></title><description><![CDATA[<p>Boa hier:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

bool istSchaltjahr(int jahr)
{
    if((jahr % 4 == 0) &amp;&amp; (jahr % 100 != 0))
        return true;
    else if(jahr % 400 == 0)
        return true;
    return false;
}

int main()
{
    int einJahr;
    std::cout &lt;&lt; &quot;Gebe ein jahr ein: &quot;;
    std::cin &gt;&gt; einJahr;
    if(istSchaltjahr(einJahr))
        std::cout &lt;&lt; einJahr &lt;&lt; &quot; ist ein Schaltjahr!\n&quot;;
    else
        std::cout &lt;&lt; einJahr &lt;&lt; &quot; ist kein Schaltjahr!\n&quot;;
    return 0;
}
</code></pre>
<p>Die Funktion <code>istSchaltjahr(int jahr)</code> ist 1:1 von <a href="http://de.wikipedia.org/wiki/Schaltjahr#Berechnung" rel="nofollow">diesem</a> Satz abgelitten.</p>
<p>Edit: Naja ok, es sind 2 Sätze. Die ersten beiden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2198052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2198052</guid><dc:creator><![CDATA[Incocnito]]></dc:creator><pubDate>Mon, 02 Apr 2012 16:59:11 GMT</pubDate></item></channel></rss>