<?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[Brauche Hilfe - Aufgabe von Stroustrup - Kapitel 4]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bräuchte Hilfe bei Aufgabe 6 aus dem Buch Einführung in die Programmierung mit C++ - Kapitel 4.</p>
<p>Die Aufgabe ist, das ich eine double Variable einlesen und dann den Wert ausgeben soll und je nachdem ob es dann der bisher größte oder kleinste Wert ist hinter dem Wert „ ist größer“ oder „ ist kleinster“ Wert ausgeben soll.</p>
<p>Bei dem größten Wert ist das kein Problem. Ich initialisiere max. mit 0 und alles was größer ist, ist dann der erste max. wert.<br />
Wenn ich dann 3 eingebe wäre das ja der bisher kleinste Wert abhängig von max. also initialisiere ich min. mit dem Wert von max. wenn min noch 0 ist.<br />
Das klappt dann soweit bis ich wieder eine 0 eingebe - dann wird min wieder resettet also auf den Wert von max. gesetzt.</p>
<p>Außerdem funktioniert die Eingabe bei 1 2 1 nicht. Die Bedingung für min. lautet ja ob die eingeben Zahl kleiner als min. ist. Da min. = max. nach dem ersten Durchlauf ist gilt das also nicht. Würde ich aber kleiner gleich benutzen würde die Ausgabe bei allen doppelten min. Werten erscheinen.</p>
<p>Da Code mehr als tausend Worte sagt:</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

int main(){
	double value, max = 0, min = 0;

	while (cin &gt;&gt; value){
		cout &lt;&lt; value;

		if (value &gt; max){
			max = value;
			cout &lt;&lt; &quot; bisher der groesste Wert\n&quot;;
		}

		if (value == max &amp;&amp; min == 0)
			min = max;

		if (value &lt; min){
			min = value;
			cout &lt;&lt; &quot; bisher der kleinste Wert\n&quot;;
		}
	}
	return 0;
}
</code></pre>
<p>Gruß Dentho</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/321694/brauche-hilfe-aufgabe-von-stroustrup-kapitel-4</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Jul 2026 06:04:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/321694.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 21 Nov 2013 13:09:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Brauche Hilfe - Aufgabe von Stroustrup - Kapitel 4 on Thu, 21 Nov 2013 13:09:04 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bräuchte Hilfe bei Aufgabe 6 aus dem Buch Einführung in die Programmierung mit C++ - Kapitel 4.</p>
<p>Die Aufgabe ist, das ich eine double Variable einlesen und dann den Wert ausgeben soll und je nachdem ob es dann der bisher größte oder kleinste Wert ist hinter dem Wert „ ist größer“ oder „ ist kleinster“ Wert ausgeben soll.</p>
<p>Bei dem größten Wert ist das kein Problem. Ich initialisiere max. mit 0 und alles was größer ist, ist dann der erste max. wert.<br />
Wenn ich dann 3 eingebe wäre das ja der bisher kleinste Wert abhängig von max. also initialisiere ich min. mit dem Wert von max. wenn min noch 0 ist.<br />
Das klappt dann soweit bis ich wieder eine 0 eingebe - dann wird min wieder resettet also auf den Wert von max. gesetzt.</p>
<p>Außerdem funktioniert die Eingabe bei 1 2 1 nicht. Die Bedingung für min. lautet ja ob die eingeben Zahl kleiner als min. ist. Da min. = max. nach dem ersten Durchlauf ist gilt das also nicht. Würde ich aber kleiner gleich benutzen würde die Ausgabe bei allen doppelten min. Werten erscheinen.</p>
<p>Da Code mehr als tausend Worte sagt:</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

