Eclipse Entfernung berechnen

Shurik

Mitglied
Guten Tag,
ich bin der Shurik und Studiere im 1sten Semester Informatik. Ich bräuchte für eine Projekt Aufgabe eine Starthilfe.
Aufgabe:
0. Stadt: 20/ 20
1. Stadt: 120/ 320
2. Stadt: 90/ 140
3. Stadt: 200/ 120
4. Stadt: 50/ 50

Ich habe diese Städte und muss daraus eine karte machen. Man fängt bei der Stadt 0 an und muss dann mit der Berechnung ( Satz des Pythagoras ) die nächste nahe liegende Stadt berechnen. Von der neuen Stadt aus muss ich dann wieder die nächst nahe liegende Stadt berechnen. So ergibt es am Ende eine Route von den Städten. Die Stadt 0 muss dann wenn man die nächste liegende Stadt zu 0 hat aus der Schleife rausgenommen werden damit man weiter kommt und nicht immer nur bei 2 Städten hängt.

Leider weiß ich nicht wie ich am besten Anfangen sollte und wie ich die erste Stadt dann aus der Schleife rausnehme.

Ich hoffe es ist verständlich genug und es kann mir jemand helfen.

Gruß,
Shurik
 

TKausL

Top Contributor
So in etwa?

Java:
public class Stadt {
    public Stadt(int x, int y){
      this.x = x;
      this.y = y;
    }
    public int x;
    public int y
}


class Main {
    public void main(String[] args){
        Stadt[] staedte = new Stadt[5];
        staedte[0] = new Stadt(20,20);
        staedte[1] = new Stadt(120,320);
        staedte[2] = new Stadt(90,140);
        staedte[3] = new Stadt(200,120);
        staedte[4] = new Stadt(50,50);
	for(int i = 0; i < staedte.length - 1; i++){
	    for(int j = i + 1; j < staedte.length; j++){
		//Satz des Pythagoras zwischen staedte[i] und staedte[j]
	    }
	}

    }
}
 

Shurik

Mitglied
Also von dem Code habe ich bisher noch nichts zusammen bekommen. Ich habe aber die graphische Darstellung schonmal dazu gemacht in der dann die Punkte verbunden werden sollen.
Klasse Rundreise
Java:
package mypack;
import java.awt.*; import javax.swing.*;

public class Rundreise extends JPanel {
	private int WIDTH = 700; private int HEIGHT = 500; 
	private int[] stadt0 = new int[]{20,20};
	private int[] stadt1 = new int[]{120,320};
	private int[] stadt2 = new int[]{90,140};
	private int[] stadt3 = new int[]{200,120};
	private int[] stadt4 = new int[]{50,50};
	private int[] stadt5 = new int[]{300,300};
	private int[] stadt6 = new int[]{250,350};
	private int[] stadt7 = new int[]{130,90};
	private int[] stadt8 = new int[]{250,280};
	private int[] stadt9 = new int[]{180,180};
	
	public Rundreise () {
	
	JFrame f = new JFrame();
	f.setSize(WIDTH, HEIGHT);
	f.add(this);
	f.setVisible (true);
	}
	
	public void paintComponent(Graphics g) {
		g.fillOval(this.stadt0[0],this.stadt0[1], 10, 10);
		g.fillOval(this.stadt1[0],this.stadt1[1], 10, 10);
		g.fillOval(this.stadt2[0],this.stadt2[1], 10, 10);
		g.fillOval(this.stadt3[0],this.stadt3[1], 10, 10);
		g.fillOval(this.stadt4[0],this.stadt4[1], 10, 10);
		g.fillOval(this.stadt5[0],this.stadt5[1], 10, 10);
		g.fillOval(this.stadt6[0],this.stadt6[1], 10, 10);
		g.fillOval(this.stadt7[0],this.stadt7[1], 10, 10);
		g.fillOval(this.stadt8[0],this.stadt8[1], 10, 10);
		g.fillOval(this.stadt9[0],this.stadt9[1], 10, 10);
		
		g.drawString("0", 15, 20); 
		g.drawString("1", 115, 320); 
		g.drawString("2", 85, 140); 
		g.drawString("3", 195,120); 
		g.drawString("4", 45, 50); 
		g.drawString("5", 295, 300); 
		g.drawString("6", 245, 350); 
		g.drawString("7", 125, 90); 
		g.drawString("8", 245, 280); 
		g.drawString("9", 175, 180); 
		
		
	}
}

Hier meine main in der ich es aufrufe

Java:
package mypack;

public class Rundreise_main {
	
	public static void main(String[] args) {

		Rundreise reise = new Rundreise();
	}

}

