<?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[P.roblem s.olved :)]]></title><description><![CDATA[<pre><code class="language-cpp">/*
 * Zahlensuche.cpp
 *
 *  Created on: 29.01.2010
 *      Author: c.goupe
 */

#include &lt;iostream&gt;

using namespace std;

void zahl(double* pzahl)
{
	cout &lt;&lt; &quot; Bitte zu suchende Zahl eingeben: &quot;;
	fflush(stdout);
	scanf(&quot;%lf&quot;, pzahl);

        // wie findet ihr diesen Block ? 
}
int istEnthalten (double dasArray[10],double z,int o,int u)
{
	cout &lt;&lt; &quot;istEnthalten gestartet... \n&quot;;
	int mittelpunkt =0;

	if ( u &gt; o)
	{
		cout &lt;&lt; &quot;\n-&gt; Zahl nicht gefunden!&quot;;
		return -1;
	}

	mittelpunkt = ( o + u) / 2;

	if (dasArray[mittelpunkt] == z)
	{
		cout &lt;&lt; &quot;\nGesuchte Zahl ist: \t&quot; &lt;&lt; dasArray[mittelpunkt];
		return mittelpunkt;
	}
	if (dasArray[mittelpunkt] &gt; z)
	{
		cout &lt;&lt; &quot;-&gt; obergrenze wird neu gesetzt...\n&quot;;
		return istEnthalten(dasArray, z, mittelpunkt-1, u);
	}
	else
	{
		cout &lt;&lt; &quot;-&gt; untergrenze wird neu gesetzt...\n&quot;;
		return istEnthalten(dasArray, z, o, mittelpunkt+1);
	}
}
int main()
{

	double array[10]={1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,10.10};
	double rzahl;
	int obergrenze = 10;
	int untergrenze = 0;
	double erg;
	zahl(&amp; rzahl);
	erg= istEnthalten(array, rzahl, obergrenze, untergrenze);
	return 0;
}
</code></pre>
<p>Soweit mein programm.<br />
ich wenn ich mit #define N=10; am anfang mache, beginnt er zu meckern,<br />
sonst denke ich kann man doch mit der lösung zufrieden sein oder gibts noch irgendwelche beanstandungen ?</p>
<p>Danke schon mal</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/259932/p-roblem-s-olved</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 16:22:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/259932.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 29 Jan 2010 14:31:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to P.roblem s.olved :) on Sun, 07 Feb 2010 14:44:55 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">/*
 * Zahlensuche.cpp
 *
 *  Created on: 29.01.2010
 *      Author: c.goupe
 */

#include &lt;iostream&gt;

using namespace std;

void zahl(double* pzahl)
{
	cout &lt;&lt; &quot; Bitte zu suchende Zahl eingeben: &quot;;
	fflush(stdout);
	scanf(&quot;%lf&quot;, pzahl);

        // wie findet ihr diesen Block ? 
}
int istEnthalten (double dasArray[10],double z,int o,int u)
{
	cout &lt;&lt; &quot;istEnthalten gestartet... \n&quot;;
	int mittelpunkt =0;

	if ( u &gt; o)
	{
		cout &lt;&lt; &quot;\n-&gt; Zahl nicht gefunden!&quot;;
		return -1;
	}

	mittelpunkt = ( o + u) / 2;

	if (dasArray[mittelpunkt] == z)
	{
		cout &lt;&lt; &quot;\nGesuchte Zahl ist: \t&quot; &lt;&lt; dasArray[mittelpunkt];
		return mittelpunkt;
	}
	if (dasArray[mittelpunkt] &gt; z)
	{
		cout &lt;&lt; &quot;-&gt; obergrenze wird neu gesetzt...\n&quot;;
		return istEnthalten(dasArray, z, mittelpunkt-1, u);
	}
	else
	{
		cout &lt;&lt; &quot;-&gt; untergrenze wird neu gesetzt...\n&quot;;
		return istEnthalten(dasArray, z, o, mittelpunkt+1);
	}
}
int main()
{

	double array[10]={1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,10.10};
	double rzahl;
	int obergrenze = 10;
	int untergrenze = 0;
	double erg;
	zahl(&amp; rzahl);
	erg= istEnthalten(array, rzahl, obergrenze, untergrenze);
	return 0;
}
</code></pre>
<p>Soweit mein programm.<br />
ich wenn ich mit #define N=10; am anfang mache, beginnt er zu meckern,<br />
sonst denke ich kann man doch mit der lösung zufrieden sein oder gibts noch irgendwelche beanstandungen ?</p>
<p>Danke schon mal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847060</guid><dc:creator><![CDATA[c.groupe]]></dc:creator><pubDate>Sun, 07 Feb 2010 14:44:55 GMT</pubDate></item><item><title><![CDATA[Reply to P.roblem s.olved :) on Fri, 29 Jan 2010 14:42:26 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#define N 10
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1847064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847064</guid><dc:creator><![CDATA[Bruderherz]]></dc:creator><pubDate>Fri, 29 Jan 2010 14:42:26 GMT</pubDate></item><item><title><![CDATA[Reply to P.roblem s.olved :) on Fri, 29 Jan 2010 14:49:18 GMT]]></title><description><![CDATA[<p>c.groupe schrieb:</p>
<blockquote>
<pre><code class="language-cpp">void zahl(double* pzahl)
{
	cout &lt;&lt; &quot; Bitte zu suchende Zahl eingeben: &quot;;
	fflush(stdout);
	scanf(&quot;%lf&quot;, pzahl);
    
        // wie findet ihr diesen Block ? 
}
// Schrecklich, warum machst du auf einmal C? So mach man das in C++:

double zahl(){
       cout &lt;&lt; &quot; Bitte zu suchende Zahl eingeben: &quot;;
       double v;
       cin &gt;&gt; v;
       return v;
}

int istEnthalten (double dasArray[10],double z,int o,int u)
{
	cout &lt;&lt; &quot;istEnthalten gestartet... \n&quot;;
	int mittelpunkt =0;    // Wozu hier mit 0 initialisieren?

	if ( u &gt; o)
	{
		cout &lt;&lt; &quot;\n-&gt; Zahl nicht gefunden!&quot;;
		return -1;
	}

	int mittelpunkt = ( o + u) / 2; // Mach das doch gleich hier!

	if (dasArray[mittelpunkt] == z)  // == ist eigentlich keine so gute Idee bei double Werten
	{
		cout &lt;&lt; &quot;\nGesuchte Zahl ist: \t&quot; &lt;&lt; dasArray[mittelpunkt];
		return mittelpunkt;
	}
	if (dasArray[mittelpunkt] &gt; z)
	{
		cout &lt;&lt; &quot;-&gt; obergrenze wird neu gesetzt...\n&quot;;
		return istEnthalten(dasArray, z, mittelpunkt-1, u);
	}
	else
	{
		cout &lt;&lt; &quot;-&gt; untergrenze wird neu gesetzt...\n&quot;;
		return istEnthalten(dasArray, z, o, mittelpunkt+1);
	}
}
int main()
{

	double array[10]={1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,10.10};
	double rzahl;         // Deklarier die Variablen wo sie gebraucht werden.
	int obergrenze = 10;
	int untergrenze = 0;
	double rzahl = zahl();  // So!
	double erg= istEnthalten(array, rzahl, obergrenze, untergrenze);
        // Obergrenze, untergrenze und erg werden nirgends benutzt!
	return 0;
}
</code></pre>
<p>Soweit mein programm.<br />
ich wenn ich mit #define N=10; am anfang mache, beginnt er zu meckern,</p>
</blockquote>
<p>Dann nimm const int, wie sich das gehört!</p>
<blockquote>
<p>sonst denke ich kann man doch mit der lösung zufrieden sein oder gibts noch irgendwelche beanstandungen ?</p>
</blockquote>
<p>Ich habe dir ein paar Kleinigkeiten kommentiert. Es gibt noch mehr Sachen die man besser machen könnte, aber nichts gravierendes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847066</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 29 Jan 2010 14:49:18 GMT</pubDate></item><item><title><![CDATA[Reply to P.roblem s.olved :) on Fri, 29 Jan 2010 15:16:55 GMT]]></title><description><![CDATA[<p>Ich finde das Interface unflexibel...<br />
Die Aufgabenstellung sieht auch nicht vor, dass der Algo auf eine Fixe Größe festgelegt wird. Du kannst jetzt den Parameter als Pointer definieren und die Arraygröße als zusätzlichen Parameter übergeben, oder gleich mit Iteratoren arbeiten.</p>
<p>Ich hab das mal kurz implementiert wie ich mir das dachte:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int search( double* start, double* end, double zahl )
{
    if( start &gt; end ) return -1;
    int mid = (end - start) / 2;
    double current = start[mid];
    if( current == zahl ) return mid;
    if( current &gt; zahl ) return search( start, start+mid-1, zahl );
    else {
        int pos = search( start+mid+1, end, zahl );
        return pos == -1 ? pos : pos+mid+1;
    }
}

int main()
{
    double nums[10] = { 1.4, 5.3, 7., 9., 18., 33., 65, 1009, 123213, 454545 };
    cout &lt;&lt; 454545 &lt;&lt; &quot; is at pos &quot; &lt;&lt; search(nums, nums+10, 454545) &lt;&lt; endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1847080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847080</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Fri, 29 Jan 2010 15:16:55 GMT</pubDate></item><item><title><![CDATA[Reply to P.roblem s.olved :) on Fri, 29 Jan 2010 15:48:11 GMT]]></title><description><![CDATA[<p>danke, habs soweit verstanden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1847110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1847110</guid><dc:creator><![CDATA[c.groupe]]></dc:creator><pubDate>Fri, 29 Jan 2010 15:48:11 GMT</pubDate></item></channel></rss>