int main(){
	double value, max = 0, min = 0;

	while (cin &gt;&gt; value){
		cout &lt;&lt; value;

		if (value &gt; max){
			max = value;
			cout &lt;&lt; &quot; bisher der groesste Wert\n&quot;;
		}

		if (value == max &amp;&amp; min == 0)
			min = max;

		if (value &lt; min){
			min = value;
			cout &lt;&lt; &quot; bisher der kleinste Wert\n&quot;;
		}
	}
	return 0;
}
</code></pre>
<p>Gruß Dentho</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2366796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2366796</guid><dc:creator><![CDATA[Lynox]]></dc:creator><pubDate>Thu, 21 Nov 2013 13:09:04 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe - Aufgabe von Stroustrup - Kapitel 4 on Thu, 21 Nov 2013 13:12:08 GMT]]></title><description><![CDATA[<pre><code>#include &lt;limits&gt;

double min = std::numeric_limits&lt;double&gt;::max();
double max = std::numeric_limits&lt;double&gt;::min();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2366799</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2366799</guid><dc:creator><![CDATA[qweasdyxvhgshgerh]]></dc:creator><pubDate>Thu, 21 Nov 2013 13:12:08 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe - Aufgabe von Stroustrup - Kapitel 4 on Thu, 21 Nov 2013 13:38:01 GMT]]></title><description><![CDATA[<p>Vielen Dank! Kannte zwar den Befehl aber wäre da jetzt echt nicht drauf gekommen <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/2366808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2366808</guid><dc:creator><![CDATA[Lynox]]></dc:creator><pubDate>Thu, 21 Nov 2013 13:38:01 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe - Aufgabe von Stroustrup - Kapitel 4 on Thu, 21 Nov 2013 13:46:35 GMT]]></title><description><![CDATA[<p>du kannst alternativ auch den ersten eingelesenen wert direkt in min und max reinschreiben (also ohne die bedingung bei der if).</p>
<p>und die sache bei zeile 15 solltest du lassen, gleichheits-vergleiche bei fliesskommazahlen machen oft nicht was du denkst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2366809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2366809</guid><dc:creator><![CDATA[asfsa]]></dc:creator><pubDate>Thu, 21 Nov 2013 13:46:35 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe - Aufgabe von Stroustrup - Kapitel 4 on Thu, 21 Nov 2013 14:04:34 GMT]]></title><description><![CDATA[<p>Aber da der Wert ja in der Schleife eingelesen wird würde ich doch bei jedem Durchlauf immer wieder den aktuellen Wert in min und max schreiben?</p>
<p>Edit: Der Min/Max Befehl funktioniert auch leider nur bei positiven Zahlen.<br />
Die Eingabe -2 -1 erkennt nicht das -1 größer ist. Aber gut das kann ich ja abfangen indem ich es vorher in eine positive Zahl umwandel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2366812</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2366812</guid><dc:creator><![CDATA[Lynox]]></dc:creator><pubDate>Thu, 21 Nov 2013 14:04:34 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe - Aufgabe von Stroustrup - Kapitel 4 on Thu, 21 Nov 2013 14:33:32 GMT]]></title><description><![CDATA[<p>Wie gefällt Dir:</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

int main(){
    double value, max = 0, min = 0;

    cin &gt;&gt; value;
    cout &lt;&lt; value &lt;&lt; '\n' &lt;&lt; &quot;bisher sowohl groesster als auch kleinster Wert\n&quot;;

    min = max = value;

    while (cin &gt;&gt; value){
        cout &lt;&lt; value &lt;&lt; '\n';

        if (value &gt; max){
            max = value;
            cout &lt;&lt; &quot; bisher der groesste Wert\n&quot;;
        }

        if (value &lt; min){
            min = value;
            cout &lt;&lt; &quot; bisher der kleinste Wert\n&quot;;
        }
    }
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2366824</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2366824</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Thu, 21 Nov 2013 14:33:32 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe - Aufgabe von Stroustrup - Kapitel 4 on Thu, 21 Nov 2013 14:39:07 GMT]]></title><description><![CDATA[<p>Lynox schrieb:</p>
<blockquote>
<p>Edit: Der Min/Max Befehl funktioniert auch leider nur bei positiven Zahlen.<br />
Die Eingabe -2 -1 erkennt nicht das -1 größer ist. Aber gut das kann ich ja abfangen indem ich es vorher in eine positive Zahl umwandel.</p>
</blockquote>
<p>glaube ich dir nicht. zeige mal den code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2366826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2366826</guid><dc:creator><![CDATA[_____________________]]></dc:creator><pubDate>Thu, 21 Nov 2013 14:39:07 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe - Aufgabe von Stroustrup - Kapitel 4 on Thu, 21 Nov 2013 15:20:54 GMT]]></title><description><![CDATA[<pre><code>#include &lt;iostream&gt; 
using namespace std; 

int main(){ 
    double value;
    double min = std::numeric_limits&lt;double&gt;::max();
    double max = std::numeric_limits&lt;double&gt;::min(); 

    while (cin &gt;&gt; value){ 
        cout &lt;&lt; value; 

        if (value &gt; max){ 
            max = value; 
            cout &lt;&lt; &quot; bisher der groesste Wert\n&quot;; 
        } 

        if (value == max &amp;&amp; min == 0) 
            min = max; 

        if (value &lt; min){ 
            min = value; 
            cout &lt;&lt; &quot; bisher der kleinste Wert\n&quot;; 
        } 
    } 
    return 0; 
}
</code></pre>
<p>Eingabe: -5 wird als kleinster Wert erkannt. -3 danach nicht als größter Wert. Der erste Wert der dann erkannt wird muss größer 0 sein.</p>
<p>Laut Definition des Befehls gibt er auch nur den kleinst möglichen &quot;positiven&quot; double Wert aus.</p>
<p>Die Variante von Belli ist für die Aufgabe super - nur bei der folge Aufgabe die darauf aufbaut leider nicht mehr da ich dann den Code aus der Schleife doppelt benutzen müsste.</p>
<p>Edit:<br />
Okay mit: double max = std::numeric_limits&lt;long&gt;::min(); geht es - der erste Wert ist dann immer der größte. Danke <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>Edit2:<br />
Belli´s Variante mit ner do-while Schleife klappt dann auch mit dem Rest der Aufgaben die auf dem Code aufbauen - kam zwar bisher nur while und for im Buch vor aber so gehts <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>Edit 3:<br />
Belli´s Variante mit while(cin) und am Ende der Schleife erst neue Werte einlesen klappt auch. Ich danke euch, ihr habt mir sehr dabei geholfen es zu verstehen <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/2366828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2366828</guid><dc:creator><![CDATA[Lynox]]></dc:creator><pubDate>Thu, 21 Nov 2013 15:20:54 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe - Aufgabe von Stroustrup - Kapitel 4 on Thu, 21 Nov 2013 15:35:04 GMT]]></title><description><![CDATA[<p>Wirf das hier raus:</p>
<p>if (value == max &amp;&amp; min == 0)<br />
min = max;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2366838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2366838</guid><dc:creator><![CDATA[*________*]]></dc:creator><pubDate>Thu, 21 Nov 2013 15:35:04 GMT</pubDate></item></channel></rss>