Array problem

arhzz

Bekanntes Mitglied
Hallo!

Ich habe ein Problem mit meinem Program wieder haha. Nämlich muss ich Koordinaten aus einem txt einlesen und die größte Distanz auf der Konsole ausgeben, und fur die Berechnung der Distanz muss ich eine Funktion verwenden,Das problem ist jetzt das die Funktion 4 Argumente hat, und jede Zeile in diesem txt file hat 2 Argumente bzw. Koordinaten (x und y). Ich habe die Funktion auf Google und mit meinem Professor überprüft und sie stimmt aber jetz weiss ich nicht wie ich die verwenden soll weil mir 2 Argumente "fehlen".

Java:
public class gps {
public static double calculateDistance(double latitude1, double longitude1,
            double latitude2, double longitude2) {
        double deltaLatitude = Math.toRadians(latitude2 - latitude1);
        double deltaLongitude = Math.toRadians(longitude2 - longitude1);

        double a = Math.sin(deltaLatitude / 2) * Math.sin(deltaLatitude / 2)
                + Math.cos(Math.toRadians(latitude1))
                * Math.cos(Math.toRadians(latitude2))
                * Math.sin(deltaLongitude / 2)
                * Math.sin(deltaLongitude / 2);

        double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));

        return 6371000 * c;
    }   
In.open("coordinates.txt");
        String [] zeilen = new String [30];
        String line;
        int i = 0;
        while(i < zeilen.length && (line =In.readLine ()) != null){
            zeilen[i] = line;
            Out.println(zeilen[i]);
            i++;
        }
        double [] x = new double [zeilen.length];
        double [] y = new double [zeilen.length];
        for( i = 0; i<zeilen.length; i++){
            String s = zeilen[i];
            String [] coords = s.split ("\\s+");
            String number1 = coords [0];
            String number2 = coords [1];
            
            x[i] = Double.parseDouble(number1);
            y[i] = Double.parseDouble(number2);

        }
        In.close ();
    }
}
Hier ist mein Program vielleicht hat jemand eine Idee.
LG
Alen
 

temi

Top Contributor
Na, um eine Distanz zwischen zwei Punkten zu berechnen, brauchst du zwei Punkte. Ein Punkt hat jeweils Latitude und Longitude.
 

arhzz

Bekanntes Mitglied
Na, um eine Distanz zwischen zwei Punkten zu berechnen, brauchst du zwei Punkte. Ein Punkt hat jeweils Latitude und Longitude.
Okay,den Teil dass ich zwei Punkte brauche habe ich verstanden. Aber sind jetzt meine X und Y die Latitude und Longitude von Einem punkt,also brauche ich noch einen um die Funktion zu verwenden? Oder habe ich dass falsch verstanden
 

temi

Top Contributor
Aber sind jetzt meine X und Y die Latitude und Longitude von Einem punkt,also brauche ich noch einen

Ich kenne deine Aufgabe nicht, aber ich interpretiere es so, dass du die kürzeste Distanz zwischen zwei deiner gegebenen Positionen suchen sollst, d.h. im einfachste Fall musst du die Distanzen zwischen Punkt 1 und 2, 3, 4, ... berechnen. Dann zwischen 2 und 3, 4, 5, ... usw. Die kürzeste gefundene Distanz, ist das gesuchte Ergebnis.
 

arhzz

Bekanntes Mitglied
Ich kenne deine Aufgabe nicht, aber ich interpretiere es so, dass du die kürzeste Distanz zwischen zwei deiner gegebenen Positionen suchen sollst, d.h. im einfachste Fall musst du die Distanzen zwischen Punkt 1 und 2, 3, 4, ... berechnen. Dann zwischen 2 und 3, 4, 5, ... usw. Die kürzeste gefundene Distanz, ist das gesuchte Ergebnis.
Die größte Distanz, genau und jetzt weiss ich nicht wie ich diese Funktion verwenden soll weil ich, wie ich es verstanden soll nur die Latitude und Longitude von einem Punkt habe. Die Frage ist jetz wie bekomme ich die selben von dem zweiten punkt.
 

arhzz

Bekanntes Mitglied
Soweit ich mich erinnere, war dein letztes Problem, wie du Punkte aus einer Textdatei lesen kannst. Da hast du ja wohl jetzt genügend Punkte zur Verfügung...
Du erinnerst dich gut haha. Die Punkte sind schon da,dass weiss ich.Aber ich verstehe nicht wie ich sie aus diesem String bekomme.Wenn ich auf index 2 oder 3 greife bekomme ich einen "OutofBound" error und er passiert weil es nur 2 Koordinaten pro Zeile sind.
 

