myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Java Programmierung (https://mygully.com/showthread.php?t=2900816)

Sherry321 15.04.13 08:46

Java Programmierung
 
Hallo. Wir haben bis morgen eine Aufgabe zur Java Programmierung aufbekommen und ich als völliger Anfänger bin komplett überfragt. Ich hab mich jetzt seit ner Woche durch alle Foren und Bücher geschlagen, komme aber einfach nicht auf ein optimales Ergebnis was die Aufgabenstellung völlig erfüllt. Ich bin froh wenn ich Hello World schreiben kann :). Hier erseinmal die Aufgabenstellung:

Zitat:

Erstellen Sie ein Java Programm, welches die Entfernung zwischen zwei Punkten berechnet. Dafür sind die
folgenden Teilaufgaben zu erfüllen:
1. Entwickeln Sie eine Klasse, welche einen Punkt mit seinen Koordinaten verwaltet. Die Klasse soll
Methoden zur Rückgabe des x- und y-Wertes des Punktes besitzen. (Beachte: die Rückgabe erfolgt in
Form von Typen, nicht als String)
2. Erzeugen Sie eine Hilfsklasse, welche eine statische Methode zur Berechnung der Distanz zwischen
zwei Punkten zur Verfügung stellt. Dabei sollen als Eingabeparameter die beiden Punkte übergeben
und als Rückgabe die errechnete Distanz zwischen diesen beiden Punkten in einem entsprechenden
Typ zurück gegeben werden.
3. Erzeugen Sie eine Applikation in der zwei Punkte instanziert werden und der Abstand zwischen diesen
beiden Punkten berechnet wird. Geben Sie die Koordinatenwerte der beiden Punkte sowie das
Ergebnis der Abstandberechnung in einer ähnlichen Form wie unter "Hinweise/Hilfestellung" zu finden,
auf der Konsole aus.
Der Programmcode soll mit Kommentaren, welche die einzelnen Programmteile erläutern, versehen werden.
Dies gilt natürlich ebenso für alle nachfolgenden Aufgaben.

Kann mir jemand vielleicht einen Lösungsvorschlag machen? Ich würde mich dann auch hinsetzen und versuchen anhand der Lösung das selbst zu verstehen. Vielleicht kann auch jemand ein wenig Erklärungen mit beifügen. Ich wäre sehr sehr dankbar.
Lieber Gruß Sherry

Your_Conscience 15.04.13 08:54

Hier wird immer gern gesehn, was du bis jetzt schon gemacht hast. Wenn du noch nichts geschafft hast, solltest du dich dringend damit beschäftigen.

Woran hängt es denn genau?

Matze500 15.04.13 13:17

Hauptklasse

Code:

public class Main {

        /**
        * @param args
        */
        public static void main(String[] args) {
               
                Vektor2 v1 = new Vektor2(1.0,2.0);
                Vektor2 v2 = new Vektor2(4.0,1.0);
               
                System.out.println(v1.getX() +"  "+ v1.getY()); // gibt x und y Koordinaten aus
               
                System.out.println(v1.betrag()); // Betrag von dem Vektor
               
                System.out.println(v1.skalarprodukt(v2)); //Skalarprodukt von zwei Vektoren (v1 und v2)
               
                System.out.println(v1.abstand(v2)); // Abstand v 1 und v2

        }
}

Vektor2 Klasse

Code:

public class Vektor2 {
        /* instance variable declarations */
        double x;
        double y;
       
        /* constructor */
        Vektor2( double pX, double pY){
        x = pX;
        y = pY;
        }       

        public double betrag(){
       
                double betrag =  Math.sqrt(Math.pow(x,2)+Math.pow(y,2));
       
                return betrag;
        }
       
        public double skalarprodukt(Vektor2 v){
               
                double skalar = (x * v.x) + (y * v.y);
               
                return skalar;
        }
       
        public double abstand(Vektor2 v){
               

                //Satz des Pythagoras
                double abstand = Math.sqrt(Math.pow((v.x - x),2) + Math.pow((v.y - y),2));
               
                return abstand;
        }
       
        public double getX(){
               
                return x;
        }
       
        public double getY(){
               
                return y;
        }
}

Ich hoffe ich konnte dir damit etwas helfen.

MFG Matze500

Sherry321 15.04.13 17:32

ja etwas helfen konntest du schon. danke
aber muss ich das nicht über ein raster oder sowas laufen lassen. Da er ja wenn man aufgabe 3 betrachtet, von dem Nullpunkt ausgeht und nicht den Abstand zwischen den beiden Punkten berechent. Oder verstehe ich das jetzt falsch.

Gruß
Sherry

Matze500 15.04.13 18:35

Also ein Punkt P(x,y) ist ähnlich wie ein Vektor(x,y).

Das zum Abstand zwischen zwei Punkten :

[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Wieso vom Nullpunkt?

Ich gehen von P1(x,y) und P2(x,y) aus. Ich kann vereinfacht x statt v1.x nehmen da ich in dem Objekt von v1 arbeite und mir somit nur v2 übergeben muss.

double abstand = Math.sqrt(Math.pow((v.x - x),2) + Math.pow((v.y - y),2));

v.x = v2.x //mit dem y trifft dasselbe zu
x = v1.x

Über TS oder Skype könnte ich es dir besser erklären.(Bei Interesse PM)

PS: Ich weiß nicht was bei deinen Aufgaben unter "Hinweise/Hilfestellung" steht.

MFG Matze500

Sherry321 15.04.13 20:11

ja das ist wohl was ich nicht verstehe. Ich versuche gerade nur den Satz des Pythagoras so umzuschreiben wie du eben meintest, da mir das etwas schwer fällt das einfach so übergeben zu lassen (also vom reinen nachvollziehen her)
Wo müsste ich dem erklären das ich x1 und x2 verwenden möchte statt v.x - x?

Matze500 15.04.13 21:01

Pythagoras:

c^2 = a^2 + b^2
c = Wurzel(a^2+b^2)

die Gerade a ist (x1 - x2)
die Gerade b ist (y1 - y2)

Das zum Pythagogras. ich fand das eigentlich in dem Link den ich im obrigen Post habe sehr gut erklärt.

Math.sqrt = Wurzel

Math.pow( Wert , Potenz) = x^2 z.B.


Man kann die Funktion abstand auch anders screiben z.B so :

Code:

public double abstand(Vektor2 v1, Vektor2 v2){
               

                //Satz des Pythagoras
                double abstand = Math.sqrt(Math.pow((v1.x - v2.x),2) + Math.pow((v1.y - v2.y),2));
               
                return abstand;
        }

MFG Matze500


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:39 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.