<?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[Abbruch bei gleicher Ausgabe (for Schleife)]]></title><description><![CDATA[<p>huhu zusammen,hab folgendes Problem:</p>
<p>Ich berechne anhand einer Formel die wurzel einer Zahl näherungsweise,die maximale anzahl an Durchläufen wird eingegeben!<br />
Am Ende gebe ich das Ergebnis und die errechneten Zwischenschritte aus...soweit so gut,das Programm läuft und tut was es soll...<br />
Nun würde ich aber gerne,wenn ich zur Berechnung 10 Schritte eingebe aber nur 5 bis zur Wurzel brauch nicht von Schritt 5-10 das selbe ergebnis da stehen haben,quasi soll die Berechnung abbre hen sobald sich das Ergebnis einmal wiederholt...weiß jemand wie? (while Schleife,aber wo/wie genau?)</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

double wurzel(double eingabe);

int main(int argc, char** argv) {

  // Variablen
  double zahl = 0;

  cout &lt;&lt; &quot;Aufgabe 3.1 - Iterative Berechnung\n&quot; &lt;&lt; endl;

  // Benutzereingaben
  cout &lt;&lt; &quot;Bitte eine reele Zahl &gt; 0 zur Wurzelberechnung eingeben: &quot;;
  cin &gt;&gt; zahl;

  // Ausgabe
  cout &lt;&lt; &quot;Die Wurzel der Zahl &quot; &lt;&lt; zahl &lt;&lt; &quot; betraegt naeherungsweise &quot; &lt;&lt; wurzel(zahl) &lt;&lt; &quot;\n&quot; &lt;&lt; endl;

  return 0;
}

//------------------------------------------------------------------------------
// Funktion zur Wurzelberechnung

double wurzel(double eingabe) {

  // Variablen
  double ergebnis = 0.1; // Beliebiger Anfangswert &gt; 0
  unsigned short genauigkeit = 0;

  // Genauigkeit vom Benutzer erfragen
  cout &lt;&lt; &quot;Anzahl der Schleifendurchlaeufe (Genauigkeit): &quot;;
  cin &gt;&gt; genauigkeit;

  for (unsigned short durchlauf = 0; durchlauf &lt; genauigkeit; durchlauf++) {
    // Naeherungsformel
    ergebnis = 0.5 * (ergebnis + eingabe / ergebnis);
    cout &lt;&lt; &quot;Zwischenergebnis &quot; &lt;&lt; durchlauf+1 &lt;&lt; &quot;: &quot; &lt;&lt; ergebnis &lt;&lt; endl;
  }

  return ergebnis;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/287244/abbruch-bei-gleicher-ausgabe-for-schleife</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 13:57:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/287244.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 25 May 2011 08:29:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Abbruch bei gleicher Ausgabe (for Schleife) on Wed, 25 May 2011 08:29:01 GMT]]></title><description><![CDATA[<p>huhu zusammen,hab folgendes Problem:</p>
<p>Ich berechne anhand einer Formel die wurzel einer Zahl näherungsweise,die maximale anzahl an Durchläufen wird eingegeben!<br />
Am Ende gebe ich das Ergebnis und die errechneten Zwischenschritte aus...soweit so gut,das Programm läuft und tut was es soll...<br />
Nun würde ich aber gerne,wenn ich zur Berechnung 10 Schritte eingebe aber nur 5 bis zur Wurzel brauch nicht von Schritt 5-10 das selbe ergebnis da stehen haben,quasi soll die Berechnung abbre hen sobald sich das Ergebnis einmal wiederholt...weiß jemand wie? (while Schleife,aber wo/wie genau?)</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

double wurzel(double eingabe);

int main(int argc, char** argv) {

  // Variablen
  double zahl = 0;

  cout &lt;&lt; &quot;Aufgabe 3.1 - Iterative Berechnung\n&quot; &lt;&lt; endl;

  // Benutzereingaben
  cout &lt;&lt; &quot;Bitte eine reele Zahl &gt; 0 zur Wurzelberechnung eingeben: &quot;;
  cin &gt;&gt; zahl;

  // Ausgabe
  cout &lt;&lt; &quot;Die Wurzel der Zahl &quot; &lt;&lt; zahl &lt;&lt; &quot; betraegt naeherungsweise &quot; &lt;&lt; wurzel(zahl) &lt;&lt; &quot;\n&quot; &lt;&lt; endl;

  return 0;
}

//------------------------------------------------------------------------------
// Funktion zur Wurzelberechnung

double wurzel(double eingabe) {

  // Variablen
  double ergebnis = 0.1; // Beliebiger Anfangswert &gt; 0
  unsigned short genauigkeit = 0;

  // Genauigkeit vom Benutzer erfragen
  cout &lt;&lt; &quot;Anzahl der Schleifendurchlaeufe (Genauigkeit): &quot;;
  cin &gt;&gt; genauigkeit;

  for (unsigned short durchlauf = 0; durchlauf &lt; genauigkeit; durchlauf++) {
    // Naeherungsformel
    ergebnis = 0.5 * (ergebnis + eingabe / ergebnis);
    cout &lt;&lt; &quot;Zwischenergebnis &quot; &lt;&lt; durchlauf+1 &lt;&lt; &quot;: &quot; &lt;&lt; ergebnis &lt;&lt; endl;
  }

  return ergebnis;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2068272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068272</guid><dc:creator><![CDATA[Enfi]]></dc:creator><pubDate>Wed, 25 May 2011 08:29:01 GMT</pubDate></item><item><title><![CDATA[Reply to Abbruch bei gleicher Ausgabe (for Schleife) on Wed, 25 May 2011 08:40:31 GMT]]></title><description><![CDATA[<p>Ergebnis zwischenspeichern, mit neuem Ergebnis vergleichen und im Falle der Gleichheit die Schleife mit break verlassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2068282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068282</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Wed, 25 May 2011 08:40:31 GMT</pubDate></item><item><title><![CDATA[Reply to Abbruch bei gleicher Ausgabe (for Schleife) on Wed, 25 May 2011 08:53:49 GMT]]></title><description><![CDATA[<p>Also falls ergebnis=ergebnis durchlauf +1,Abbruch,aber wo und wie bau ichs ein <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/2068291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068291</guid><dc:creator><![CDATA[Enfi]]></dc:creator><pubDate>Wed, 25 May 2011 08:53:49 GMT</pubDate></item><item><title><![CDATA[Reply to Abbruch bei gleicher Ausgabe (for Schleife) on Wed, 25 May 2011 09:13:50 GMT]]></title><description><![CDATA[<p>Enfi schrieb:</p>
<blockquote>
<p>Also falls ergebnis=ergebnis durchlauf +1,Abbruch,aber wo und wie bau ichs ein <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>
</blockquote>
<p>Eher falls aktuelles Eregebnis == letztes Ergebnis dann Abbruch. Jetzt klarer, an welche Stelle du es setzen kannst?</p>
<p>EDIT: Übrigens kannst du dich gleich mal schlau machen zum Thema Vergleich von double-Variablen. Das ist nicht einfach mit einem &quot;==&quot; getan, da Fließkommazahlen intern nicht exakt dargestellt werden können. Dazu gibt es unzählige Threads hier im Forum, einfach mal suchen. <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/2068306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068306</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Wed, 25 May 2011 09:13:50 GMT</pubDate></item></channel></rss>