<?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[[gelöst]Addition wird nicht ausgeführt]]></title><description><![CDATA[<p>Hallo,<br />
mein erster Beitrag hier und ich hoffe mal ich mache keine Fehler <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 />
und zwar zunächst zur Aufgabenstellung: ich soll ein Programm schreiben, dass automatisch die größte Zahl liefert, die als Null addiert wird, also für die gilt: x+1=1</p>
<p>Zunächst mal der Quellcode:</p>
<pre><code class="language-cpp">[code]
#include &lt;iostream&gt;
#include &lt;istream&gt;
#include &lt;cmath&gt;
float pow( float base, int exp );

using namespace std;

int main()
{
cout &lt;&lt; &quot;Dieses Program berechnet die groesste Zahl zur Nulladdition\n&quot;; 
int i;  //Schleifenzahl
int b;  //Schleifenzahl
float d;  // d wird die Summe der berechneten a[i]
float a[10]; // die a[i] werden die dezimalstellen meiner gesuchten Zahl
float f;  //f wird zur Kontrolle ob die Gesuchte Zahl schon größer als 1 ist gebraucht
 for(i=0; i &lt; 10; i++)
 {
    for(b=9; b &gt;= 0; b--)
    {
         a[i]= b*pow(10.0,-i);
         int c=0;
         for(c=0; c&lt;=i; c++)
         {
         d=a[c]+d;
         }
         cout &lt;&lt; &quot;d ist:&quot; &lt;&lt; d &lt;&lt; &quot;\n&quot;;
         [b]f=(d+1.0);[/b]
         cout &lt;&lt; &quot;f ist:&quot; &lt;&lt; f &lt;&lt; &quot;\n&quot;;
         if ((f)==1.0)          
         {
         b=-1;
         }
         cout.precision(10);
         cout &lt;&lt; &quot;a[&quot;&lt;&lt;i&lt;&lt;&quot;] ist :&quot; &lt;&lt; a[i] &lt;&lt; &quot;\n&quot;;
    }       
 }          
int e=0;
float g=0;
for(e=0; e&lt;10; e++)
         {
         g=a[e]+g;
         }

cout.precision(10);
cout &lt;&lt; &quot;Die gesuchte Zahl ist:&quot; &lt;&lt; g &lt;&lt; &quot;\n&quot;; 
cin.get();
}
</code></pre>
<p>[/code]<br />
Das Problem liegt in der Fettgedruckten Zeile f=(d+1.0); die nicht richtig ausgeführt wird, und zwar wird durch die Ausgabe von f und d ersichtlich das hier fälschlicherweise f = d gesetzt wird, und ich verstehe nicht weshalb.<br />
bzw. es ist wichtig dass hier eine Addition stattfindet da die größte Zahl der Nulladdition denke ich ja vom Rundungsfehler bei eben dieser Addition abhängt.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/253329/gelöst-addition-wird-nicht-ausgeführt</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 23:00:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/253329.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 31 Oct 2009 18:38:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [gelöst]Addition wird nicht ausgeführt on Sat, 31 Oct 2009 21:50:38 GMT]]></title><description><![CDATA[<p>Hallo,<br />
mein erster Beitrag hier und ich hoffe mal ich mache keine Fehler <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 />
und zwar zunächst zur Aufgabenstellung: ich soll ein Programm schreiben, dass automatisch die größte Zahl liefert, die als Null addiert wird, also für die gilt: x+1=1</p>
<p>Zunächst mal der Quellcode:</p>
<pre><code class="language-cpp">[code]
#include &lt;iostream&gt;
#include &lt;istream&gt;
#include &lt;cmath&gt;
float pow( float base, int exp );

using namespace std;

int main()
{
cout &lt;&lt; &quot;Dieses Program berechnet die groesste Zahl zur Nulladdition\n&quot;; 
int i;  //Schleifenzahl
int b;  //Schleifenzahl
float d;  // d wird die Summe der berechneten a[i]
float a[10]; // die a[i] werden die dezimalstellen meiner gesuchten Zahl
float f;  //f wird zur Kontrolle ob die Gesuchte Zahl schon größer als 1 ist gebraucht
 for(i=0; i &lt; 10; i++)
 {
    for(b=9; b &gt;= 0; b--)
    {
         a[i]= b*pow(10.0,-i);
         int c=0;
         for(c=0; c&lt;=i; c++)
         {
         d=a[c]+d;
         }
         cout &lt;&lt; &quot;d ist:&quot; &lt;&lt; d &lt;&lt; &quot;\n&quot;;
         [b]f=(d+1.0);[/b]
         cout &lt;&lt; &quot;f ist:&quot; &lt;&lt; f &lt;&lt; &quot;\n&quot;;
         if ((f)==1.0)          
         {
         b=-1;
         }
         cout.precision(10);
         cout &lt;&lt; &quot;a[&quot;&lt;&lt;i&lt;&lt;&quot;] ist :&quot; &lt;&lt; a[i] &lt;&lt; &quot;\n&quot;;
    }       
 }          
int e=0;
float g=0;
for(e=0; e&lt;10; e++)
         {
         g=a[e]+g;
         }

cout.precision(10);
cout &lt;&lt; &quot;Die gesuchte Zahl ist:&quot; &lt;&lt; g &lt;&lt; &quot;\n&quot;; 
cin.get();
}
</code></pre>
<p>[/code]<br />
Das Problem liegt in der Fettgedruckten Zeile f=(d+1.0); die nicht richtig ausgeführt wird, und zwar wird durch die Ausgabe von f und d ersichtlich das hier fälschlicherweise f = d gesetzt wird, und ich verstehe nicht weshalb.<br />
bzw. es ist wichtig dass hier eine Addition stattfindet da die größte Zahl der Nulladdition denke ich ja vom Rundungsfehler bei eben dieser Addition abhängt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1801318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1801318</guid><dc:creator><![CDATA[Verne]]></dc:creator><pubDate>Sat, 31 Oct 2009 21:50:38 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst]Addition wird nicht ausgeführt on Sat, 31 Oct 2009 18:42:52 GMT]]></title><description><![CDATA[<p>Erstmal:<br />
1.) [ cpp ] Tags verwenden<br />
2.) Dein Code wäre lesbarer wenn Du nicht nur a,b,c,d etc für die Variablen nehmen würdest..<br />
rya.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1801320</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1801320</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Sat, 31 Oct 2009 18:42:52 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst]Addition wird nicht ausgeführt on Sat, 31 Oct 2009 19:42:00 GMT]]></title><description><![CDATA[<p>&lt;nicht ganz ontopic&gt;<br />
lustig : D</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-253290.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-253290.html</a></p>
<p>darf man fragen, wo die aufgabe gestellt wurde?<br />
es scheint so, als ob ihr beide nicht wirklich (gut) c++ könntet und da die aufgabe nicht ganz trivial erscheint, gibt es nur 2 möglichkeiten:<br />
uni/schule und nie dagewesen/zugehört<br />
oder<br />
unfähiger lehrer/dozent</p>
<p>wär auch mal interessant die kursstärke zu kennen-kommt nicht all zu häufig vor, dass 2 mit der gleichen HA (fast) am gleichen tag kommen : D</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1801360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1801360</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 31 Oct 2009 19:42:00 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst]Addition wird nicht ausgeführt on Sat, 31 Oct 2009 20:21:30 GMT]]></title><description><![CDATA[<p>naja also dass ist eine Programmier Aufgabe aus Numerik0 (Uni).<br />
das Problem ist, dass ich tatsächlich noch nicht besonders gut C++ Programieren kann und grade dabei bin es mir selbst beizubringen.<br />
Es gibt zwar die Möglichkeit des betreuten Programmierens, allerdings hab ich da wegen anderen Vorlesungen keine Zeit.</p>
<p>Das Ziel meines Codes ist es für jede Zehnerpotenz systematisch herauszufinden ob d=d+1 noch erfüllt ist und dann dasselbe mit der nächst niedrigen auszuprobieren. Also zuerst zu schauen ist die bedingung für 0.9 erfüllt, dann 0.8 usw.. bis schliesslich zu 0.0, falls die Schleife nicht vorher abgebrochen wurde. An diesen Punkt soll das Programm eine Zehnerpotenz niedriger gehen und für den Fall von 0.0 mit 0.09 dann 0.08usw weitermachen. Da float meines Wissens eine Genauigkeit von 7 Nachkommastellen hat, habe ich i mal bis 9 laufen lassen, denn 9 nachkommastellen sollten ja genügen. Was derjenige auf den verlinkt ist, programmiert hat hab ich nicht wirklich verstanden, aber das ist hier ja auch nicht die Frage.</p>
<p>Was irgendwie noch nicht richtig funktioniert ist die berechnung von &quot;d&quot; bzw f=d+1 und ich kann den Fehler nicht finden weshalb.</p>
<p>Anm.: Wenn ich &quot;Rundungsfehler&quot; geschrieben habe ist das evtl falsch ausgedrückt, ich meine den Fehler der eben bei der numerischen Addition entsteht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1801372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1801372</guid><dc:creator><![CDATA[Verne]]></dc:creator><pubDate>Sat, 31 Oct 2009 20:21:30 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst]Addition wird nicht ausgeführt on Sat, 31 Oct 2009 21:36:29 GMT]]></title><description><![CDATA[<p>oh Mann, ich Idiot, ich hab d bei der Variablen Definition nicht auf 0 gesetzt und somit wäre das Problem gelöst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1801408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1801408</guid><dc:creator><![CDATA[Verne]]></dc:creator><pubDate>Sat, 31 Oct 2009 21:36:29 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst]Addition wird nicht ausgeführt on Sat, 31 Oct 2009 21:39:09 GMT]]></title><description><![CDATA[<p>ja ja sowas ist böse:<br />
undefiniert + 1 = undefiniert<br />
manchmal wird das automatisch als 0 interpretiert, aber wie man sieht<br />
führt das nur zu undefiniertem Verhalten und abstürzen.</p>
<p>EDIT: Man klingt ja fast philosophisch, so tiefgründig und ich hab nicht mal nachgedacht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1801411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1801411</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Sat, 31 Oct 2009 21:39:09 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst]Addition wird nicht ausgeführt on Sat, 31 Oct 2009 22:36:02 GMT]]></title><description><![CDATA[<p>vll guckst du ja noch mal her und siehst dann, wie einfach das gehen würde:</p>
<pre><code class="language-cpp">#include &lt;iomanip&gt;
#include &lt;iostream&gt;

int main()
{
	float i; //count == 16
	//double i; //count == 16
	int count = 1;

	for(i = 1; i+1. != 1.; i /= 10, ++count)
	  ;

	std::cout &lt;&lt; std::fixed &lt;&lt; std::setprecision(30) &lt;&lt; i &lt;&lt; std::endl &lt;&lt;
		&quot; = 1/10^&quot; &lt;&lt; count &lt;&lt; std::endl;
}
</code></pre>
<p>bb</p>
<p>tim: was ist daran denn bitte philosophisch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1801442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1801442</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 31 Oct 2009 22:36:02 GMT</pubDate></item></channel></rss>