Am Ende muss ich halt eine Karte haben wo alle die punkte verknüpft sind und immer nur der Punkt mit den an nächsten für Ihn.
 

Djinndrache

Bekanntes Mitglied
Du könntest mit einer for()-Schleife die Berechnung von Stadt X zu allen anderen Städten berechnen und die geringste Distanz ist dann dein Gewinner (also die Stadt, die am nächsten an Stadt X ist)
 

Shurik

Mitglied
Du könntest mit einer for()-Schleife die Berechnung von Stadt X zu allen anderen Städten berechnen und die geringste Distanz ist dann dein Gewinner (also die Stadt, die am nächsten an Stadt X ist)

ja das stimmt aber dann muss ja die erste Stadt aus der Berechnung raus, ich habe halt nicht nur 2 Städte. Wenn man nur von Punkt a zu Punkt b hätte wäre es um einige einfacher.
 

Djinndrache

Bekanntes Mitglied
ja das stimmt aber dann muss ja die erste Stadt aus der Berechnung raus, ich habe halt nicht nur 2 Städte. Wenn man nur von Punkt a zu Punkt b hätte wäre es um einige einfacher.

Wo ist das Problem? Von einer Stadt zu sich selbst ist die Distanz 0. Setz einfach als Bedingung, dass die geringste Distanz die du suchst > 0 sein soll.
 

Shurik

Mitglied
Wo ist das Problem? Von einer Stadt zu sich selbst ist die Distanz 0. Setz einfach als Bedingung, dass die geringste Distanz die du suchst > 0 sein soll.

Ich gehe von Stadt1 zu Stadt2 dann muss aber Stadt 1 raus, weil sonst die nächste Stadt zu Stadt2 wäre ja die Stadt1, das meine ich. Ich muss dann von Stadt2 die nächste liegende Stadt suchen die aber nicht Stadt1 sein darf da ich von dort ja komme.
 

Shurik

Mitglied
So in etwa?

Java:
public class Stadt {
    public Stadt(int x, int y){
      this.x = x;
      this.y = y;
    }
    public int x;
    public int y
}


class Main {
    public void main(String[] args){
        Stadt[] staedte = new Stadt[5];
        staedte[0] = new Stadt(20,20);
        staedte[1] = new Stadt(120,320);
        staedte[2] = new Stadt(90,140);
        staedte[3] = new Stadt(200,120);
        staedte[4] = new Stadt(50,50);
	for(int i = 0; i < staedte.length - 1; i++){
	    for(int j = i + 1; j < staedte.length; j++){
		//Satz des Pythagoras zwischen staedte[i] und staedte[j]
	    }
	}

    }
}

könntest du vllt noch eine Ausgabe dazu machen ich kann das irgendwie nirgends wo richtig einbauen in meinen Code den ich oben gepostet habe.
Danke aber so sieht mir das schon ganz gut aus.
 

TKausL

Top Contributor
Ich weiß jetzt garnicht ob ich dich richtig verstanden habe.
Mit meinem Code würde einfach die Entfernung zwischen Jeder Stadt berechnet werden.

BTW: Ich hoffe du weißt selbst wie du eine Ausgabe auf der Console machst und du weißt auch, wie du den Pythagoras ausrechnest. Versuch selbst mal den Pythagoras aus staedte.x, staedte.y und staedte[j].x, staedte[j].y auszurechnen und auszugeben. Wenn du es nicht schaffst, Zeig was du versucht hast.
 

Shurik

Mitglied
Leider bin ich noch nicht sogut in Programmieren aber ich beschreibe erstmal den Algorithmus:
Ich berechne mit dem Satz des Pythagoras die Entfernungen von Stadt0 zu allen anderen, dann habe ich meine neue Stadt, dass ist die mit dem kürzestem weg zu Stadt0 ( zb Stadt 4). Dann gehe ich von Stadt4 aus und berechne zu allen übrigen Städten den Weg, aber die Stadt in der ich war darf da nicht mehr drin sein ( also ohne Stadt0) dann wäre die Stadt mit der kürzesten Distanz meine neue Stadt von der ich weiter rechnen muss, also so sieht die Theorie aus.
 

TKausL

Top Contributor
Dann ist meiner der falsche Ansatz.

Ich würde eine ArrayList mit den Städten befüllen (außer die erste), dann von der ersten aus die Entfernungen zu allen Städten berechnen. Die Stadt mit der kürzesten Entfernung nimmst du dann aus der Liste raus und machst mit dieser genau das gleiche.
 

Marco13

Top Contributor
Eine Methode wie
Java:
class Stadt {
...
    public double entfernungZu(Stadt andererStadt)
    {
         ...
    }
}
wäre vielleicht angebracht.
 
