Zum Inhalt springen

Hilfe bei einer Programmieraufgabe in Java benötigt


dhg

Empfohlene Beiträge

Guten Tag, ich sitze seit knapp 3 Tagen an einer Aufgabe in JAVA. Mein Problem ist, ich kann 0 Java. Versuche also seit 3 Tagen ein kleines Programm in Java zu erstellen.

Ich hoffe mir koennte irgend jemand helfen.



Folgende Aufgabenstellung wurde vorgegeben:


 

[B]Teil 1[/B]

Schreiben Sie ein Programm, dass drei Punkte in einem Koordinatensystem (Sie köonnen sich auf die beiden Positiven Achsen beschr¨anken) als Parameter übergeben bekommt und dann die kürzeste Verbindung zwischen diesen drei Punkten ermittelt. Als Ausgabe reicht es, die beiden Punktepaare anzugeben, zwischen dennen eine Verbindung besteht.


[B]Beispiel:[/B] 

Sie übergeben Ihrem Programm die Punkte (2;1), (8;2) und (9;4). Dann sollte

Ihr Programm ausgeben, dass die Verbindung zwischen (2;1) und (8;2) und zwischen (8;2) und (9;4) in der Summe die Kürzeste ist. 


[B]Tipp:[/B] 

Zeichnen Sie sich ein paar Beispiele auf ein Blatt Papier und überlegen Sie sich, wie Sie die kürzeste Strecke bestimmen können.


[B]Teil2 [U](optional)[/U][/B]

Erweitern Sie Ihr Programm aus Teil 1 um eine grafische Ausgabe (z.B. per AWT, ActiveX, ...) 

Ich muss diese Aufgabe bis mitte nächster Woche abgegeben haben. Meine kleine "anfangsstufen" sind in PHP.

Ich hoffe es ist nicht zu viel verlangt, wenn ich nach Hilfe / Tipps frage.

Das ganze soll wenns geht als "ausfuehrbares" Script unter Windows funktionieren. Quelltext sowie Kommentare innerhalb diesem Quelltextes sollen ebenfalls abgegeben werden.

Vielen Dank schon einmal im vorraus,

Mit freundlichen Grüßen

dhg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wo hakt es denn? Das müssten wir schon wissen (es sei denn du willst alles vorgekaut haben, das wird kaum jemand tun).

Ganz nebenbei versteh ich die Aufgabenstellung nicht. Geht es um das finden des kürzesten Weges, oder um ein Paar Punkt die am dichtesten Zusammenstehen?

Für ersteres: Such einfach die beiden Punkte, die am weitesten auseinander liegen und die Verbindung über die anderen beiden ist die kürzeste. (Oder so *verwirrtbin*

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich die Aufgabe richtig verstanden habe, soll das Programm ausgeben das der Weg zwischen (2;1) und (8;2) der kürzeste ist, sowie zwischen (8;2)

und (9;4).

Wenn ich die Aufgabe soweit richtig verstehe, muss ich den Betrag des Vektors ausrechnen.

Mir geht es darum, das ich irgendwie erstmal auf den richtigen Weg komme, damit man sich an solch ein Programm ranwagen kann. Also ob die Aufgabenstellung so wie oben beschrieben richtig verstanden wurde, oder ob ich vielleicht doch falsch liege. Habe mir mal einige Seitem im Internet zum Vektor rausgesucht. Es gibt anscheind unterschiedliche Formeln.

Danke schonmal fuer die schnelle Antwort.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Meine Interpretation der Aufgabe:

Drei Punkte beschreiben im 2-dimensionalen Raum bekanntlich ein Dreieck. Nehmen wir z. B. das rechtwinklige Ideal-Dreieck mit den Kantenlängen 3, 4 und 5.

Es sind 3 Wege vorstellbar, die die Punkte verbinden:

3 + 4 = 7

3 + 5 = 8

4 + 5 = 9

Deine Aufgabe besteht nun darin, die beiden Punktepaare auszugeben, die über den kürzesten Weg verbunden sind.

Vektoren dürften dabei hilfreich sein. An sich mußt Du für jedes Punktepaar den "Verschiebungsvektor" berechnen. Mit diesem kannst Du dank dem Satz des Pythagoras die Strecke zwischen den Punkten berechnen. Dann mußt Du nur noch die kleinste Strecke raussuchen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe nochmal ein wenig gegrübelt und eigentlich lässt das nur einen Schluss zu...

Du bekommst drei Punkt: A, B, C

Das Programm soll jetzt herausfinden welche beiden Punktpaare am dichteten beieinander leigen (also Nicht am weitestens auseinander sind).

Die einfachste Lösung wäre, da es ja in jedem Fall ein Dreieck ist (es sei denn 2 Punkt leigen am selben Ort, aber das kann man ja vorher abfangen), der Satz des Phytagoras.

Berechne einfach folgendes:


A nach B: (Ax-Bx)² + (Ay-By)² = 37 

A nach C: (Ax-Cx)² + (Ay-Cy)² = 58

B nach C: (Bx-Cx)² + (By-Cy)² = 5


(Die Wurzel kann man weglassen, wir wollen ja nicht die Entfernung, sondern nur das Verhältnis)

Dann greifst du dir die beiden kleinesten raus (oder besser: Streichst die größte Entfernung) und du hast es.

Implementierung entweder einfach und schnell über verschachteltes Array oder schön Objektorientiert:

3 Punktobjekte

3 Vektorobjekte

1 Funktion die die Entfernung berechnet

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die einfachste Lösung wäre, da es ja in jedem Fall ein Dreieck ist (es sei denn 2 Punkt leigen am selben Ort, aber das kann man ja vorher abfangen), der Satz des Phytagoras.

Ich bin mathematisch nicht in Topform. Aber der Satz gilt doch nur im rechtwinkligen Dreieck. Bei der Aufgabenstellung wird über das aufgespannte Dreieck nichts gesagt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...