habe mal wieder ein problem, hoffe ihr könnt mir helfen. möchte ein zufallspolynom erstellen und dass dann mit bubblesort sortieren. zufallspolynom seperat funktioniert, nur beim sortieren kommt eine fehlermeldung...
Code:
import HUMath.Algebra.*;
import java.lang.*;
import java.io.*;
public class poly {
static DX p, anf, polynom;
static double sortiert[];
public static DX zuf()
{
p = new DX();
anf = p;
p.co = Math.random()*100.0;
p.ex = (int)(Math.random()*10);
p.next = new DX();
p = p.next; //next= nächster Summand
p.co = Math.random()*100.0;
p.ex = (int)(Math.random()*10);
p.next = new DX();
p = p.next;
p.co = Math.random()*100.0;
p.ex = (int)(Math.random()*10);
return anf;
}
public static int[] bubbleSort(int[] sammlung)
{
int temp;
for (int i = 0; i < sammlung.length; i++)
for (int j = 0; j < sammlung.length-1; j++)
if (sammlung[j+1] < (sammlung[j]))
{ // vergleichen
temp = sammlung[j+1]; // austauschen
sammlung[j+1] = sammlung[j];
sammlung[j] = temp;
}
}
public static void main(String[] arg)
{
DX p = zuf(); //DX=Konstrukteur
DX.write(p);
polynom=zuf();
DX.write(polynom);
sortiert = bubbleSort(polynom); //oder
DX.write(bubbleSort(polynom));
}
}
die fehlermeldung sieht folgendermaßen aus:
Code:
poly.java: 58,60: bubbleSort(int[n]) in poly cannot be applied to (HUMath.Algebra.DX)
Bei der Methode bubbleSort fehlt erstmal der return. Das soll wohl "return sammlung;" sein.
"sammlung" ist aber ein int[], während "static void write(DX p) " offensichtlich ein Objekt vom Typ "DX" als Übergabeparameter erwartet...
public static int[] bubbleSort(int[] sammlung)
^^^^^^^^^^^^^^
Das Problem ist, dass bubbleSort einen int[] erwartet und du aber ein DX übergibst.
Es muss sowas geben wie p.toIntArray(); oder du kannst auf diese weise HUMath.Algebra.DX nicht verwenden.
So wie es aussieht ist das eine verkettete Liste, die du sotieren musst. Dann musst du dir das int-Array selber erzeugen. (Am einfachsten warscheinlich mit ArrayList, aber ich weiß nicht inwiefern du das verwenden kannst)
Achja: Wenn ex Exponent heißt würde ich zu long greifen, da wird int schnell zu klein.
was macht denn dieses package basics? seit dem ich das probiert habe wird das HUMath.Algebra und auch die dort enthaltene klasse dx nicht mehr erkannt. auch nicht in programmen, wo es vorher ging... hilfe...
Beispiel:
Code:
test3.java:5: cannot access DX
bad class file: .\DX.class
class file contains wrong class: basics.DX
Please remove or make sure it appears in the correct subdirectory of the classpa
th.
static DX objekte[], sortiert[];
habe den fehler gefunden. habe eine datei dx.java genannt und die DX.class datei davon und die aus dem package haben sich nicht verstanden. werde es jetzt weiter versuchen, bis später!