arhzz

Bekanntes Mitglied
Du hast sie doch in ein Array eingelesen?
Ich denke dass ich das problem gelösen habe. Hier ist der Programm
Java:
public class gps {
public static double calculateDistance(double latitude1, double longitude1,
            double latitude2, double longitude2) {
        double deltaLatitude = Math.toRadians(latitude2 - latitude1);
        double deltaLongitude = Math.toRadians(longitude2 - longitude1);

        double a = Math.sin(deltaLatitude / 2) * Math.sin(deltaLatitude / 2)
                + Math.cos(Math.toRadians(latitude1))
                * Math.cos(Math.toRadians(latitude2))
                * Math.sin(deltaLongitude / 2)
                * Math.sin(deltaLongitude / 2);

        double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));

        return 6371000 * c;
    }   
static final int size = 30;   
public static void main(String [] args){
In.open ("coordinates.txt");
double [] x = new double[size];
double [] y = new double[size];
for (int i = 0; i< size; i++){
     x[i] = In.readDouble ();
     y[i] = In.readDouble ();
}
In.close ();
double maxdistance = 0;
    for(int i = 0; i<size; i++){
        for (int j = 0; j<size; j++){           
        double distance =calculateDistance( x[i], y[i], x[j], y[j]);
        if(maxdistance < distance){
            maxdistance = distance;
        }
    }
    }
    Out.println("The biggest distance is: " + maxdistance);
}}
 
K

kneitzel

Gast
Ja, wobei du dir die Grenzen der beiden verschachtelten Schleifen noch einmal durch den Kopf gehen lassen solltest.

Denkanregung: Abstand von Punkt 2 zu Punkt 3 unterscheidet sich wie zum Abstand von Punkt 3 zu Punkt 2? Und was ist mit dem Abstand von Punkt 1 zu Punkt 1?
 

arhzz

Bekanntes Mitglied
Ja, wobei du dir die Grenzen der beiden verschachtelten Schleifen noch einmal durch den Kopf gehen lassen solltest.

Denkanregung: Abstand von Punkt 2 zu Punkt 3 unterscheidet sich wie zum Abstand von Punkt 3 zu Punkt 2? Und was ist mit dem Abstand von Punkt 1 zu Punkt 1?
Wenn ich dich gut verstanden habe, der Abstand von Punkt 2 zu Punkt 3 soll genau gleich sein wie der Punkt 3 zu Punkt 2. Wenn du das nicht gemeint hast dann sorry.
 
K

kneitzel

Gast
Ja genau. Wenn du also den Abstand von 2 zu 3 schon geprüft hast: Musst Du dann noch den Abstand von 3 zu 2 prüfen?

Und der Abstand zu sich selbst ist was? Und ab welcher Distanz berücksichtigst Du Abstände? Muss man den Abstand zu sich selbst berücksichtigen?

Und wie könnte man den Algorithmus dann mit diesen Erkenntnissen noch anpassen?
 

arhzz

Bekanntes Mitglied
Ja genau. Wenn du also den Abstand von 2 zu 3 schon geprüft hast: Musst Du dann noch den Abstand von 3 zu 2 prüfen?

Und der Abstand zu sich selbst ist was? Und ab welcher Distanz berücksichtigst Du Abstände? Muss man den Abstand zu sich selbst berücksichtigen?

Und wie könnte man den Algorithmus dann mit diesen Erkenntnissen noch anpassen?
Also noch einmal prüfen muss ich es nicht, also habe ich ein Schritt zu viel. Und ab welcher Distanz berücksichtige ich die Abstände? Es sollte eigentlich 0 sein weil is gesagt habe das max distance = 0 ist.?
 
K

kneitzel

Gast
Also du prüfst auf größer 0, daher musst du jeden Punkt nicht mit sich selbst vergleichen.

Wie kann man denn jetzt die Grenzen anpassen, damit da nicht unnötig viel geprüft wird?
 

arhzz

Bekanntes Mitglied
Also du prüfst auf größer 0, daher musst du jeden Punkt nicht mit sich selbst vergleichen.

