<?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[+ | - abwechselnd]]></title><description><![CDATA[<p>hallo,</p>
<p>wie kann ich abwechselnd ma plus, mal minus rechnen?</p>
<pre><code class="language-cpp">a-b
</code></pre>
<p>im nächsten durchgang soll</p>
<pre><code class="language-cpp">a+b
</code></pre>
<p>kommen...<br />
geht das orgendwie mit einer random funktion?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/136665/abwechselnd</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 14:58:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/136665.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 12 Feb 2006 12:23:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to + | - abwechselnd on Sun, 12 Feb 2006 12:23:24 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>wie kann ich abwechselnd ma plus, mal minus rechnen?</p>
<pre><code class="language-cpp">a-b
</code></pre>
<p>im nächsten durchgang soll</p>
<pre><code class="language-cpp">a+b
</code></pre>
<p>kommen...<br />
geht das orgendwie mit einer random funktion?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/992178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/992178</guid><dc:creator><![CDATA[supersass1]]></dc:creator><pubDate>Sun, 12 Feb 2006 12:23:24 GMT</pubDate></item><item><title><![CDATA[Reply to + | - abwechselnd on Sun, 12 Feb 2006 12:25:35 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">bool add = true;
while(...)
{
    if(add)
        a += b;
    else
        a -= b;

    add = !add;
}
</code></pre>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/992183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/992183</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sun, 12 Feb 2006 12:25:35 GMT</pubDate></item><item><title><![CDATA[Reply to + | - abwechselnd on Sun, 12 Feb 2006 12:31:32 GMT]]></title><description><![CDATA[<p>jo thx, einfacher als ich dachte :-]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/992194</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/992194</guid><dc:creator><![CDATA[supersass1]]></dc:creator><pubDate>Sun, 12 Feb 2006 12:31:32 GMT</pubDate></item><item><title><![CDATA[Reply to + | - abwechselnd on Sun, 12 Feb 2006 13:09:16 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">add = false;
add ^= true ? a += b : a -= b;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/992220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/992220</guid><dc:creator><![CDATA[Faster]]></dc:creator><pubDate>Sun, 12 Feb 2006 13:09:16 GMT</pubDate></item><item><title><![CDATA[Reply to + | - abwechselnd on Sun, 12 Feb 2006 17:54:41 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int a,b;
while(essollrechnen)
{
    a-(b*-1);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/992448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/992448</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Sun, 12 Feb 2006 17:54:41 GMT</pubDate></item><item><title><![CDATA[Reply to + | - abwechselnd on Mon, 13 Feb 2006 08:58:24 GMT]]></title><description><![CDATA[<p>Faster schrieb:</p>
<blockquote>
<pre><code class="language-cpp">add = false;
add ^= true ? a += b : a -= b;
</code></pre>
</blockquote>
<p>Hast du dir mal die Operator-Rangfolge angesehen? Damit dieses Gebilde funktioniert, benötigst du noch zusätzliche Klammern.</p>
<p>@Travis: Und dein Fragment rechnet immer a+b aus <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/992841</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/992841</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Mon, 13 Feb 2006 08:58:24 GMT</pubDate></item><item><title><![CDATA[Reply to + | - abwechselnd on Mon, 13 Feb 2006 13:51:02 GMT]]></title><description><![CDATA[<p>beispiel:</p>
<pre><code class="language-cpp">a=2;
b=5;
a-=(b*-1); // 5*(-1)=-5; 2-(-5) = 2+5=7
b=-5; //-5*(-1)=5; 2-5=-3
</code></pre>
<p>und es passt nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993083</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 13 Feb 2006 13:51:02 GMT</pubDate></item><item><title><![CDATA[Reply to + | - abwechselnd on Mon, 13 Feb 2006 14:03:08 GMT]]></title><description><![CDATA[<p>Ja, wenn du b auf -5 setzt, wird es negativ <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="😉"
    /> Aber bei deinem obigen Code hast du b nirgends verändert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993090</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Mon, 13 Feb 2006 14:03:08 GMT</pubDate></item><item><title><![CDATA[Reply to + | - abwechselnd on Mon, 13 Feb 2006 14:31:02 GMT]]></title><description><![CDATA[<p>also mein vorschlag wäre:</p>
<pre><code class="language-cpp">for (int i = 0; i &lt; n; i++)
   c= a+(b*pow(-1,i));
</code></pre>
<p>und nicht vergessen:</p>
<pre><code class="language-cpp">#include &lt;cmath&gt;
</code></pre>
<p>oder auch:</p>
<pre><code class="language-cpp">int multiplikator = 1;
for (int i = 0; i &lt; n; i++)
{
   muliplikator *= -1;
   c = a+(b*mulitplikator);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/993106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993106</guid><dc:creator><![CDATA[MamboKurt]]></dc:creator><pubDate>Mon, 13 Feb 2006 14:31:02 GMT</pubDate></item><item><title><![CDATA[Reply to + | - abwechselnd on Mon, 13 Feb 2006 14:47:42 GMT]]></title><description><![CDATA[<p>Ich würde ein enum mit 2 States vorschlagen. (anstatt der bool-Variable)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993134</guid><dc:creator><![CDATA[enum]]></dc:creator><pubDate>Mon, 13 Feb 2006 14:47:42 GMT</pubDate></item><item><title><![CDATA[Reply to + | - abwechselnd on Mon, 13 Feb 2006 15:39:57 GMT]]></title><description><![CDATA[<p>CStoll (off) schrieb:</p>
<blockquote>
<p>Ja, wenn du b auf -5 setzt, wird es negativ <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="😉"
    /> Aber bei deinem obigen Code hast du b nirgends verändert.</p>
</blockquote>
<p>achso, jetzt weiss ich was du meinst ^^<br />
dann setzt einfach ein</p>
<pre><code class="language-cpp">b=b*-1;
</code></pre>
<p>vor die berechnung ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993173</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 13 Feb 2006 15:39:57 GMT</pubDate></item><item><title><![CDATA[Reply to + | - abwechselnd on Mon, 13 Feb 2006 16:48:28 GMT]]></title><description><![CDATA[<p>TravisG schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int a,b;
while(essollrechnen)
{
    a-(b*-1);
}
</code></pre>
</blockquote>
<p>Nehmen S'e diesen:</p>
<pre><code class="language-cpp">int a,b;
while(essollrechnen)
{
  result = a-=(b*=-1);

  /* irgendwas mit a und/oder result machen */
}
</code></pre>
<p>Wenn schon kurz, dann wenigstens richtig und so, dass man damit überhaupt was anfangen kann <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 würde die teure? Multiplikation da doch rausetzen...</p>
<pre><code class="language-cpp">int a,b;
char Vorzeichen = 1;
while(essollrechnen)
{
  if( Vorzeichen ) result = a-=b;
  else             result = a+=b;

  Vorzeichen^=1;

  /* irgendwas mit a, b und/oder result machen */
}
</code></pre>
<p>Keine Multiplikation, dafür ein Vergleich gegen 0 und ein Jump mehr.<br />
Ob das auf aktuellen CPUs noch jemanden interessiert, kann ich nicht sagen, aber der Vergleich gegen 0 ist nicht teuer.</p>
<p>Müsste man mal gegeneinander laufen lassen, um zu erfahren, wie es aktuell aussieht. Bei Gleichstand würde ich die längere Variante bevorzugen, da ich sie für verständlicher halte. Aber das ist sowieso subjektiv. Wichtiger die Frage, ob man b kopieren muss, weil es noch gebraucht wird?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993253</guid><dc:creator><![CDATA[Xin]]></dc:creator><pubDate>Mon, 13 Feb 2006 16:48:28 GMT</pubDate></item><item><title><![CDATA[Reply to + | - abwechselnd on Mon, 13 Feb 2006 16:52:39 GMT]]></title><description><![CDATA[<p>Man kann es ja echt übertreiben, aber wenn ihr es unbedingt übertrieben haben wollt:</p>
<pre><code class="language-cpp">struct Operator
{
	Operator()
		: op( sub )
	{
	}

	int operator () ( int lhs, int rhs )
	{
		( op == sub ) ? ( op = add ) : ( op = sub );
		return op( lhs, rhs );
	}

private:

	static int add( int lhs, int rhs )
	{
		return lhs + rhs;
	}

	static int sub( int lhs, int rhs )
	{
		return lhs - rhs;
	}

	(int)(*op)(int,int);
};

int DoOp( int lhs, int rhs )
{
	static Operator op;
	return op( lhs, rhs );
}

int main()
{
	int a = 3;
	int b = 6;
	int i = 10;
	while( i-- )
		cout &lt;&lt; DoOp( a, b ) &lt;&lt; &quot;\t&quot;;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/993259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993259</guid><dc:creator><![CDATA[Übertrieben]]></dc:creator><pubDate>Mon, 13 Feb 2006 16:52:39 GMT</pubDate></item><item><title><![CDATA[Reply to + | - abwechselnd on Mon, 13 Feb 2006 17:01:01 GMT]]></title><description><![CDATA[<p>Übertrieben schrieb:</p>
<blockquote>
<p>Man kann es ja echt übertreiben, aber wenn ihr es unbedingt übertrieben haben wollt:</p>
<p>[Lösung per Funktionszeiger]</p>
</blockquote>
<p>Das wird langsamer sein, weil Du laufend Daten auf den Stack kopieren musst.<br />
Das ist teurer als die Vergleich oder die Multiplikation, insbesondere, wenn Du noch DoOp dazwischen stehen hast.</p>
<p>EDIT: Abgesehen davon solltest Du die Zuweisung von op in die jeweilige Funktion packen, damit Du Deinen Vergleich wenigstens noch sparst. ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993266</guid><dc:creator><![CDATA[Xin]]></dc:creator><pubDate>Mon, 13 Feb 2006 17:01:01 GMT</pubDate></item><item><title><![CDATA[Reply to + | - abwechselnd on Mon, 13 Feb 2006 20:10:33 GMT]]></title><description><![CDATA[<p>Xin schrieb:</p>
<blockquote>
<p>Ich würde die teure? Multiplikation da doch rausetzen...<br />
...<br />
Keine Multiplikation, dafür ein Vergleich gegen 0 und ein Jump mehr.<br />
Ob das auf aktuellen CPUs noch jemanden interessiert, kann ich nicht sagen, aber der Vergleich gegen 0 ist nicht teuer.</p>
</blockquote>
<p>ok. wüßte zu gerne, was ein sprung kostet.<br />
mal was ohne sprung und ohne plutimikation:</p>
<pre><code class="language-cpp">int a,b;
int Vorzeichen = -1;
while(essollrechnen)
{
  a=a+(b&amp;Vorzeichen);
  Vorzeichen=~Vorzeichen;
  a=a-(b&amp;Vorzeichen);
  //irgendwas mit a machen
}
</code></pre>
<blockquote>
<p>Müsste man mal gegeneinander laufen lassen, um zu erfahren, wie es aktuell aussieht.</p>
</blockquote>
<p>jo.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993475</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 13 Feb 2006 20:10:33 GMT</pubDate></item><item><title><![CDATA[Reply to + | - abwechselnd on Mon, 13 Feb 2006 21:16:38 GMT]]></title><description><![CDATA[<p>Xin schrieb:</p>
<blockquote>
<p>Nehmen S'e diesen:</p>
<pre><code class="language-cpp">int a,b;
while(essollrechnen)
{
  result = a-=(b*=-1);

  /* irgendwas mit a und/oder result machen */
}
</code></pre>
<p>Ich würde die teure? Multiplikation da doch rausetzen...</p>
</blockquote>
<p>hm...</p>
<pre><code class="language-cpp">int a,b;
while(essollrechnen)
{
  a-=b=-b;

  /* irgendwas mit a machen */
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/993542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993542</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 13 Feb 2006 21:16:38 GMT</pubDate></item><item><title><![CDATA[Reply to + | - abwechselnd on Tue, 14 Feb 2006 02:40:23 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>a-=b=-b</p>
</blockquote>
<p>du hast gewonnen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993626</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 14 Feb 2006 02:40:23 GMT</pubDate></item></channel></rss>