P

pappawinni

Gast
Also mal langsam...wenn du das..

Man fängt bei der Stadt 0 an und muss dann mit der Berechnung ( Satz des Pythagoras ) die nächste nahe liegende Stadt berechnen. Von der neuen Stadt aus muss ich dann wieder die nächst nahe liegende Stadt berechnen.

wörtlich nimmst.. dann pendelst du nur zwischen zwei Städten hin und her...weil, wenn die Stadt B die nächste Stadt von Stadt A ist, dann gilt das wohl umgekehrt auch.
Entfernungen zwischen den Städten zu ermitteln dürfte vermutlich mal so als erster Schritt richtig sein.

Der nächst Schritt müsste dann wohl ein Wegoptimierung sein. Das Optimierungsziel erscheint mir aber etwas fragwürdig.
Angenommen eine bereits besuchte Stadt würde aus der Betrachtung herausfallen, dann wäre immernoch die Frage was passieren soll, wenn zwei Städte die gleiche Entfernung von der aktuellen haben.
 

Shurik

Mitglied
Also mal langsam...wenn du das..



wörtlich nimmst.. dann pendelst du nur zwischen zwei Städten hin und her...weil, wenn die Stadt B die nächste Stadt von Stadt A ist, dann gilt das wohl umgekehrt auch.
Entfernungen zwischen den Städten zu ermitteln dürfte vermutlich mal so als erster Schritt richtig sein.

Der nächst Schritt müsste dann wohl ein Wegoptimierung sein. Das Optimierungsziel erscheint mir aber etwas fragwürdig.
Angenommen eine bereits besuchte Stadt würde aus der Betrachtung herausfallen, dann wäre immernoch die Frage was passieren soll, wenn zwei Städte die gleiche Entfernung von der aktuellen haben.

ja das habe ich auch oben geschrieben: Das die Stadt0 dann aus der schleife raus muss. Weil sonst hättest du recht und ich würde nur von Stadt0 zu Stadt4 gehen zb.
 
T

test12345678

Gast
...weil, wenn die Stadt B die nächste Stadt von Stadt A ist, dann gilt das wohl umgekehrt auch.

Nein, das ist ein Denkfehler:

Stadt1 ------- 10km -------> Stadt2 ------ 5km -----> Stadt3


ändert aber nichts daran, dass die besuchten städte nicht mehr berücksichtigt werden dürfen. ;)
 
P

pappawinni

