<?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[Absturz bei selbst geschriebener Sinus-Funktion]]></title><description><![CDATA[<p>Hi Leute!<br />
Kann mir jemand helfen. Ich hab ne Sinus-Funktion geschrieben die die Maclaurin-Reihen benutzt. Jetzt bekomm ich aber beim Ausführen ne Fehlermeldung: irgendwas von Stack-Overflow<br />
Das ist mein Code</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&lt;cmath&gt;
using namespace std;

#define GPI (3.1415926F) 
#define GDeg2Rad(degree) ( (degree) * ( (GPI) / 180.F ) )

inline float GSin(float f)
{
	float fTemp_3=f*f*f;
	return( f&gt;GPI
			? GSin(f-2.F*GPI)
			: f&lt;GPI
			  ? GSin(f+2.F*GPI)
			  : (f - 0.0001984F*fTemp_3*fTemp_3*f + 0.0083333F*fTemp_3*f*f - 0.1666667F*fTemp_3) );
}
inline float GCos(float f)
{	return( GSin(f+.5F*GPI) );}

int main()
{
	float f;

	cout&lt;&lt;&quot;\n\nSinusberechnung&quot;&lt;&lt;endl;
	cout&lt;&lt;&quot; Grad =&quot;&lt;&lt;flush;
	cin&gt;&gt;f;
	while(f!=123.456789F)
	{
		cout.precision(10);
		cout&lt;&lt;&quot;GSin  =&quot;&lt;&lt;GSin(GDeg2Rad(f))&lt;&lt;endl;
		cout&lt;&lt;&quot;sinf  =&quot;&lt;&lt;sin(GDeg2Rad(f))&lt;&lt;endl;
		cout&lt;&lt;&quot; Zahl =&quot;&lt;&lt;flush;
		cin&gt;&gt;f;
	}

	cout&lt;&lt;&quot;\n\nCosinusberechnung&quot;&lt;&lt;endl;
	cout&lt;&lt;&quot; Grad =&quot;&lt;&lt;flush;
	cin&gt;&gt;f;
	while(f!=123.456789F)
	{
		cout.precision(10);
		cout&lt;&lt;&quot;GCos  =&quot;&lt;&lt;GCos(GDeg2Rad(f))&lt;&lt;endl;
		cout&lt;&lt;&quot;cosf  =&quot;&lt;&lt;cos(GDeg2Rad(f))&lt;&lt;endl;
		cout&lt;&lt;&quot; Zahl =&quot;&lt;&lt;flush;
		cin&gt;&gt;f;
	}
	return(0);
}
</code></pre>
<p>Kann mir jemand helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/198546/absturz-bei-selbst-geschriebener-sinus-funktion</link><generator>RSS for Node</generator><lastBuildDate>Fri, 02 Oct 2026 06:42:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/198546.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Nov 2007 15:26:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Absturz bei selbst geschriebener Sinus-Funktion on Thu, 22 Nov 2007 15:26:08 GMT]]></title><description><![CDATA[<p>Hi Leute!<br />
Kann mir jemand helfen. Ich hab ne Sinus-Funktion geschrieben die die Maclaurin-Reihen benutzt. Jetzt bekomm ich aber beim Ausführen ne Fehlermeldung: irgendwas von Stack-Overflow<br />
Das ist mein Code</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&lt;cmath&gt;
using namespace std;

#define GPI (3.1415926F) 
#define GDeg2Rad(degree) ( (degree) * ( (GPI) / 180.F ) )

inline float GSin(float f)
{
	float fTemp_3=f*f*f;
	return( f&gt;GPI
			? GSin(f-2.F*GPI)
			: f&lt;GPI
			  ? GSin(f+2.F*GPI)
			  : (f - 0.0001984F*fTemp_3*fTemp_3*f + 0.0083333F*fTemp_3*f*f - 0.1666667F*fTemp_3) );
}
inline float GCos(float f)
{	return( GSin(f+.5F*GPI) );}

int main()
{
	float f;

	cout&lt;&lt;&quot;\n\nSinusberechnung&quot;&lt;&lt;endl;
	cout&lt;&lt;&quot; Grad =&quot;&lt;&lt;flush;
	cin&gt;&gt;f;
	while(f!=123.456789F)
	{
		cout.precision(10);
		cout&lt;&lt;&quot;GSin  =&quot;&lt;&lt;GSin(GDeg2Rad(f))&lt;&lt;endl;
		cout&lt;&lt;&quot;sinf  =&quot;&lt;&lt;sin(GDeg2Rad(f))&lt;&lt;endl;
		cout&lt;&lt;&quot; Zahl =&quot;&lt;&lt;flush;
		cin&gt;&gt;f;
	}

	cout&lt;&lt;&quot;\n\nCosinusberechnung&quot;&lt;&lt;endl;
	cout&lt;&lt;&quot; Grad =&quot;&lt;&lt;flush;
	cin&gt;&gt;f;
	while(f!=123.456789F)
	{
		cout.precision(10);
		cout&lt;&lt;&quot;GCos  =&quot;&lt;&lt;GCos(GDeg2Rad(f))&lt;&lt;endl;
		cout&lt;&lt;&quot;cosf  =&quot;&lt;&lt;cos(GDeg2Rad(f))&lt;&lt;endl;
		cout&lt;&lt;&quot; Zahl =&quot;&lt;&lt;flush;
		cin&gt;&gt;f;
	}
	return(0);
}
</code></pre>
<p>Kann mir jemand helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408247</guid><dc:creator><![CDATA[OTTO]]></dc:creator><pubDate>Thu, 22 Nov 2007 15:26:08 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei selbst geschriebener Sinus-Funktion on Thu, 22 Nov 2007 15:40:26 GMT]]></title><description><![CDATA[<p>also, eine Reihe kann ich bei deinem code erstmal nicht erkennen.</p>
<p>ein Stackoverflow kommt meist dann zustande, wenn man eine unendliche rekursion hat. Dies sieht mir bei dir auf den ersten blick aber auch nich so aus. Versuch als erstes mal deine ?-operatoren auszubauen und das mit if zu machen. Dann ersetz deine GSin(f-2pi) durch eine Schleife, die f solange reduziert bis f im richtigen bereich ist. Dann sollte es gehen.</p>
<p>aber wie gesagt, eine reihe kannic h ncih erkennen <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/1408262</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408262</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Thu, 22 Nov 2007 15:40:26 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei selbst geschriebener Sinus-Funktion on Thu, 22 Nov 2007 15:47:06 GMT]]></title><description><![CDATA[<p>Das Abbruchkriterium der Rekursion ist effektiv f==GPI - und diesen Wert exakt zu treffen dürfte auf float-Ebene etwas schwierig werden. Außerdem sind deine Rekursions-Schritte so (sorry) miserabel gewählt, daß du auf der Stelle trittst:<br />
GSin(1.5)<br />
-&gt; GSin(7.78...) (f+2<em>GPI)<br />
-&gt; GSin(1.5) (f-2</em>GPI)<br />
-&gt;...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408266</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 22 Nov 2007 15:47:06 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei selbst geschriebener Sinus-Funktion on Thu, 22 Nov 2007 15:49:14 GMT]]></title><description><![CDATA[<p>Ich sehe nicht, wie deine Rekursion überhaupt funktionieren soll. Wenn dein Wert f knapp über Pi liegt rufst sie rekursiv mit f - 2*Pi wieder auf. Jetzt ist der Parameter ja negativ, also kleiner Pi dann rufst du sie wieder mit f + 2*Pi auf (das ist der Ausgangswert). Da hast du eine unendliche Rekursion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408269</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 22 Nov 2007 15:49:14 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei selbst geschriebener Sinus-Funktion on Thu, 22 Nov 2007 15:50:00 GMT]]></title><description><![CDATA[<p>ah, CStoll hast recht. Ich hatte gelesen f &lt;-GPI (was mir sinnvoller erschien)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408270</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Thu, 22 Nov 2007 15:50:00 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei selbst geschriebener Sinus-Funktion on Thu, 22 Nov 2007 15:53:26 GMT]]></title><description><![CDATA[<p>Versuchs mal damit</p>
<pre><code class="language-cpp">inline float GSin(const float f)
{
	float fTemp_3=f*f*f;
	return( f&gt;GPI
			? GSin(f-2.F*GPI)
			: f&lt;-GPI
			  ? GSin(f+2.F*GPI)
			  : (f - 0.0001984F*fTemp_3*fTemp_3*f + 0.0083333F*fTemp_3*f*f - 0.1666667F*fTemp_3) );
}
</code></pre>
<p>Du Idiot hast geschrieben f&lt;GPI Das ist falsch! richtig ist f&lt;-GPI</p>
<p>DU HAST DAS &quot;MINUS&quot; VERGESSEN</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408276</guid><dc:creator><![CDATA[Dummie 0815]]></dc:creator><pubDate>Thu, 22 Nov 2007 15:53:26 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz bei selbst geschriebener Sinus-Funktion on Thu, 22 Nov 2007 15:56:14 GMT]]></title><description><![CDATA[<p>Danke für die schnellen Antworten!</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6346">@Dummie</a> 0815: Bitte gewöhn dir den Stil wie &quot;Du Idiot&quot; ab</p>
<p>PS: Großschreibung bedeutet soviel wie Schreien</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408281</guid><dc:creator><![CDATA[OTTO]]></dc:creator><pubDate>Thu, 22 Nov 2007 15:56:14 GMT</pubDate></item></channel></rss>