Archiv verlassen und diese Seite im Standarddesign anzeigen : pakete
damien22
15.05.2001, 11:13
hallo. komm hier bei einigen sachen nicht weiter ...
1. möchte ggt, und abs von nem int rausfidnen ... mein prog
...
int i = -5;int j = 20;
i = abs(i);
int ggt = gcd(i,j);
...
bekomme fehlermeldungen .. weuß jamd warum? wie muß die anweisung richtig lauten?
2. hab ein klasse Rst mit 2 int variablen ... will jetzt eine erweiterung der klasse erstellen ... wie tu ich das? mit extends klappt das ja nicht ...
danke schonmal ...
singleblue
15.05.2001, 12:30
abs, probiers mal mit Math.abs, müßte es eigentlich geben.
zu GGT:
dazu weiß ich leider keine Methode in der API, aber kann man auch selber coden:
public int ggt(int a,int b){
if(a > 0) return ggt(a-b,b);
else if(b > a) return ggt(a,b-a);
else return a;
}
diese Methode funzt rekursiv, aber du wirst lachen wie einfach die ist.
Aber warte, falls du einen Stack-Overflow bekommen solltest mach das doch lieber itterativ:
public int ggt(int a,int b){
while(a <> b){
if(a > b) a-=b;
if(b < a) b-=a;
}
return a;
}
leider funzen diese Methoden nur auf positive int zahlen, aber du kannst ja noch abs verwenden.
Oh ich glaub das wolltest du eigendlich nicht wissen. Naja auch egal. Also was für Fehlermeldungen bekommst du denn? Vielleicht das es die Methoden abs und gcd nicht gibt? Dann mußt du das Object Math nutzen, also der abs von i wäre:
i = Math.abs(i);
zu 2.:
warum soll das mit extend nicht gehen. Wenn du eine Klasse mit hast kannst due diese vererben.
z.B.
class RestErweiter extends Rst{
code
}
und fertig.
cu :)
damien22
15.05.2001, 13:03
die methoden abs, gcd, negate sind alle in der api unter java.math (dann big integer) zu finden ... das mit abs hat geklappt . aber bei folgen ...
den = Math.negate(den);
int ggt = Math.gcd(num,den);
bekomm ich fehlermeldungen .., cannot resolve symbols ... obwohl die in der api aber erwähnt sind ...
singleblue
15.05.2001, 15:16
doofe Frage, aber kannst du überhaupt Java?
Sieht mir nämlich nicht so aus, da du duir eben selbst ein Bein gestellt hast. Die Klasse Math die du einfach so benutzt hast gehört zum Packet java.lang.Math, doch du redest jetzt von der Klasse BigInteger aus dem package java.math.* .Das ist was ganz anderes. Entweder du erzeugst erstmal ein Object vom Typ BigInteger und arbeitest damit weiter (diese Klasse ist eigentlich dafür da um Zahlen welche man mit longint nicht mehr darstellen kann zu bearbeiten) oder du schreibst dir deine eigenen Methoen. Also abs ist ja schon in java.lang.Math definiert. Die Methode für ggt hab ich oben schon einmal rekursiv und einmal iterativ gemacht. Und die Methode negate dreht eigentlich nur das Vorzeichen. Die Routine dafür könte folgendermaßen aussehen:
public int negate(int i){
return -i
}
Tip, lerne erstmal ein wenig mehr über Java, bevor du solche Fragen stellst.
cu :)