<?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[Arrays und ihre Verarbeitung]]></title><description><![CDATA[<p>Hallo an alle,</p>
<p>da ich neu bin, möchte ich mich erstmal vorstellen.<br />
Meine Name ist Christian, ich bin 17 Jahre alt und lebe als Schüler in NRW.</p>
<p>Nun zum Thema meines Posts.<br />
Ich soll für die Schule einen QuickSort Algorithmus implementieren(rekursives Soriterverfahren).<br />
Nun müssen wir dies im Unterricht mit Delphi berwerkstelligen, da ich mich gegen diese Sprache wehre will ich es nun mit C++ versuchen.<br />
Ich habe mich in früher Vergangenheit mit der Sprache schon mal beschäftigt und versuche mich nun erneut an ihr.<br />
Nun hatte ich mir den Aufbau meine Programmes im Commandozeilenstil recht simpel vorgestellt.<br />
Es wird ein Array erstellt, mit Zufallszahlen gefüllt, an eine Funktion übergeben und diese gibt dann das sortierte Array zurück.<br />
Daraufhin sollen natürlich die Zahlen ausgegeben werden.</p>
<p>Da ich noch relativ blutiger Anfänger bin poste ich nun erstmal meinen Quellcode:<br />
//FehlerBearbeitung Zeile 27</p>
<pre><code>#include&lt;iostream&gt;
using namespace std;

int QuickSort(int, int, int);

int main()
{
    int array[50];
    for(int i=1;i&lt;50;i++)
    {
            array[i]=rand();
    }
    for(int i=1;i&lt;50;i++)
    {
            cout&lt;&lt;array[i]&lt;&lt;&quot;\n&quot;;
    }
    system(&quot;Pause&quot;);
    cout&lt;&lt;&quot;Sortiere&quot;;
    QuickSort(1,50,array[50]);
}

int QuickSort(int l, int r, int array[50])
{
    int i;
    i=l;
    int j;
    j=r; //i=j; war falsch
    int trennwert;
    trennwert=array[(l+r)/2];
    do
    {
      while(array[i]&lt;trennwert)
      {
       i++;
      }
      while(trennwert&lt;array[j])
      {
       j--;
      }
      if(i&lt;=j)
      {
              swap(array[i],array[j]);
              i++;
              j--;
      }
    }while(i&gt;j);

    if(l&lt;j)
    {
           QuickSort(l,j,array[50]);
    }
    if(i&lt;r)
    {
           QuickSort(i,r,array[50]);
    }
    return array[50];
}
</code></pre>
<p>Ich weiß, dass das Programm in diesem Zustand noch wenig ergibt, da es die bearbeiteten Daten nicht mal ausgibt.<br />
Ich habe aber atm eher Probleme mit der Verarbeitung und Übergabe von Arrays und<br />
erbitte daher freundlichst eure Hilfe.</p>
<p>Danke schon mal vorweg</p>
<p>mfg antrax</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/183379/arrays-und-ihre-verarbeitung</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 09:33:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183379.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 04 Jun 2007 13:57:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Arrays und ihre Verarbeitung on Mon, 04 Jun 2007 14:12:09 GMT]]></title><description><![CDATA[<p>Hallo an alle,</p>
<p>da ich neu bin, möchte ich mich erstmal vorstellen.<br />
Meine Name ist Christian, ich bin 17 Jahre alt und lebe als Schüler in NRW.</p>
<p>Nun zum Thema meines Posts.<br />
Ich soll für die Schule einen QuickSort Algorithmus implementieren(rekursives Soriterverfahren).<br />
Nun müssen wir dies im Unterricht mit Delphi berwerkstelligen, da ich mich gegen diese Sprache wehre will ich es nun mit C++ versuchen.<br />
Ich habe mich in früher Vergangenheit mit der Sprache schon mal beschäftigt und versuche mich nun erneut an ihr.<br />
Nun hatte ich mir den Aufbau meine Programmes im Commandozeilenstil recht simpel vorgestellt.<br />
Es wird ein Array erstellt, mit Zufallszahlen gefüllt, an eine Funktion übergeben und diese gibt dann das sortierte Array zurück.<br />
Daraufhin sollen natürlich die Zahlen ausgegeben werden.</p>
<p>Da ich noch relativ blutiger Anfänger bin poste ich nun erstmal meinen Quellcode:<br />
//FehlerBearbeitung Zeile 27</p>
<pre><code>#include&lt;iostream&gt;
using namespace std;

int QuickSort(int, int, int);

int main()
{
    int array[50];
    for(int i=1;i&lt;50;i++)
    {
            array[i]=rand();
    }
    for(int i=1;i&lt;50;i++)
    {
            cout&lt;&lt;array[i]&lt;&lt;&quot;\n&quot;;
    }
    system(&quot;Pause&quot;);
    cout&lt;&lt;&quot;Sortiere&quot;;
    QuickSort(1,50,array[50]);
}

int QuickSort(int l, int r, int array[50])
{
    int i;
    i=l;
    int j;
    j=r; //i=j; war falsch
    int trennwert;
    trennwert=array[(l+r)/2];
    do
    {
      while(array[i]&lt;trennwert)
      {
       i++;
      }
      while(trennwert&lt;array[j])
      {
       j--;
      }
      if(i&lt;=j)
      {
              swap(array[i],array[j]);
              i++;
              j--;
      }
    }while(i&gt;j);

    if(l&lt;j)
    {
           QuickSort(l,j,array[50]);
    }
    if(i&lt;r)
    {
           QuickSort(i,r,array[50]);
    }
    return array[50];
}
</code></pre>
<p>Ich weiß, dass das Programm in diesem Zustand noch wenig ergibt, da es die bearbeiteten Daten nicht mal ausgibt.<br />
Ich habe aber atm eher Probleme mit der Verarbeitung und Übergabe von Arrays und<br />
erbitte daher freundlichst eure Hilfe.</p>
<p>Danke schon mal vorweg</p>
<p>mfg antrax</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298551</guid><dc:creator><![CDATA[antrax]]></dc:creator><pubDate>Mon, 04 Jun 2007 14:12:09 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays und ihre Verarbeitung on Mon, 04 Jun 2007 14:15:13 GMT]]></title><description><![CDATA[<p>spontan fällt mir Zeile 27 auf, wo du i j zuweist, ohne, dass du j initialisiert hast, das kann so nicht stimmen ...</p>
<p>/Edit: Beschäftige dich noch mal mit Arrays ..., da passen einige Dinge nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298564</guid><dc:creator><![CDATA[Checker*amp*Murckser]]></dc:creator><pubDate>Mon, 04 Jun 2007 14:15:13 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays und ihre Verarbeitung on Mon, 04 Jun 2007 15:33:46 GMT]]></title><description><![CDATA[<p>Öhm nutzt einfach mal die Standard-Library ...</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;
#include &lt;iterator&gt;
#include &lt;functional&gt;
#include &lt;iostream&gt;

template &lt;typename T&gt;
void quick_sort(T&amp; begin, T&amp; end) 
{
    if (begin != end) 
	{
		T middle = std::partition(begin, end, std::bind2nd(std::less&lt;std::iterator_traits&lt;T&gt;::value_type&gt;(), *begin));
        quick_sort(begin, middle);
		quick_sort(std::max(begin + 1, middle), end);
    }
}

int main()
{
	std::vector&lt;std::size_t&gt; nums(25);
	for (std::size_t n = 0; n &lt; 25; ++n)
		nums.push_back(n);

	std::random_shuffle(nums.begin(), nums.end());
	std::copy(nums.begin(), nums.end(), std::ostream_iterator&lt;std::size_t&gt;(std::cout, &quot; &quot;));
	quick_sort(nums.begin(), nums.end());
	std::copy(nums.begin(), nums.end(), std::ostream_iterator&lt;std::size_t&gt;(std::cout, &quot; &quot;));
}
</code></pre>
<p><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/1298664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298664</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Mon, 04 Jun 2007 15:33:46 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays und ihre Verarbeitung on Tue, 05 Jun 2007 15:57:34 GMT]]></title><description><![CDATA[<p>hallo</p>
<p>Diese Methode mag wohl funktionieren und ich danke dir auch sehr für die Mühe (D)Evil, die du dir damit bereitet hast, doch muss ich leider den gegebenen Algorithmus implementieren.<br />
Es hapert bei mir ganz simpel am übergeben des Arrays.<br />
Sollte ich das über ne globale Variable machen?<br />
Oder ist es sinnvoller mit Referenzen zu arbeiten?<br />
Eigentlich soll ja folgendes geschehen:<br />
Es wird ein Arrays erstellt.<br />
Das Arrays wird mit Hilfe des Algorithmus bearbeitet.<br />
Das Array wird ausgegebn.</p>
<p>mfg</p>
<p>Antraxx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299429</guid><dc:creator><![CDATA[antrax]]></dc:creator><pubDate>Tue, 05 Jun 2007 15:57:34 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays und ihre Verarbeitung on Tue, 05 Jun 2007 16:09:48 GMT]]></title><description><![CDATA[<p>na für gewöhnlich machst du es einfach mit einem Pointer ... int* test, const std::size_t size ... d.h. du gibst auch die Größe mit an ... damit keine Oberläufe stattfinden können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299438</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 05 Jun 2007 16:09:48 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays und ihre Verarbeitung on Wed, 06 Jun 2007 14:47:36 GMT]]></title><description><![CDATA[<p>ist es denn richtig, dass zeiger von keinem gültigskeitsbreich abhängig sind?<br />
dh. eigentlich existiert in der funktion die variable nicht, aber der pointer zeigt einfach auf einen speicherbereich in dem diese variable dann &quot;zufällig&quot; gespeichert ist?<br />
wie sieht es denn da mit schreiben in den datenbereich aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300125</guid><dc:creator><![CDATA[antrax]]></dc:creator><pubDate>Wed, 06 Jun 2007 14:47:36 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays und ihre Verarbeitung on Thu, 07 Jun 2007 10:16:10 GMT]]></title><description><![CDATA[<p>?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

void test(const int*, const std::size_t);

int main()
{
    int a[256];
    test(a, 256);
}

void test(const int* data, const std::size_t size)
{
    for (std::size_t i = 0; i &lt; size; ++i)
        std::cout &lt;&lt; data[i] &lt;&lt; std::endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1300593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300593</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 07 Jun 2007 10:16:10 GMT</pubDate></item></channel></rss>