Computerhilfen.de Logo
Forum
Tipps
News

SelektionSort unter C++

hi ähm ich hab ne Projektarbeit im Studium in der ich unter anderem auch SelektionSort realisierven muss... es Funktioniert aber irgendwie nicht...
ich weiss nicht warum eigentlich sollte es Funktionieren.. Das Programm ist unter Borland C++ geschrieben.

----------------------------------------------------

void Selectsort :: Zahl (double *array,int size)
{ for(int arrayAnfang=0;arrayAnfang<size-1;++arrayAnfang)
  { int minPos=arrayAnfang;
    double minWert=array[arrayAnfang];
    for(int suchPos=arrayAnfang+1;suchPos<size;++suchPos)
    { if(array[suchPos]<array[minPos])
      { minPos=suchPos;
        minWert=array[suchPos];

      };
     array[minPos]=array[arrayAnfang];
     array[arrayAnfang]=minWert;
     //cout <<minWert<<endl;
    };


  }
  for (int i=0; i<size;i++)

  {cout << array<< endl;};
}
-----------------------------------------

das is der Methodenaufruf ausserhalb der Klasse.

und das folgende is die main funktion. Sie dient nur zum Testen is also nix besonderes:

-----------------------------------------------------


int main()
{ double array[]={1,2,8,10,423,12,23,765,345,81,66,45};
  Selectsort a;
  a.Zahl(array,17);
  getch();
}

-----------------------------------------------------
denke auch net das es daran liegt!
Wäre sehr dankbar für ne schnelle antwort. Danke schonmal im voraus ich bin nämlich echt am verzweifeln mit dem ding!


Antworten zu SelektionSort unter C++:

Ganz toll.

Wass passiert denn?
Crasht es?
Geh java Programmieren, dann kriegst du ne ArrayIndexOutOfBoundsException und weisst wenigstens was passiert ist...

PS: Ich hoffe für dich, du studierst nicht Informatik, ansonsten wird das nochmal ganz schwer für dich...

Er sortiert falsch! ich seh kein Schema in dem wie er es soritert. Das letzte mal als ich Borland gestartet hab hat er überhaupt nix mehr gemacht da hat er einfach die Ziele bei if() blau unterlegt und is dann ziemlich bald abgestürzt ohne ne Fehlermeldung!
Doch ich studier informatik aber ich will später nix in richtung programmieren machen das is auch das letzte Semester in dem wir Objektiorientierte Programmierung haben und ich wär sehr dankbar für ne Hilfe ohne blöde Kommentare deswegen! thx

Und ich dachte, im Elite-Bundesland Bayern wäre alle sooo klug....

Dich haben die wohl von der Pisa-Studie ausgeschlossen, um die Ergebnisse zu verbessern?

Liebe Personalverantwortliche aus der freien Wirtschaft:

Sellte sich bei Euch einmal dieser Herr

vorstellen und um ein Personalinterview bitten, tut der Softwarewelt eine Gefallen: Stellt ihn ein ... ... als Kellner! Oder als Kugelschreibermontierer ...

Aber bitte nicht als irgendetwas, das auch nur entfernt mit Computern zu tun hat! Danke!



@Blackbird:

Zitat
Geh java Programmieren, dann kriegst du ne ArrayIndexOutOfBoundsException und weisst wenigstens was passiert ist...

ähm ja ich dachte eigentlich das is ein Hilfe Forum... aber dem ist wohl nicht so... trotzdem danke ihr kiddies

ach und übrigens... ich bin das net =)
Es gibt vermutlich n paar mehr leute mit dem namen! Aber hey... Wems spass macht so n sch... zu posten

ähm ja ich dachte eigentlich das is ein Hilfe Forum... aber dem ist wohl nicht so... trotzdem danke ihr kiddies

Zitat
dann kriegst du ne ArrayIndexOutOfBoundsException und weisst wenigstens was passiert ist...

ArrayIndexOutOfBoundsException

[size=12]ArrayIndexOutOfBoundsException[/size]

[size=24]ArrayIndexOutOfBoundsException[/size]

Ja ich kanns net in Java schreiben weil das eine Projektarbeit für C++ ist also muss es auch in C++ geschrieben sein

Wenn ich drüber nachdenke... Der Hinweis mit dem Array-Index ist wohl nicht offensichtlich genug für Dich. Also nochmal genauer:

