<?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[Logikproblem mit Schleife]]></title><description><![CDATA[<p>Hallo, habe ein ziemlich triviales Problem, komme aber zur Zeit nicht auf die Lösung. Es gibt die Funktion:</p>
<p>bool update()<br />
{<br />
.........<br />
}</p>
<p>Auf diese wird öfter zugegriffen.</p>
<p>Jetzt möchte ich in dieser Funktion, nur wenn sie das ERSTE mal aufgerufen wird an einer bestimmten Stelle etwas ausrechnen, und bei den nächsten Zugriffen soll er über diese Stelle einfach hinweg gehen.</p>
<p>Hatte zuerst an eine for-Schleife gedacht.</p>
<p>for (int i = 0; i &lt; 1 ; i++)<br />
{ Rechnung ... }</p>
<p>Aber das ist ja doof, weil der geht dann trotzdem jedes Mal in diese Schleife rein, weil ich am Anfang i immer = 0 intialisiere.</p>
<p>Dann dachte ich an bool, also</p>
<p>bool Rechnung = true;</p>
<p>if (Rechnung = true)<br />
{ Rechnung<br />
Rechnung = false;<br />
}</p>
<p>Aber auch wieder Schwachsinn, weil ich bei jedem Zugriff dieser Funktion wieder Rechnung auf true setze, also er somit logischerweise wieder da rein springt.</p>
<p>Hilfe, ich bin dumm, bitte helft mir <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/253522/logikproblem-mit-schleife</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 16:48:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/253522.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 03 Nov 2009 15:14:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Logikproblem mit Schleife on Tue, 03 Nov 2009 15:14:00 GMT]]></title><description><![CDATA[<p>Hallo, habe ein ziemlich triviales Problem, komme aber zur Zeit nicht auf die Lösung. Es gibt die Funktion:</p>
<p>bool update()<br />
{<br />
.........<br />
}</p>
<p>Auf diese wird öfter zugegriffen.</p>
<p>Jetzt möchte ich in dieser Funktion, nur wenn sie das ERSTE mal aufgerufen wird an einer bestimmten Stelle etwas ausrechnen, und bei den nächsten Zugriffen soll er über diese Stelle einfach hinweg gehen.</p>
<p>Hatte zuerst an eine for-Schleife gedacht.</p>
<p>for (int i = 0; i &lt; 1 ; i++)<br />
{ Rechnung ... }</p>
<p>Aber das ist ja doof, weil der geht dann trotzdem jedes Mal in diese Schleife rein, weil ich am Anfang i immer = 0 intialisiere.</p>
<p>Dann dachte ich an bool, also</p>
<p>bool Rechnung = true;</p>
<p>if (Rechnung = true)<br />
{ Rechnung<br />
Rechnung = false;<br />
}</p>
<p>Aber auch wieder Schwachsinn, weil ich bei jedem Zugriff dieser Funktion wieder Rechnung auf true setze, also er somit logischerweise wieder da rein springt.</p>
<p>Hilfe, ich bin dumm, bitte helft mir <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1802725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802725</guid><dc:creator><![CDATA[Ansi]]></dc:creator><pubDate>Tue, 03 Nov 2009 15:14:00 GMT</pubDate></item><item><title><![CDATA[Reply to Logikproblem mit Schleife on Tue, 03 Nov 2009 15:21:05 GMT]]></title><description><![CDATA[<p>Guck dir mal an, was das Schlüsselwort 'static' bewirkt. Das ist mindestens für deine bool Variable das richtige. Je nach Umfang kannst du damit vielleicht auch gleich die ganze Rechnung nur einmal ausführen, ohne das Hilfskonstrukt mit dem bool.</p>
<p>edit: War vielleicht ein schlechter Tipp für einen Anfänger, da static sehr viele Bedeutungen haben kann, deshalb eine kurze Erklärung:</p>
<p>static Variablen bleiben über Funktionsaufrufe hinweg erhalten.</p>
<pre><code class="language-cpp">void foo(){
 static int bar = 0; // Wird nur beim ersten Aufruf ausgeführt
 cout &lt;&lt; bar &lt;&lt; endl;
 ++bar;
}

int main(){
 foo();  // 0
 foo();  // 1
 foo();  // 2
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1802728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802728</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 03 Nov 2009 15:21:05 GMT</pubDate></item><item><title><![CDATA[Reply to Logikproblem mit Schleife on Tue, 03 Nov 2009 15:19:25 GMT]]></title><description><![CDATA[<p>wieso denkst du denn so etwas zu brauchen?</p>
<pre><code class="language-cpp">bool update()
{
/*...*/
}

//aufruf:

for(int i = 0; i != 4567; i++)
{
  static bool updt = update();
  /*...*/
}
</code></pre>
<p>aber das hier hört sich gerade so an, als ob es einfacher gehen würde, wenn du sagen möchtest, was du möchtest und nicht, wie du denkst, etwas lösen zu müssen^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1802731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802731</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 03 Nov 2009 15:19:25 GMT</pubDate></item><item><title><![CDATA[Reply to Logikproblem mit Schleife on Tue, 03 Nov 2009 15:38:36 GMT]]></title><description><![CDATA[<p>Hallo, schonmal vielen Dank!</p>
<p>Ich will nur ganz am Anfang einen bestimmten Abstand errechnen. Danach soll er nicht mehr auf diese &quot;Funktionen&quot; zugreifen.</p>
<pre><code class="language-cpp">int Schicht = 0;
    static label Zustand = 0;
      if (Zustand == 0)
       {
	    int AusGZD = virtualPistonPosition() - pistonPosition();
	    cout &lt;&lt; &quot;AusGZD = &quot; &lt;&lt; AusGZD &lt;&lt; endl;

	    double VirtualPoint = (deckHeight()-AusGZD);
	    cout &lt;&lt; &quot;VirtualPoint = &quot; &lt;&lt; VirtualPoint &lt;&lt; endl;
	    double NewVirtualPoint = VirtualPoint + deltaZ * (deckHeight() -VirtualPoint )/(deckHeight() - pistonPosition());

	    cout &lt;&lt; &quot;NewVirtualPoint = &quot;&lt;&lt; NewVirtualPoint &lt;&lt; endl;
	    Schicht = deltaZ/(VirtualPoint*(NewVirtualPoint/VirtualPoint-1));
	    cout &lt;&lt; &quot;Schicht = &quot;&lt;&lt; Schicht &lt;&lt; endl;
	    Zustand++;
        }
</code></pre>
<p>So habe ich das im Moment, schon mit der static Deklaration. Heißt das jetzt beim nächsten Mal ist Zustand != 0 ? Das wäre ja sehr gut, genau das was ich suche, wäre ich im Leben nicht mehr drauf gekommen. C++ ist schon eine Weile her. <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="😉"
    /> Was hat es genau mit dem static auf sich, wieso ignoriert er beim zweiten Mal die Deklaration von Zustand ?</p>
<p>Danke übrigens</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1802744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802744</guid><dc:creator><![CDATA[Ansi]]></dc:creator><pubDate>Tue, 03 Nov 2009 15:38:36 GMT</pubDate></item><item><title><![CDATA[Reply to Logikproblem mit Schleife on Tue, 03 Nov 2009 15:44:53 GMT]]></title><description><![CDATA[<p><a href="http://msdn.microsoft.com/en-us/library/s1sb61xd.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/s1sb61xd.aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1802752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802752</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 03 Nov 2009 15:44:53 GMT</pubDate></item><item><title><![CDATA[Reply to Logikproblem mit Schleife on Tue, 03 Nov 2009 15:45:38 GMT]]></title><description><![CDATA[<p>er ignoriert die (erneute) initialisierung von zustand (mit 0)...</p>
<p>weil static eben static ist - es ist wie eine (versteckte) globale variable...<br />
lies mal in dem buch deiner wahl nach oder im internet, wenn dir das nicht reicht: die lebenszeit der variable endet eben nicht mit dem scope-ende sodern erst beim programmende...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1802753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802753</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 03 Nov 2009 15:45:38 GMT</pubDate></item><item><title><![CDATA[Reply to Logikproblem mit Schleife on Tue, 03 Nov 2009 16:04:21 GMT]]></title><description><![CDATA[<p>Alles klar, das war mal schnelle und zuverlässige Hilfe !</p>
<p>Danke euch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1802766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802766</guid><dc:creator><![CDATA[Ansi]]></dc:creator><pubDate>Tue, 03 Nov 2009 16:04:21 GMT</pubDate></item></channel></rss>