<?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++ - Programm spielt verrückt]]></title><description><![CDATA[<p>Hallo,</p>
<p>es scheint wie verhext zu sein. Heute ist mir beim Programmieren nämlich folgendes passiert.</p>
<p>Ich habe ein Program geschrieben, welches das &quot;Verfahren von Mises&quot; (ein Verfahren zur Eigenwertberechnung von Matrizen) durchführt.<br />
Dazu wollt ich das ganze mit einer kleinen 3x3-Matrix testen und mir ist aufgefallen, dass das Programm bei einer Matrix-Vektor-Multiplikation immer wieder das selbe falsche Ergebnis ausspuckt. Da ich es mir nicht erklären konnte, wieso dies passierte (der Code war einwandfrei), hab ich letztendlich so lange herumprobiert, bis ich wusste, wo der Fehler lag: Der Rechner hat einen ganz bestimmten Eintrag in der Matrix falsch &quot;belegt&quot;; will heissen:</p>
<p>Ich tippe die Einträge der Matrix (double A[3][3]) direkt in den Programmcode ein, darunter auch den Eintrag A[0][2]. Ich definiere A[0][2]=-16.<br />
Eine Zeile darunter tippe ich ein &quot; cout &lt;&lt; A[0][2] &lt;&lt;&quot;\n&quot;; &quot;. Dann kompiliere ich und was steht auf dem Bildschirm? Es steht &quot;13&quot;. Ich dachte mir, das kann nicht sein, hab den Eintrag in der Matrix verändert und irgendeine andere Zahl verwendet, nämlich A[0][2]=1.25. Dann kompiliere ich wieder und abermals steht auf dem Bildschrim &quot;13&quot;. Was bitteschön soll das denn? Das ist mir noch nie passiert! Ist klar, dass das Programm nicht richtig funktionieren kann, wenn der Computer mit ganz anderen Werten rechnet, als die, die ich ihm vorgebe. Ich habe Dev-C++ (die &quot;Entwicklungsumgebung&quot; mit der ich arbeite) beendet und nochmals neu gestartet und das selbe Programm ausgeführt - wieder die Zahl 13 auf dem Bildschirm, wo das noch dazu eine Unglückszahl ist <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>Ich hoffe, jemand kann mir (als Programmierneuling) eine Erklärung für das skurille Verhalten meines Computers geben.</p>
<p>Dankeschön im Voraus.</p>
<p>Gruß,<br />
Harald</p>
<p><em>PS: Ich bin Windows-User (Windows Vista), falls es von Belang ist</em></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/259433/c-programm-spielt-verrückt</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 21:14:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/259433.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 22 Jan 2010 22:57:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ - Programm spielt verrückt on Fri, 22 Jan 2010 22:57:46 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>es scheint wie verhext zu sein. Heute ist mir beim Programmieren nämlich folgendes passiert.</p>
<p>Ich habe ein Program geschrieben, welches das &quot;Verfahren von Mises&quot; (ein Verfahren zur Eigenwertberechnung von Matrizen) durchführt.<br />
Dazu wollt ich das ganze mit einer kleinen 3x3-Matrix testen und mir ist aufgefallen, dass das Programm bei einer Matrix-Vektor-Multiplikation immer wieder das selbe falsche Ergebnis ausspuckt. Da ich es mir nicht erklären konnte, wieso dies passierte (der Code war einwandfrei), hab ich letztendlich so lange herumprobiert, bis ich wusste, wo der Fehler lag: Der Rechner hat einen ganz bestimmten Eintrag in der Matrix falsch &quot;belegt&quot;; will heissen:</p>
<p>Ich tippe die Einträge der Matrix (double A[3][3]) direkt in den Programmcode ein, darunter auch den Eintrag A[0][2]. Ich definiere A[0][2]=-16.<br />
Eine Zeile darunter tippe ich ein &quot; cout &lt;&lt; A[0][2] &lt;&lt;&quot;\n&quot;; &quot;. Dann kompiliere ich und was steht auf dem Bildschirm? Es steht &quot;13&quot;. Ich dachte mir, das kann nicht sein, hab den Eintrag in der Matrix verändert und irgendeine andere Zahl verwendet, nämlich A[0][2]=1.25. Dann kompiliere ich wieder und abermals steht auf dem Bildschrim &quot;13&quot;. Was bitteschön soll das denn? Das ist mir noch nie passiert! Ist klar, dass das Programm nicht richtig funktionieren kann, wenn der Computer mit ganz anderen Werten rechnet, als die, die ich ihm vorgebe. Ich habe Dev-C++ (die &quot;Entwicklungsumgebung&quot; mit der ich arbeite) beendet und nochmals neu gestartet und das selbe Programm ausgeführt - wieder die Zahl 13 auf dem Bildschirm, wo das noch dazu eine Unglückszahl ist <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>Ich hoffe, jemand kann mir (als Programmierneuling) eine Erklärung für das skurille Verhalten meines Computers geben.</p>
<p>Dankeschön im Voraus.</p>
<p>Gruß,<br />
Harald</p>
<p><em>PS: Ich bin Windows-User (Windows Vista), falls es von Belang ist</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843523</guid><dc:creator><![CDATA[harald_g.]]></dc:creator><pubDate>Fri, 22 Jan 2010 22:57:46 GMT</pubDate></item><item><title><![CDATA[Reply to C++ - Programm spielt verrückt on Fri, 22 Jan 2010 23:02:56 GMT]]></title><description><![CDATA[<p>harald_g. schrieb:</p>
<blockquote>
<p>(der Code war einwandfrei)</p>
</blockquote>
<p>Dann warens wohl die Illuminaten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843526</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843526</guid><dc:creator><![CDATA[gjgjg]]></dc:creator><pubDate>Fri, 22 Jan 2010 23:02:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++ - Programm spielt verrückt on Fri, 22 Jan 2010 23:10:55 GMT]]></title><description><![CDATA[<p>Wenn es mir nicht passiert wäre, dann würd ich es auch nicht schreiben. Ich weiss, dass es verrückt klingt, aber es war tatsächlich so. Ich habe vorhin übrigens vergessen, zu erwähnen, dass der Wert A[0][1] mit 13 belegt war. Ich änderte den Wert von A[0][1] auf 88 und tippte unter die Matrix ein &quot; cout &lt;&lt; A[0][2] &lt;&lt;&quot;\n&quot;; &quot; - und es erschien am Bildschrim &quot;88&quot;. Das heisst, das Programm spuckt nicht den Wert von A[0][2] aus, sondern den Wert von A[0][1]. Aber auch nur dann, wenn ich das Programm frisch lade. Ich habe nämlich anschließend den Wert von A[0][1] von 88 auf 12345 geändert. Dann kompilierte ich wieder (ebenfalls mit der Anweisung &quot;cout &lt;&lt; A[0][2] &lt;&lt;&quot;\n&quot;;&quot; unter der Matrix) und er spuckte nicht 12345, sondern wieder 88 aus.</p>
<p>Woran liegt es?<br />
<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/1843530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843530</guid><dc:creator><![CDATA[harald_g.]]></dc:creator><pubDate>Fri, 22 Jan 2010 23:10:55 GMT</pubDate></item><item><title><![CDATA[Reply to C++ - Programm spielt verrückt on Fri, 22 Jan 2010 23:32:39 GMT]]></title><description><![CDATA[<p>harald_g. schrieb:</p>
<blockquote>
<p>Woran liegt es?</p>
</blockquote>
<p>Wenn der Code einwandfrei war, dann ist die Antwort: 42.</p>
<p>Grüssli</p>
<p>PS: Vielleicht solltest du uns mal den Code bewerten lassen, welcher so einwandfrei ist. Erst recht wenn du ein Neuling in der Programmierung bist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843535</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 22 Jan 2010 23:32:39 GMT</pubDate></item><item><title><![CDATA[Reply to C++ - Programm spielt verrückt on Sat, 23 Jan 2010 00:21:18 GMT]]></title><description><![CDATA[<p>Indexoperator überladen?</p>
<pre><code class="language-cpp">int&amp; operator[](size_t i)
{
   return internes_array[i+1];
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1843545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843545</guid><dc:creator><![CDATA[sfsfsgd]]></dc:creator><pubDate>Sat, 23 Jan 2010 00:21:18 GMT</pubDate></item></channel></rss>