Zitat
int main()
{ double array[]={1,2,8,10,423,12,23,765,345,81,66,45};
  Selectsort a;
  a.Zahl(array,17);
  getch();
}

Wie initialisierst Du Dein Array? Und womit rufst Du die Methode "Zahl" auf?

Und jetzt nochmal eine Erklärung, warum Du hier nur blöde Antworten bekommst:

Du sagst Du bist im Studium und musst das für das Studium machen. Dafür programmierst Du aber so schlampig, dass man eigentlich meinen müsste, dass Du hochkant aus dem Studium wieder rausfliegen solltest. Leider passiert das an deutschen Hochschulen einfach nicht :(

Alle die hier geantwortet haben sind so genervt von schlampigen Studenten, dass sie keine große Lust haben, selbigen auch noch durchs Studium zu helfen. Die Antworter auf Deine Frage müssen entweder selber im Studium mit solchen PISA-Niveausenkern zusammenarbeiten oder müssen sich mit solchen Leuten abmühen, die sich als Informatik(!)-Student zu einem Programmiererjob bewerben und trotzdem nur so einen Müll abliefern, wie Du ihn gepostet hast.

Da ist die Frustrationstoleranz gering...

Ja ok aber das muss trotzdem net sein... Ich will später kein Programmierer werden aber ich muss mich trotzdem mit dem müll herumplagen der mir da beigebracht wird. und so n sch... wegen Pisa-Niveu-senker muss ich mir auch net anhören weil nich jeder Informatiker ein guter Programmierer sein muss wer das glaub is wirklich Naiv! Also danke für die Hilfe (die nicht wirklich eine war) aber ich denke ich werd mich wohl anders irgendwo schlau machen weil das hab ich echt nicht nötig mir sowas an den kopf werfen zu lassen in einem HILFE-forum!

Zitat
Also danke für die Hilfe (die nicht wirklich eine war)


Zitat
int main()
{ double array[]={1,2,8,10,423,12,23,765,345,81,66,45};
  Selectsort a;
  a.Zahl(array,17);
  getch();
}

Wie initialisierst Du Dein Array? Und womit rufst Du die Methode "Zahl" auf?

Was soll man da noch zu sagen?



[size=16]Du initialisierst ein Array mit 12 Elementen und sagst der Methode nachher, es hätte 17[/size]


Ich bleib bei meinem "PISA-Niveausenker"

Hergott nochmal ich hab schon geschrieben das es falsch sortierst vllt konzentrierst du dich darauf.... ich hab damit nur was ausprobiert und hab es ausversehen so gepostet.... Also entweder du ..,.loch hilfst mir oder du hälst langsam dein Maul ich hab echt die Schnauze voll langsam

also nochmal ganz langsam für blöde....
der SortierAlgorithmus funktioniert nicht! Er sortiert falsch. Genau DAS ist mein Problem und DAFÜR wollte ich hilfe.

Wenn ich deinen Fehler entferne (ArrayIndexOutOfBounds), dann scheint es zu funktionieren ...

Weiß nicht ist die Ausgabe

1
2
8
10
23
23
23
45
66
81
345
765

falsch ?

Oder habe ich durch das Konvertieren deines Programmes in einen lesbaren Stil etwas zerstört/repariert?

void f(double *array,int size)
{
   for(int arrayAnfang=0;arrayAnfang<size-1;++arrayAnfang)
   {
      int minPos=arrayAnfang;
      double minWert=array[arrayAnfang];
      for(int suchPos=arrayAnfang+1;suchPos<size;++suchPos)
      {
         if(array[suchPos]<array[minPos])
         {
            minPos=suchPos;
            minWert=array[suchPos];
         };
         array[minPos]=array[arrayAnfang];
         array[arrayAnfang]=minWert;
         //cout <<minWert<<endl;
      };
   }
   for (int i=0; i<size;i++)
   {std::cout << array[i]<< std::endl;};
}

int      main(int argc, char* argv[])
{
   double array[]={1,2,8,10,423,12,23,765,345,81,66,45};
   f(array,12);

   char e;
   std::cin >> e;

   return 0;
}

PS: die Klasse ist wohl komplett nutzlos oder? Soweit zu OOP

« Blitzbasic Deutschzufällig zahlenpaare ausgeben in python,tcl oder c »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!