<?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[Probleme beim Lösen einer quadratischen Gleichung]]></title><description><![CDATA[<p>Ich werd verrückt. Aus mir unerfindlichen Gründen gibt mein Programm immer 0 und -0 als Nullestellen aus. Aber WIESO???</p>
<p>Hier meine Quelldateien: Header, Cpp und Main.</p>
<pre><code class="language-cpp">#ifndef QUA_H // Waechter
#define QUA_H

class Qua{
	protected:

		double m_A;
		double m_B;
		double m_C;

	public:

		Qua(); 
		Qua(double newA, double newB, double newC);

		~Qua();

		double getCoeffA();
		double getCoeffB();
		double getCoeffC();

		void setCoeffA(double A);
		void setCoeffB(double B);
		void setCoeffC(double C);

		void printQuaFkt();

		void normalizeFkt();

		void computeZeros();

};
#endif
</code></pre>
<pre><code class="language-cpp">#include &quot;Quadratic2.h&quot;
#include &lt;iostream&gt;
#include &lt;cmath&gt;

using namespace std;

Qua::Qua(){ // Standardkonstruktor
	m_A = 1;
	m_B = 1;
	m_C = 1;
}
Qua::Qua(double newA, double newB, double newC){
	m_A = newA;
	m_B = newB;
	m_C = newC;
}

Qua::~Qua(){
}

double Qua::getCoeffA(){
	return m_A;
}
double Qua::getCoeffB(){
	return m_B;
}
double Qua::getCoeffC(){
	return m_C;
}
void Qua::setCoeffA(double A){
	m_A = A;
}
void Qua::setCoeffB(double B){
	m_B = B;
}
void Qua::setCoeffC(double C){
	m_C = C;
}

void Qua::printQuaFkt(){
	cout &lt;&lt; getCoeffA() &lt;&lt;&quot;x^2+ &quot;&lt;&lt; getCoeffB() &lt;&lt;&quot;x+ &quot;&lt;&lt; getCoeffC() &lt;&lt; endl;
}

void Qua::normalizeFkt(){
	if (m_A != 0){

		m_B = getCoeffB() / getCoeffA();
		m_C = getCoeffC() / getCoeffA();
		m_A = 1;
	}
}
void Qua::computeZeros(){
	double x0;
	double x1;
	double x2;
	if (m_A = 0){
		x0 = - (getCoeffB()/ getCoeffC());
		cout &lt;&lt; x0 &lt;&lt; endl;

	}
	else{
		x1 = (-1*getCoeffB() + sqrt(getCoeffB()*getCoeffB() - 4*getCoeffA()*getCoeffC())) / 2*getCoeffA();
		x2 = (-1*getCoeffB() - sqrt(getCoeffB()*getCoeffB() - 4*getCoeffA()*getCoeffC())) / 2*getCoeffA();
		cout &lt;&lt; x1 &lt;&lt; &quot; und &quot; &lt;&lt; x2 &lt;&lt; endl;

	}
}
</code></pre>
<pre><code class="language-cpp">#include &quot;Quadratic2.h&quot;
#include &lt;iostream&gt;

using namespace std;

int main(){

	Qua Start = Qua();
	cout &lt;&lt; Start.getCoeffA() &lt;&lt; &quot; ist Koeffizient A der unveraenderten Standardfunktion&quot; &lt;&lt; endl;
	cout &lt;&lt; endl;
	Qua Weiter = Qua(2,4,6);
	cout &lt;&lt; Weiter.getCoeffB() &lt;&lt; &quot; ist Koeffizient B der erstellten Instanz&quot; &lt;&lt; endl;
	cout &lt;&lt; endl;

	Start.setCoeffA(2);
	cout &lt;&lt;&quot;Koeffizient A der Standardfunktion wird auf &quot; &lt;&lt; Start.getCoeffA()&lt;&lt; &quot; gesetzt&quot; &lt;&lt; endl;
	cout &lt;&lt; endl;

	cout &lt;&lt; &quot;Das ist die veraenderte Standardfunktion:&quot; &lt;&lt; endl;
	Start.printQuaFkt();
	cout &lt;&lt; endl;
	cout &lt;&lt; &quot;Das ist die erstellte Instanz:&quot; &lt;&lt; endl;
	Weiter.printQuaFkt();
	cout &lt;&lt; endl;

	Start.normalizeFkt();
	cout &lt;&lt; endl;
	cout &lt;&lt; &quot;Das ist die normalisierte Standardfunktion:&quot; &lt;&lt; endl;
	Start.printQuaFkt();
	cout &lt;&lt; endl;

	Weiter.normalizeFkt();
	cout &lt;&lt; &quot; Das ist die normalisierte Instanz:&quot; &lt;&lt; endl;
	Weiter.printQuaFkt();
	cout &lt;&lt; endl;

	cout &lt;&lt; &quot;Das sind die Nullstellen der Standardfunktion:&quot; &lt;&lt; endl;
	Start.computeZeros();
	cout &lt;&lt; endl;

	cout &lt;&lt; &quot;Das sind die Nullstellen der Instanz:&quot; &lt;&lt; endl;
	Weiter.computeZeros();
	cout &lt;&lt; endl;
}
</code></pre>
<p>Ich weiß, der Code ist noch unzureichend kommentiert, aber ich habe mich bemüht selbsterklärende Bezeichnungen zu benutzen. Vlt hat ja einer Lust mal zu schauen, woran das liegen mag, ich starre seit Tagen drauf und es wird nicht besser <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/258512/probleme-beim-lösen-einer-quadratischen-gleichung</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 09:11:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/258512.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 11 Jan 2010 17:57:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme beim Lösen einer quadratischen Gleichung on Mon, 11 Jan 2010 17:57:38 GMT]]></title><description><![CDATA[<p>Ich werd verrückt. Aus mir unerfindlichen Gründen gibt mein Programm immer 0 und -0 als Nullestellen aus. Aber WIESO???</p>
<p>Hier meine Quelldateien: Header, Cpp und Main.</p>
<pre><code class="language-cpp">#ifndef QUA_H // Waechter
#define QUA_H

class Qua{
	protected:

		double m_A;
		double m_B;
		double m_C;

	public:

		Qua(); 
		Qua(double newA, double newB, double newC);

		~Qua();

		double getCoeffA();
		double getCoeffB();
		double getCoeffC();

		void setCoeffA(double A);
		void setCoeffB(double B);
		void setCoeffC(double C);

		void printQuaFkt();

		void normalizeFkt();

		void computeZeros();

};
#endif
</code></pre>
<pre><code class="language-cpp">#include &quot;Quadratic2.h&quot;
#include &lt;iostream&gt;
#include &lt;cmath&gt;

using namespace std;

Qua::Qua(){ // Standardkonstruktor
	m_A = 1;
	m_B = 1;
	m_C = 1;
}
Qua::Qua(double newA, double newB, double newC){
	m_A = newA;
	m_B = newB;
	m_C = newC;
}

Qua::~Qua(){
}

double Qua::getCoeffA(){
	return m_A;
}
double Qua::getCoeffB(){
	return m_B;
}
double Qua::getCoeffC(){
	return m_C;
}
void Qua::setCoeffA(double A){
	m_A = A;
}
void Qua::setCoeffB(double B){
	m_B = B;
}
void Qua::setCoeffC(double C){
	m_C = C;
}

void Qua::printQuaFkt(){
	cout &lt;&lt; getCoeffA() &lt;&lt;&quot;x^2+ &quot;&lt;&lt; getCoeffB() &lt;&lt;&quot;x+ &quot;&lt;&lt; getCoeffC() &lt;&lt; endl;
}

void Qua::normalizeFkt(){
	if (m_A != 0){

		m_B = getCoeffB() / getCoeffA();
		m_C = getCoeffC() / getCoeffA();
		m_A = 1;
	}
}
void Qua::computeZeros(){
	double x0;
	double x1;
	double x2;
	if (m_A = 0){
		x0 = - (getCoeffB()/ getCoeffC());
		cout &lt;&lt; x0 &lt;&lt; endl;

	}
	else{
		x1 = (-1*getCoeffB() + sqrt(getCoeffB()*getCoeffB() - 4*getCoeffA()*getCoeffC())) / 2*getCoeffA();
		x2 = (-1*getCoeffB() - sqrt(getCoeffB()*getCoeffB() - 4*getCoeffA()*getCoeffC())) / 2*getCoeffA();
		cout &lt;&lt; x1 &lt;&lt; &quot; und &quot; &lt;&lt; x2 &lt;&lt; endl;

	}
}
</code></pre>
<pre><code class="language-cpp">#include &quot;Quadratic2.h&quot;
#include &lt;iostream&gt;

using namespace std;

int main(){

	Qua Start = Qua();
	cout &lt;&lt; Start.getCoeffA() &lt;&lt; &quot; ist Koeffizient A der unveraenderten Standardfunktion&quot; &lt;&lt; endl;
	cout &lt;&lt; endl;
	Qua Weiter = Qua(2,4,6);
	cout &lt;&lt; Weiter.getCoeffB() &lt;&lt; &quot; ist Koeffizient B der erstellten Instanz&quot; &lt;&lt; endl;
	cout &lt;&lt; endl;

	Start.setCoeffA(2);
	cout &lt;&lt;&quot;Koeffizient A der Standardfunktion wird auf &quot; &lt;&lt; Start.getCoeffA()&lt;&lt; &quot; gesetzt&quot; &lt;&lt; endl;
	cout &lt;&lt; endl;

	cout &lt;&lt; &quot;Das ist die veraenderte Standardfunktion:&quot; &lt;&lt; endl;
	Start.printQuaFkt();
	cout &lt;&lt; endl;
	cout &lt;&lt; &quot;Das ist die erstellte Instanz:&quot; &lt;&lt; endl;
	Weiter.printQuaFkt();
	cout &lt;&lt; endl;

	Start.normalizeFkt();
	cout &lt;&lt; endl;
	cout &lt;&lt; &quot;Das ist die normalisierte Standardfunktion:&quot; &lt;&lt; endl;
	Start.printQuaFkt();
	cout &lt;&lt; endl;

	Weiter.normalizeFkt();
	cout &lt;&lt; &quot; Das ist die normalisierte Instanz:&quot; &lt;&lt; endl;
	Weiter.printQuaFkt();
	cout &lt;&lt; endl;

	cout &lt;&lt; &quot;Das sind die Nullstellen der Standardfunktion:&quot; &lt;&lt; endl;
	Start.computeZeros();
	cout &lt;&lt; endl;

	cout &lt;&lt; &quot;Das sind die Nullstellen der Instanz:&quot; &lt;&lt; endl;
	Weiter.computeZeros();
	cout &lt;&lt; endl;
}
</code></pre>
<p>Ich weiß, der Code ist noch unzureichend kommentiert, aber ich habe mich bemüht selbsterklärende Bezeichnungen zu benutzen. Vlt hat ja einer Lust mal zu schauen, woran das liegen mag, ich starre seit Tagen drauf und es wird nicht besser <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1836971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1836971</guid><dc:creator><![CDATA[StehtAufDemC++Schlauch]]></dc:creator><pubDate>Mon, 11 Jan 2010 17:57:38 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim Lösen einer quadratischen Gleichung on Mon, 11 Jan 2010 18:02:04 GMT]]></title><description><![CDATA[<p>Debugger benutzen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Haltepunkt in computeZeros() setzen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> alle dort verwendeten Werte ausgeben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> ??? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Profit!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1836973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1836973</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 11 Jan 2010 18:02:04 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim Lösen einer quadratischen Gleichung on Mon, 11 Jan 2010 18:11:51 GMT]]></title><description><![CDATA[<p>Wahrscheinlich, weil diese Zeile falsch ist.</p>
<pre><code class="language-cpp">(-1*getCoeffB() + sqrt(getCoeffB()*getCoeffB() - 4*getCoeffA()*getCoeffC())) / 2*getCoeffA()
</code></pre>
<p>Scheint doch richtig zu sein ...</p>
<p>Hat die ueberhaupt eine Nullstelle?</p>
<pre><code class="language-cpp">Qua Weiter = Qua(2,4,6);
</code></pre>
<p>PS: Wenn m_A = 0, dann ist es keine quadratische Gleichung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1836975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1836975</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 11 Jan 2010 18:11:51 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim Lösen einer quadratischen Gleichung on Mon, 11 Jan 2010 18:04:53 GMT]]></title><description><![CDATA[<p>Ach, den Fehler sehe ich auch gleich so:</p>
<pre><code class="language-cpp">if (m_A = 0){
</code></pre>
<p>Das ist eine Zuweisung, kein Vergleich!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1836977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1836977</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 11 Jan 2010 18:04:53 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim Lösen einer quadratischen Gleichung on Mon, 11 Jan 2010 18:59:42 GMT]]></title><description><![CDATA[<p>Noch ein paar Dinge die mir spontan aufgefallen sind! <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>
<pre><code class="language-cpp">void Qua::computeZeros(){
    double x0;
    double x1;
    double x2;
    // Eigentlich: m_A == 0
    if (m_A = 0){
        // 1. b*x + c = 0 &lt;=&gt; x = -c / b &lt;!=&gt; x = -b / c
        // 2. Was ist wenn der Nenner (b) 0 ist?
        x0 = - (getCoeffB()/ getCoeffC()); 
        cout &lt;&lt; x0 &lt;&lt; endl;

    }
    else{
        // Du solltest die Fälle D &lt; 0, D &gt; 0 und D = 0 unterscheiden
        // Wenn die Normalform vorliegt vereinfacht sich das Ganze auf:
        //   x1/2 = (-b +- sqrt(b^2-4c))/2 (bei D &gt; 0)
        //   
        // Im Fall D = 0 kannst du dir die Wurzel komplett sparen d.h.
        //   x1/2 = -b / 2 (bei D = 0)
        //
        // Im Fall D &lt; 0 gibt es keine reelle Nullstelle

        x1 = (-1*getCoeffB() + sqrt(getCoeffB()*getCoeffB() - 4*getCoeffA()*getCoeffC())) / 2*getCoeffA();
        x2 = (-1*getCoeffB() - sqrt(getCoeffB()*getCoeffB() - 4*getCoeffA()*getCoeffC())) / 2*getCoeffA();
        cout &lt;&lt; x1 &lt;&lt; &quot; und &quot; &lt;&lt; x2 &lt;&lt; endl;

    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1836998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1836998</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Mon, 11 Jan 2010 18:59:42 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim Lösen einer quadratischen Gleichung on Mon, 11 Jan 2010 19:07:48 GMT]]></title><description><![CDATA[<p>oh mann, da hab ich ja noch richtig viel falsch gemacht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
ich werde die fehler gleich mal versuchen auszumerzen....<br />
Danke vielmals</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837016</guid><dc:creator><![CDATA[StehtAufDemC++Schlauch]]></dc:creator><pubDate>Mon, 11 Jan 2010 19:07:48 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim Lösen einer quadratischen Gleichung on Mon, 11 Jan 2010 19:11:54 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10754">@David_pb</a></p>
<blockquote>
<p>Du solltest die Fälle D &lt; 0, D &gt; 0 und D = 0 unterscheiden</p>
</blockquote>
<p>was ist D?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837018</guid><dc:creator><![CDATA[StehtAufDemC++Schlauch]]></dc:creator><pubDate>Mon, 11 Jan 2010 19:11:54 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim Lösen einer quadratischen Gleichung on Mon, 11 Jan 2010 19:17:34 GMT]]></title><description><![CDATA[<p>Diskriminante, ist das was unter der Wurzel steht.</p>
<p>D &gt; 0 2 Lösungen, D = 0 1 Lösung, D &lt; 0 keine Lösung<br />
im Bereich der Reellen Zahlen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837022</guid><dc:creator><![CDATA[AndreasBo]]></dc:creator><pubDate>Mon, 11 Jan 2010 19:17:34 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim Lösen einer quadratischen Gleichung on Mon, 11 Jan 2010 19:55:20 GMT]]></title><description><![CDATA[<p>Man kann es auch mit den Gettern übertreiben, zudem find ich die Wahl von den Bezeichnungen nicht gerade optimal gewählt.</p>
<p>Eine Untersuchung der Diskriminante bringt keinen großen Nutzen, da er so die Division durch Null nicht verhindern kann und weiter denn Nenner auf Ungleichheit mit Null vergleichen muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837057</guid><dc:creator><![CDATA[GAMES1990]]></dc:creator><pubDate>Mon, 11 Jan 2010 19:55:20 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim Lösen einer quadratischen Gleichung on Mon, 11 Jan 2010 20:18:03 GMT]]></title><description><![CDATA[<p>GAMES1990 schrieb:</p>
<blockquote>
<p>Eine Untersuchung der Diskriminante bringt keinen großen Nutzen, da er so die Division durch Null nicht verhindern kann und weiter denn Nenner auf Ungleichheit mit Null vergleichen muss.</p>
</blockquote>
<p>Eine Unterscheidung bringt aber insofern Vorteile, als das man die Anzahl der Lösungen liefern- <em>und</em> z.T. einige rechenintensive Operationen sparen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837082</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Mon, 11 Jan 2010 20:18:03 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim Lösen einer quadratischen Gleichung on Mon, 11 Jan 2010 22:47:14 GMT]]></title><description><![CDATA[<p>---</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837206</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Mon, 11 Jan 2010 22:47:14 GMT</pubDate></item></channel></rss>