514
long wird aber doch nicht als String verarbeitet oder? Long ist doch für normale Ganzzahlen.
514
long wird aber doch nicht als String verarbeitet oder? Long ist doch für normale Ganzzahlen.
513
Es sind auch die BigInteger, die als String verarbeitet werden .-. daher wäre long ja viel einfacher, weil man einfach das int nur long austauschen könnte, aber für BigInteger muss man die kompletten Rechnungen verändern und ich hab überall Fehler
514
So wie ich das verstanden hab, hat BigInteger ja keinen festen Wertebereich, sondern kann den nach belieben anpassen, je nachdem, wie groß dieser sein muss. Das macht ja schon Sinn, dies an Stelle von long zu verwenden, da man mit long immer eine feste Größe an Speicherplatz reservieren muss. Falls ich das nach meiner kurzen Recherche richtig verstanden habe.
513
long ja, BigInteger keinen plan. :x aber die können ja alles sein
514
BigInteger ist eine eigene Klasse und long ist ein primitiver Datentyp.
BigInteger kann einen Wertebereich haben der aber so hoch ist das man ihn nicht erreichen kann 2^1000000 (oder so)
515
Ich hab das hier gefunden. Wenn man nach diesem geht, lässt sich doch der long-Wert einfach in BigInteger umwandeln, indem du BigInteger.valueOf verwendest.
long l = 5;
BigInteger bigInt1, bigInt2;
BigDecimal bigDec;
bigInt1 = BigInteger.valueOf(l);
// bigInt1 bleibt durch die Operation unverändert!
bigInt2 = bigInt1.add(new BigInteger("3456"));
bigDec = new BigDecimal(bigInt2, 5);
System.out.println("bigInt1: "+bigInt1);
System.out.println("bigInt2: "+bigInt2);
System.out.println("bigDec: "+bigDec);
Alles anzeigen
514
Ja, so geht das, aber bei mir kommen bei den "valueOf" immer Fehler. Ich glaube es liegt an den int r von den Rational :s
mal so nebenbei, was soll r.num bedeuten? also bei dem Code, der auskommentiert ist. Ich bin zu blöd dafür.
package hausuebung7;
import acm.program.*;
import java.math.*;
public class Rational extends ConsoleProgram{
public Rational() {
this(0);
}
public Rational (int n) {
this(n, 1);
}
public Rational (int x, int y) {
int g = gcd(Math.abs(x),Math.abs(y));
num = num.add(BigInteger.valueOf(x).divide(BigInteger.valueOf(g)));
//num = x/g;
den = den.add(BigInteger.valueOf(Math.abs(y)).divide(BigInteger.valueOf(g)));
if (y < 0) num = num.multiply(BigInteger.valueOf(-1));
}
public Rational add(Rational r) {
return new Rational(num.add(BigInteger.valueOf(r.den)));
}
/**public Rational add(Rational r) {
* return new Rational(this.num * r.den + r.num * this.den, this.den * r.den);
*}
*/
public Rational substract(Rational r) {
return new Rational(this.num.multiply(BigInteger.valueOf(r.den)).substract(BigInteger.valueOf(this.den)),
this.den.multiply(BigInteger.valueOf(r.den)));
}
/**public Rational substract(Rational r) {
* return new Rational(this.num * r.den - r.num * this.den, this.den * r.den);
*}
*/
public Rational multiply(Rational r) {
return new Rational(this.num.multiply(BigInteger.valueOf(r.num)),
this.den.multiply(BigInteger.valueOf(r.den)));
}
/**public Rational multiply(Rational r) {
* return new Rational(this.num * r.num, this.den * r.den);
*}
*/
public Rational divide(Rational r) {
return new Rational(this.num.multiply(BigInteger.valueOf(r.den)),
this.den.multiply(BigInteger.valueOf(r.num)));
}
/**public Rational divide(Rational r) {
* return new Rational(this.num * r.den, this.den * r.num);
*}
*/
public String toString() {
if (den.equals(1))
//if (den == 1) {
return "" + intValue(num);
} else {
return intValue(num) + "/" + intValue(den);
}
}
/* Größter gemeinsamer Teiler (gcd) nach euklidischem Algorithmus berechnen */
private int gcd(int x, int y) {
int r = x % y;
while (r != 0) {
x = y;
y = r;
r = x % y;
}
return y;
}
/* private Variablen deklarieren*/
private new BigInteger num;
private new BigInteger den;
/* Run Methode */
public void run() {
Rational a= new Rational(1, 2);
Rational b= new Rational(1, 3);
Rational c= new Rational(1, 6);
Rational sum = a.add(b).add(c);
println(a + " + " + b + " + " + c + " = " + sum);
}
}
Alles anzeigen
515
Ich hab da gar keine Ahnung von. Ich hab vor über 10 Jahren in der Schule das letzte mal aktiv was mit Java gemacht. Und ich glaube solche Sachen haben wir da gar nicht gemacht. Da müsste ich mich erst wieder aktiv mit beschäftigen.
514
x)
Das Coin Flip Programm will jetzt auch nicht mehr, es zeigt mir bei ; Fehler an, yay.
515 den Forum Kamin an mach
516
Mein Gehirn hat auch einen Laufzeitfehler.
515
oh shit.
Ich hab das Coin Flip Programm zum laufen gebracht. Yay!
Aber irgendwie macht das ding nicht mehr automatisch einen Zeilenumbruch, wie es am Montag so kam. jetzt musste ich \n verwenden. Merkwürdig.
516
//r.num ist hier:
public Rational multiply(Rational r) {
return new Rational(this.num.multiply(BigInteger.valueOf(r.num)),
this.den.multiply(BigInteger.valueOf(r.den))); }
//r ist eine Instanz der Klasse Rational und die Klasse Rational hat eine Variable num:
/* private Variablen deklarieren*/
private new BigInteger num; <== da
private new BigInteger den;
//und mit r.num greifst du auf diese Variable num von der Instanz r zu.
Alles anzeigen
515
jaaa.... aber was heißt, dass die variable num auf die Instanz r zugreift? Nimmt es dessen wert an? Wird es damit verrechnet?
Ich versteh nicht was eine Instanz ist, Methoden sind auch irgendwie kompliziert, für mich heißen sie eher Funktion
517 sag ich mal
516
Ooookay Instanz = Objekt, also wenn du ein neues Objekt erstellst zum Beispiel einen Kreis, dann hat der Kreis ja Werte(Variabeln) und die werden irgendwie deklariert zum Beispiel:
class Kreis
{
int radius;
deklarieren(5)
{this.radius = 5}//this ruft immer das aktuelle Objekt auf
deklarieren(6)
{this.radius = 6}
}
Main
{
Kreis a = new Kreis(); //a ist jetzt eine neue Instanz der Klasse Kreis
a.deklarieren(5); //Methoden/Funktionsaufruf von der Instanz a und der Radius von dieser Instanz wird auf 5 gesetzt
print(a.radius); //auf die Variable der Instanz a wird zugegriffen Ausgabe ist hier 5
Kreis b = new Kreis();// b ist jetzt auch eine Instanz der Klasse Kreis und der Radius von dieser Instanz wird auf 5 gesetz
b.deklarieren(6); //Methoden/Funktionsaufruf
print(b.radius); //auf die Variable der Instanz b wird zugegriffen Ausgabe ist hier 6
}
Alles anzeigen
ieeks ich kann nicht erklären .-.
Und ich habe nie Game Of Thrones geguckt.
515
vielleicht bin ich auch einfach nicht gut im verstehen .-.
aber ich denke ich verstehe es so
516
cool cool!
515
coolio
ich hab keine Lust mehr, noch Aufgaben zu machen :x