Wie kann man denn jetzt die Grenzen anpassen, damit da nicht unnötig viel geprüft wird?
Ernst zu sein bin ich mir ganz sicher. Im Moment habe ich nicht gerade viel Zeit um mit dem Program zu spielen, aber später werde ich sicher versuchen es zu verbessern.
 

MoxxiManagarm

Top Contributor
Ernst zu sein bin ich mir ganz sicher.
Das ist das Problem, dass oft nur die Standardvariante einer Schleife gezeigt wird. Sobald diese nicht zum Tragen kommt wissen viele Studenten nicht mehr weiter. Gemeint ist das, bitte versuche es zu verstehen:

Java:
    for(int i = 0; i < size - 1; i++){ // bis zum vorletzten Element
        for (int j = i + 1; j < size; j++){  // startet beim nächsten Element des aktuellen Elementes

Übrigens sind 2 Arrays für x und y auch unschön. Besser wäre es die Paare direkt abzubilden, mindestens in einem nx2-Array, besser aber in einem Array einer entsprechenden Klasse, welche lang und long kennt.
 
K

kneitzel

Gast
Wenn Ihr schon Sortieralgorithmen gehabt habt, dann kannst Du einmal schauen: Das ist auch das Vorgehen beim Bubblesort.

Das ist evtl. hilfreich für den Überblick falls Du so siehst, dass dieses "Pattern" auch an anderen Stellen angewendet wurde.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
J Problem mit Array: 2 Klassen Java Basics - Anfänger-Themen 2
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1
B Array Problem Java Basics - Anfänger-Themen 3
F Problem mit der Aufgabe(Array) Java Basics - Anfänger-Themen 21
H boolean Array Problem Java Basics - Anfänger-Themen 7
B Problem beim grundsätzlichen Verständnis bei Rekursion mit 2-dimensionalen Array Java Basics - Anfänger-Themen 6
S Problem: Array alle Einträge gleich Java Basics - Anfänger-Themen 10
L Array-Problem/Zufallszahlen Java Basics - Anfänger-Themen 7
G Problem mit Array Java Basics - Anfänger-Themen 2
K Problem mit Methode(Array,Boolean,ForSchleife) Java Basics - Anfänger-Themen 6
C Problem mit Arrays im Array Java Basics - Anfänger-Themen 11
A Problem mit Array Ausgabe Java Basics - Anfänger-Themen 7
L 2 dimensionales Array, Problem der Ausgabe Java Basics - Anfänger-Themen 4
E Array Problem Java Basics - Anfänger-Themen 1
L Problem mit Array Programm Java Basics - Anfänger-Themen 2
M Array problem Java Basics - Anfänger-Themen 9
M If und Array-Problem Java Basics - Anfänger-Themen 6
P OOP Array-Problem Java Basics - Anfänger-Themen 5
S Problem mit Array.Length Java Basics - Anfänger-Themen 2
R Array Problem Java Basics - Anfänger-Themen 17
U Methoden Zugriff auf Array von weiterer Methode einer Klasse, Rückgabewert Problem Java Basics - Anfänger-Themen 5
P Array queue problem Java Basics - Anfänger-Themen 1
E Array zu Liste - kleines Problem Java Basics - Anfänger-Themen 6
F Problem mit Array Java Basics - Anfänger-Themen 8
N OOP Problem mit Array Java Basics - Anfänger-Themen 17
M Problem mit 2D Array Java Basics - Anfänger-Themen 3
M Problem mit Array und replace Java Basics - Anfänger-Themen 3
D Array Problem Java Basics - Anfänger-Themen 4
F Array Problem !? Java Basics - Anfänger-Themen 6
M Erste Schritte Array Problem Java Basics - Anfänger-Themen 8
F Problem mit Array, Java Basics - Anfänger-Themen 4
F Problem: Verschlüsselung von String in Array Fehler Java Basics - Anfänger-Themen 2
S Problem bei Kollision zwischen Array-objekten! Java Basics - Anfänger-Themen 2
B Problem mit Array Java Basics - Anfänger-Themen 5
J Array Problem Java Basics - Anfänger-Themen 2
K Problem beim Array aufruf Java Basics - Anfänger-Themen 4
D Klassen Problem mit Eigener Array-Klasse Java Basics - Anfänger-Themen 10
N Array problem bei einem magischen Quadrats Java Basics - Anfänger-Themen 3
P Klassen Klassen mit Array Problem Java Basics - Anfänger-Themen 4
T Problem mit Array Konvertierung Java Basics - Anfänger-Themen 13
T ArrayIndexOutOfBoundsException - Problem mit Array-Größe Java Basics - Anfänger-Themen 4
L Array Problem NullPointerException Java Basics - Anfänger-Themen 3
K Problem: Array String to Integer Java Basics - Anfänger-Themen 2
M Char-Array Problem Java Basics - Anfänger-Themen 6
D Problem mit TextFeld Array Java Basics - Anfänger-Themen 18
A Array Zugriff- Problem Java Basics - Anfänger-Themen 5
V 2D - Objekt Array Problem Java Basics - Anfänger-Themen 3
K Java Array Problem Java Basics - Anfänger-Themen 3
L Problem mit Array Java Basics - Anfänger-Themen 3
K kleines Array-Problem Java Basics - Anfänger-Themen 6
X Array out of bounds problem Java Basics - Anfänger-Themen 7
M Array Problem Java Basics - Anfänger-Themen 2
K Generische Klasse mit innerer Klasse | Problem mit Array Java Basics - Anfänger-Themen 6
E Array Problem... Java Basics - Anfänger-Themen 14
P array problem Java Basics - Anfänger-Themen 9
P Codeschnipsel Verständnis Problem (Array) Java Basics - Anfänger-Themen 6
F Array Problem bei ByteburgTarif Java Basics - Anfänger-Themen 2
P Problem mit Laden und Ausgeben eines array-Objekts Java Basics - Anfänger-Themen 4
A Problem mit einem Array aus JButtons Java Basics - Anfänger-Themen 4
D Array multiplikations Problem Java Basics - Anfänger-Themen 26
D Array Problem Java Basics - Anfänger-Themen 5
B Mehrdimensionale Array Problem Java Basics - Anfänger-Themen 12
T Array-Vector Problem Java Basics - Anfänger-Themen 18
T Blutiger Anfänger mit Array Problem Java Basics - Anfänger-Themen 8
T problem mit array Java Basics - Anfänger-Themen 9
S String split array.length Problem Java Basics - Anfänger-Themen 3
B Problem mit Object Array Java Basics - Anfänger-Themen 8
W Problem mit BubbleSort und Array Java Basics - Anfänger-Themen 10
G Problem mit der Rückgabe von einem Array Java Basics - Anfänger-Themen 3
G Array-Problem Java Basics - Anfänger-Themen 3
M sinus berechnen array problem Java Basics - Anfänger-Themen 2
C array problem Java Basics - Anfänger-Themen 7
G Array ,Matrix Problem Java Basics - Anfänger-Themen 20
Antoras Problem mit Array Java Basics - Anfänger-Themen 5
K Problem mit 2 Dimensionalen Array Java Basics - Anfänger-Themen 4
D Array reverse Problem, da Referenz nicht auf tmpArray zeigt Java Basics - Anfänger-Themen 4
G Kleines Problem mit Array Java Basics - Anfänger-Themen 14
0 Array problem Java Basics - Anfänger-Themen 4
S Problem mit Array-Erstellung Java Basics - Anfänger-Themen 5
A array problem Java Basics - Anfänger-Themen 4
G array Problem Java Basics - Anfänger-Themen 9
H Problem mit array Java Basics - Anfänger-Themen 5
zilti Array-Problem Java Basics - Anfänger-Themen 6
J Array - Vertauschen Problem mit char/int Java Basics - Anfänger-Themen 6
M Problem mit Array in Methodenkopf Java Basics - Anfänger-Themen 2
K problem beim schreiben in ein int-array Java Basics - Anfänger-Themen 9
S JTable Problem mit einzufügendem Array Java Basics - Anfänger-Themen 6
D Problem mit Array brauche schnell Hilfe Java Basics - Anfänger-Themen 11
R Problem mit AbstractTableModel oder Array! Java Basics - Anfänger-Themen 5
G Problem mit Array bei einem 4-Gewinnt Spiel Java Basics - Anfänger-Themen 2
K problem mit resultset und 2d-array Java Basics - Anfänger-Themen 3
G Problem mit array Java Basics - Anfänger-Themen 2
P Array-Problem Java Basics - Anfänger-Themen 4
L Array Problem Java Basics - Anfänger-Themen 9
B Array Manipulation Problem Java Basics - Anfänger-Themen 11
B Array Problem (out of Bounds Exception) Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben