Hallo,
ich versuche gerade folgendes umzusetzen:
Ich will eine Klasse schreiben, die theoretisch mit n-dimensionale Vektoren umgehen kann. Also nicht wirklich n-dim. aber zumindest n>3^^
Ich wollte das Ganze mit Array realisieren, also eine Klasse bauene, die eigentlich nur Arrays als Membervariable im Konstruktor hat. Soweit so gut, da ich die Operationen, wie invertieren, Einheitsvektor bilden nicht auf das Orginal abbilden will lege ich kopien an und gebe diese zurück. Allerdings funktioniert das nicht so recht...
Hier mal den Quelltext auszugsweise:
Und in meiner Test-Datei:
Und als Ausgabe:
ich versuche gerade folgendes umzusetzen:
Ich will eine Klasse schreiben, die theoretisch mit n-dimensionale Vektoren umgehen kann. Also nicht wirklich n-dim. aber zumindest n>3^^
Ich wollte das Ganze mit Array realisieren, also eine Klasse bauene, die eigentlich nur Arrays als Membervariable im Konstruktor hat. Soweit so gut, da ich die Operationen, wie invertieren, Einheitsvektor bilden nicht auf das Orginal abbilden will lege ich kopien an und gebe diese zurück. Allerdings funktioniert das nicht so recht...
Hier mal den Quelltext auszugsweise:
Java:
class Vector{
private double[] vector;
private double[] inverse;
int size;
public Vector(){
vector=new double[3];
copyVector=new double[3];
}
public Vector(int size){
vector=new double[size];
copyVector=new double[size];
}
public Vector copyVector(Vector a){
Vector copy=new Vector(a.vector.length);
for(int i=0;i<size;i++){
copy.vector[i]=a.vector[i];
}
return copy;
}
public void feedVector(){
for(int i=0;i<vector.length;i++)
vector[i]=IOTools.readDouble();
}
public void printVector(Vector v){
for(int i=0;i<v.vector.length;i++)
System.out.println(v.vector[i]);
}
public Vector inverseVector(Vector toInvert){
Vector inverse=new Vector(size);
inverse.copyVector(toInvert);
for(int i=0;i<size;i++)
inverse.vector[i]= toInvert.vector[i]*(-1.0);
return inverse;
}
....
Java:
import Prog1Tools.IOTools;
class Test{
public static void main(String[] args){
int vectorLength=Integer.parseInt(args[0]);
Vector a = new Vector(vectorLength);
a.feedVector();
a.printVector(a);
Vector c=new Vector(vectorLength);
c=a.copyVector(a);
c.printVector(c);
Vector inv=new Vector(vectorLength);
....
Code:
java Test 3
1 2 1
1.0
2.0
1.0
0.0
0.0
0.0
Zuletzt bearbeitet von einem Moderator: