Punktvergleich

Heinrich500

Bekanntes Mitglied
Hallo,
ich habe folgende Klasse Punkt:

Java:
public class Punkt{
double x,y;
public abstand( Punkt p){
return Math.sqrt(x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)
}
public String toString(){
return "(" + x+", "+ y + ")";
}



Ich bekomme als Kommandozeilenparameter Zahlenpaare, wobei die Anzahl gerade ist.
D.h im index 0 und 1 ist ein Paar von Zahlen usw.
Ich soll nun eine Methode schreiben, die ein Feld von Punkt und 2 schon initialisierte Objekte von Punkt als Parameter hat, die maximalen Abstand aller Punkte ausgeben soll und die entsprechenden Objekte anpassen(Punkte mit maximalen Abstand) und den Abstand ausgeben.

Ich verstehe leider nicht, was ich da überhaupt machen soll.
Kann mir jmd einen kleinen Tipp geben?
 

Javinner

Top Contributor
Also wenn ich es richtig verstehe, sollst du den Abstand eines Punktes zu einem zweiten ermitteln und ausgeben.
Sprich Ordinate und Abszisse. Kennst du schon die Klasse Point?
 

Robat

Top Contributor
Wie lautet denn die genaue Aufgabenstellung? Aus deiner Beschreibung kann ich auch nicht ganz herauslesen warum du zusätzlich ein Array übergeben sollst.
 

Meniskusschaden

Top Contributor
Die Original-Aufgabenstellung wäre wirklich gut. Bis jetzt verstehe ich es so, dass in dem Array die beiden Punkte bestimmt werden sollen, die den größten Abstand voneinander haben. Die Koordinaten der beiden übergebenen Punkte sollen dann auf die Koordinaten der beiden gefundenen Punkte geändert werden.
 

Heinrich500

Bekanntes Mitglied
Ja genau so ist es. Meniskusschaden.
Tut mir leid. Die Aufgabenstellung habe ich nicht mehr. Ich habe es versucht so gut wie möglich zu beschreiben.
Wie mache ich das jetzt genau?
Heißt wenn ich ein Array vom Tyü Punkte habe, dass dann an jeder Stelle ein Objekt mit x und y steht?
 

Meniskusschaden

Top Contributor
Wie mache ich das jetzt genau?
Du könntest das Array mit zwei ineinander geschachtelten Schleifen durchlaufen, die Distanz zwischen den jeweils aktuellen Punkten der beiden Schleifen berechnen und falls er größer als das bisherige Maximum ist, die Koordinaten in die übergebenen Punkte übertragen.
Heißt wenn ich ein Array vom Tyü Punkte habe, dass dann an jeder Stelle ein Objekt mit x und y steht?
Ja, mit der Ausnahme, dass da auch null stehen könnte.
 

Heinrich500

Bekanntes Mitglied
Also dann so etwas wie:
Java:
double max=0;
for (int i=0;i<übergebensarray.length-1;i++){
for(int j=i+1;j<übergebenesarray.length;i++){
if(übergebenesarray.[i]==null && übergebenesarray.[j]==null) return;
if((übergebenesarray.[i].abstand(übergebenesarray.[j])>max)
max=übergebenesarray.[i].abstand(übergebenesarray.[j];
}
}
 

Neue Themen


Oben