Gast
Stimmt, muss nicht so sein, kann halt. Ebenso wie auftreten könnte, dass zwei Städte die gleiche Entfernung haben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Encera Größe eines Objektes in Byte berechnen Allgemeine Java-Themen 2
bittedanke Wie benötigte Bits berechnen (Huffmankodierung) Allgemeine Java-Themen 7
C Koordinaten LONG/LAT eines neuen Punktes in bestimmter Entfernen und Winkel berechnen Allgemeine Java-Themen 3
ReinerCoder Kombinationsmöglichkeiten der Textfelder berechnen Allgemeine Java-Themen 14
S Mittelwert anhand eines Stream berechnen Allgemeine Java-Themen 5
MiMa Prüfziffer einer EAN Nummer berechnen Allgemeine Java-Themen 4
C Java Script Pause berechnen Allgemeine Java-Themen 5
D Kgv aller Paare aus einem Array mit n integer berechnen Allgemeine Java-Themen 5
MaxG. Best Practice Alle Kombinationen berechnen Allgemeine Java-Themen 3
Aruetiise Funktion(y = mx+n) in String speichern und berechnen Allgemeine Java-Themen 9
N Das große O berechnen Allgemeine Java-Themen 2
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
N Kombinationen beliebiger Größe berechnen Allgemeine Java-Themen 1
The Pi Anzahl der Gewichtscheiben berechnen Allgemeine Java-Themen 11
B Hirsch-Index berechnen Allgemeine Java-Themen 11
B Umfang berechnen für Polygone Allgemeine Java-Themen 18
C pplet Mitelwert Berechnen Allgemeine Java-Themen 0
J Primzahlen berechnen Allgemeine Java-Themen 13
K F-Verteilung FINV in Java berechnen Allgemeine Java-Themen 4
A Helligkeit eines Bildes berechnen Allgemeine Java-Themen 1
P Methoden Alle Kombinationen aus 2 Karten berechnen Allgemeine Java-Themen 2
C mp3-Lied Dauer berechnen Allgemeine Java-Themen 1
L Winkel eines Vektors berechnen [Anfängerprob] Allgemeine Java-Themen 5
R Threads Taskzeit berechnen Allgemeine Java-Themen 12
T Kreis und sekant schnittpunkt berechnen mit latitude longitude Allgemeine Java-Themen 4
B Java Diffentialgleichungen berechnen Allgemeine Java-Themen 3
W 2D-Grafik Kontrast eines Bildes berechnen Allgemeine Java-Themen 6
T Taylorpolynom berechnen Allgemeine Java-Themen 14
S Erste Schritte Mittelsenkrechte berechnen Allgemeine Java-Themen 3
P Matrix Kurtosis berechnen Allgemeine Java-Themen 40
S Werte aus 2 eindimensionale boolean arrays mithilfe von logischen operatoren berechnen Allgemeine Java-Themen 6
S Teiler Berechnen Allgemeine Java-Themen 6
Kr0e Differenzen von Bildern berechnen - Remote control Allgemeine Java-Themen 2
D md5 berechnen für BufferedImage Allgemeine Java-Themen 5
J bewegliche Feiertage berechnen Allgemeine Java-Themen 7
W Rechnungsbetrag berechnen Allgemeine Java-Themen 2
reibi Checksumme für ein File berechnen Allgemeine Java-Themen 12
M Integral berechnen Allgemeine Java-Themen 5
D Primzahlen berechnen funktioniert nicht Allgemeine Java-Themen 2
S Algorithmus um nächst folgende Primzahl zu berechnen Allgemeine Java-Themen 7
Developer_X Prozentdifferenz berechnen. Allgemeine Java-Themen 13
M Kombinationen über rekursiven Algorithmus berechnen? Allgemeine Java-Themen 10
M Monatliche Zeitspannen berechnen Allgemeine Java-Themen 3
Ark Arkussinus effizient berechnen Allgemeine Java-Themen 12
Iron Monkey Potenzzahlen mit shiftLeft berechnen? Allgemeine Java-Themen 13
N Rechenzeit berechnen? Allgemeine Java-Themen 3
H Schrifthöhe berechnen / Swing Allgemeine Java-Themen 5
T ungerade zahlen berechnen Allgemeine Java-Themen 3
X Suche Java Klasse die Feiertage berechnen kann Allgemeine Java-Themen 2
G ganzzahlige Potenz schnell berechnen Allgemeine Java-Themen 4
M Lautstärke von Audiosignal live berechnen Allgemeine Java-Themen 7
S CRC wert berechnen ergibt 0 ? Allgemeine Java-Themen 9
data89 Die Größe eines Strings in Byte berechnen? Allgemeine Java-Themen 12
T Arbeitsstunden berechnen Allgemeine Java-Themen 8
M Date Range auswerten und die Monate berechnen Allgemeine Java-Themen 2
V Setter zum Berechnen nutzen? Allgemeine Java-Themen 5
G Richtung berechnen anhand Koordinaten Allgemeine Java-Themen 3
P Dauer (Tage, Stunden, Minuten, Sekunden) berechnen Allgemeine Java-Themen 5
D Mittelwert einer Menge von Doubles berechnen Allgemeine Java-Themen 3
P Winkel berechnen. Allgemeine Java-Themen 3
0 Alle Teiler einer Zahl performant berechnen? Allgemeine Java-Themen 9
B Was würdet ihr dafür berechnen? Allgemeine Java-Themen 7
T MessageDigest von einem char[] berechnen Allgemeine Java-Themen 7
S den zweit niedrigsten wert in einem array berechnen Allgemeine Java-Themen 2
E CRC 8 Berechnen Allgemeine Java-Themen 1
M Math-String-Formel berechnen lassen Allgemeine Java-Themen 4
B Ellipsen Kreisbahnen berechnen! Allgemeine Java-Themen 11
M Alle möglichen Kombinationen von mehreren Objekten berechnen Allgemeine Java-Themen 6
clemente lanman und nt password berechnen Allgemeine Java-Themen 7
J an und bn berechnen Allgemeine Java-Themen 5
F Datum mit anzahl tagen berechnen Allgemeine Java-Themen 3
B Differenz in Monaten berechnen --- DateDiff()? Allgemeine Java-Themen 12
B Distance berechnen! Allgemeine Java-Themen 7
D Feiertage berechnen Allgemeine Java-Themen 8
F vergangene Zeit berechnen Allgemeine Java-Themen 6
R Zeitspannen berechnen Allgemeine Java-Themen 7
N 2 hoch 100 berechnen Allgemeine Java-Themen 8
P Punkt berechnen Allgemeine Java-Themen 4
C x-te Wurzel berechnen Allgemeine Java-Themen 2
M Formel in einem String während Laufzeit berechnen. Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben