Hi,
ich habe das Problem das ich schon länger nicht mehr programmiert habe und jetzt wieder einsteigen will und muss nur leider hapert es schon beim einfachsten. Ich habe jetzt garde leider mal keine Ahnung wo das Problem liegt. Ich bitte um Hilfe.
Wenn mir jemand helfen könnte wäre das nett ich denke der Sinn des Programmes ist ja nicht alzu schwierig zu ergründen also bei Fragen ein raus damit ich werde ständig gucken.
Der Code :
Java:
publicclassSortMain{publicstaticvoid main (String args[]){int[] zahlen ={9,8,7,6,5,4,3,2,1,0};BubbleSort bubbleSort1 =newBubbleSort(int[] zahlen );}}publicclassBubbleSort{publicvoid bubblesort (int zahlen[]){int zwischen =0;int[] sortZahlen =newint[zahlen.length];for(int i =0; i >= zahlen.length -1; i++){for(int y = i+1; y >= zahlen.length -1; y++){if(zahlen[y]> zahlen[y+1]){
zwischen = zahlen[y];
zahlen[y]= zahlen[y+1];
zahlen[y+1]= zwischen;}}}for(int i =0;i>= zahlen.length-1;i++){
sortZahlen[i]= zahlen[i];}}publicvoid ausgabe (int sortZahlen[]){for(int i =0;i >= sortZahlen.length -1;i++){System.out.println(sortZahlen[i]);}}}
Das sieht mir aber nicht gerade nach Wiedereinstieg aus...
Nunja, [c]public void bubblesort(int[] array)[/c] ist eine Methode. Die Klasse BubbleSort hat also keinen Konstruktor definiert, deswegen wird ein standard Konstruktor verwendet - [c]BubbleSort()[/c]. [c]new BubbleSort(int[] array)[/c] funktioniert also nicht. Zeile 10 mal in [c]public BubbleSort(int[] array)[/c] ändern.
Ich habe verstanden was du mit dem Konstruktor meintest das ich ihn nicht deklariert habe und deswegen der Standart Konstruktor verwandt wird . Ich habe nur nicht ganz die notwendigkeit gesehen und naja ich konnte dem was du geschrieben hast auch keine Lösung entnehmen ?!
Was soll ich jetzt ändern ?
publicclassBubbleSort{int[] zahlen ={9,8,7,6,5,4,3,2,1,0};publicBubbleSort(int[] ezahlen){this.zahlen = ezahlen;}publicvoid bubblesort (int[] zahlen){int zwischen =0;int[] sortZahlen =newint[zahlen.length];for(int i =0; i >= zahlen.length -1; i++){for(int y = i+1; y >= zahlen.length -1; y++){if(zahlen[y]> zahlen[y+1]){
zwischen = zahlen[y];
zahlen[y]= zahlen[y+1];
zahlen[y+1]= zwischen;}}}for(int i =0;i>= zahlen.length-1;i++){
sortZahlen[i]= zahlen[i];System.out.println(zahlen[i]);}}publicvoid ausgabe (int sortZahlen[]){for(int i =0;i >= sortZahlen.length -1;i++){System.out.println(sortZahlen[i]);}}}publicclassSortMain{publicstaticvoid main (String args[]){// int [] zahlen = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0} ;newBubbleSort(int[] zahlen);}}
Die frage ist nur wieso funktioniert das nicht ? Er spuckt immer noch class expected und ) expected.
Ich hoffe wenn ich mich jetzt Nachts nochmal durch beiße und mir Fehler bewusst mache bin ich bald wieder auf dem alten Level ich habe von da noch ein paar Sachen. Naja zurück zum Thema wo ist Problematik ?
Ach und das der Aufruf des Konstruktors so lauten sollte ist dann schon klar nur wollte ich eigentlich die methode aufrufen aber ich habe schon gesehen das das Mumpitz war.
Aber gibt einen Fehler aus und nicht das sortierte Array war er eigentlich tun sollte !!
-ERR Zugriffsverletzung bei Adresse 6D746EE3 in Modul 'jvm.dll'. Lesen von Adresse 00000000
-ERR Zugriffsverletzung bei Adresse 6D746EE3 in Modul 'jvm.dll'. Lesen von Adresse 00000000
Da läuft was furchtbar schief, das ist kein Fehler, den der Compiler bei deinem Programm anmeckert, sondern Java selbst hebt die Hufe hoch. Wenn du nicht die aktuellste Java-Version hast, wäre das ein guter Zeitpunkt zum Updaten.
Ich weiß nicht ob du den kennst ich nutze den Java Editor und den habe ich ganz neu runter gezogen. Also war ich davon ausgegangen das die Java Version ganz neu ist !! Scheinbar ist dem nicht der Fall.
Wo kriege ich den die neue her und welche jdk ne ? Ich habe Windows 7. Haste n Link mit nem sauberen Download ? Und wie sieht es auch mit dem einbinden ?
Nur weil du eine neue Version eines Editors/IDE heruntergeladen hast, heisst das nicht, dass auch eine der neuesten Java Versionen mitgeliefert wird.
Und wegen dem Downloadlink, ist das wirklich dein Ernst? Such bei Google nach "java download jdk" un du wirst innerhalb von 0.14 Sekunden fündig.:idea:
ICh habe es jetzt noch weiter vereinfacht mit nem feststehenden Array das lokal ist und tzrotzdem sorttiert er das nicht und gibt es auch nicht aus. Ich denke das er garnicht in die Methode rein geht und diese ausführt die Frage ist nur warum ?
Langsam kriege ich einen Krampf !
Java:
publicclassBubbleSort{publicBubbleSort(){}publicvoid bubbleSort (){int zwischen =0;int[] zahlen ={9,8,7,6,5,4,3,2,1,0};for(int i =0; i >= zahlen.length -1; i++){for(int y = i+1; y >= zahlen.length -1; y++){if(zahlen[y]> zahlen[y+1]){
zwischen = zahlen[y];
zahlen[y]= zahlen[y+1];
zahlen[y+1]= zwischen;}}}for(int i =0;i>= zahlen.length-1;i++){System.out.println(zahlen[i]);}}}publicclassSortMain{publicstaticvoid main (String args[]){BubbleSort bsort1 =newBubbleSort();
bsort1.bubbleSort();}}
Ich sehe den fehler nicht dne du meinst und ich das Problem ist ja auch das er nicht mal sortiert er geht meiner Meinung nicht mal die in Methode rein aber wieso ?!
Das [c]>=[/c](größer, oder gleich) müsste umgeändert werden in [c]<=[/c](kleiner, oder gleich).
Desweiteren kannst du auch einfach [c]<[/c] verwenden, somit musst du nicht mehr
Das [c]>=[/c](größer, oder gleich) müsste umgeändert werden in [c]<=[/c](kleiner, oder gleich).
Desweiteren kannst du auch einfach [c]<[/c] verwenden, somit musst du nicht mehr
Die Schleifenindizes sind völlig verkorkst, deine Vorschläge prinzipiell richtig, aber hier nicht ausreichend. So müsste es gehen:
Java:
for(int max = zahlen.length -1; max >0; max--){for(int i =0; i < max ; i++){if(zahlen[i]> zahlen[i+1]){
temp = zahlen[i];
zahlen[i]= zahlen[i+1];
zahlen[i+1]= temp;}}}