Forum / Grundlagen des Programmierens / 2. Hausübung

2. Hausübung

Hallo Leute!

Hat sich von euch schon jemand die Bsp aus dem Rep angschaut??? Soweit ich weiß hat der Tutor gemeint dass er diese mit Kommentaren versieht um diese verständlicher zu machen, oder irre ich mich???

mfg

Andreas ±0

Stimmt, natürlich war das auch davor schon so.

Dieter ±0

Immer wieder heißt es die Studierenden lesen sich oft die Angaben ungenau durch, dann sollen die mal beginnen genaue und eindeutige Angaben zu schreiben die einen nicht verwirren>.< XD

Maximilian ±0

Sorry, aber ich Blick überhaupt nicht durch:

Bei dem Bsp 2 von Kiri

was ist da der Konstruktor, bzw. wo finde ich den? :S

Ivan ±0

Hier ist wie ich mein Beispiel gemacht hab:

        
        public static float flache = 0;
        public static float kantenlange = 0;
        static float [] values = new float[2];
    
    public static void main (String [] args) {
        
        
        
        Scanner reader = new Scanner (System.in);
        
        System.out.println(&quot;Bitte Geben Sie Lange:&quot;);
        values[0] = reader.nextFloat();
        System.out.println(&quot;Bitte Geben Sie Breite:&quot;);
        values[1] = reader.nextFloat();
        
        System.out.println(&quot;Was wollen Sie berechnen? (Flache 'f'/ Kantenlange 'l')&quot;);
        char choice = '\u0000';
        choice = reader.next().charAt(choice);
        
        switch (choice){
                case 'f':
                    flacheBerechnung();
                  
                    break;
                case 'l':
                    kantenBerechnung();
                    break;
                default: System.out.println(&quot;Fehler!!&quot;);
                   break;
        }
    }
        public static void flacheBerechnung(){
            flache = (values[0] * values[1]);
            System.out.println(&quot;Flache = &quot; + flache);
           }
        public static void kantenBerechnung() {
            kantenlange = (2*values[0] + 2*values[1]);
            System.out.println(&quot;Kantenlange = &quot; + kantenlange);
            
        }
}\n~~~

Admin Edit: Ich kanns nur immer wieder sagen, verwendet den [BB-Code](https://studify.com/outgoing?url=http%3A%2F%2Fboards.studify.at%2Fmisc.php%3Fdo%3Dbbcode) &quot;CODE&quot; um euren Quelltext darzustellen! Wichtig f&uuml;r &Uuml;bersichtlichkeit und Suchfunktion...
Ivan ±0

Kann jemand bitte mir erklären was "Der Standardkonstruktor soll Vektoren mit den Koordinaten (1|1) erstellen." in beispiel 2.2 bedeutet?

Danke. lg

Michael ±0

Kann jemand bitte mir erklären was "Der Standardkonstruktor soll Vektoren mit den Koordinaten (1|1) erstellen." in beispiel 2.2 bedeutet?

Danke. lg

public Vektor2D()
    {
        this.x = 1;
        this.y = 1;        
    }
\n~~~
Andreas ±0

public Vektor2D() { this.x = 1; this.y = 1;
} [/code]

Zur Ergänzung:

Sind die Werte unbekannt, so verwendet man den Standard-Konstruktor zur Erzeugung des Objekts. Kennt man dagegen die Werte der Attribute, so verwendet man den zweiten Konstruktor.

Wolfgang ±0

Zur Ergänzung:

Sind die Werte unbekannt, so verwendet man den Standard-Konstruktor zur Erzeugung des Objekts. Kennt man dagegen die Werte der Attribute, so verwendet man den zweiten Konstruktor.

Würd ich anders definieren, "unbekannt" trifft es nicht ganz.

Der Standardkonstruktor wird verwendet, wenn keine Parameter übergeben werden. Also bei einem Objekt


Werden Parameter mitgegeben, kommt der Konstruktor ins Spiel, der gleich viele Attribute initialisiert, wie &uuml;bergeben werden.
Also z.b.
~~~\npoint p = new point(1,2);

\n~~~
W&auml;re ein passender Konstruktor:
~~~\npoint (int a, int b) {
//Anweisung
}\n~~~
Jürgen ±0
42065

Bei 2.3. soll ich ja die ganze Funktionalität von Vektor2D mitnehmen. Sprich in der neuen beerbenden Klasse Vektor3D muss i meine Methoden usw um die Z Koordinate erweitern, seh ich das richtig? wenn ja oder auch nein, wie stell ich das an?? ^^

Linus ±0

Ich fände sowas in diese Richtung passend:

public class Vektor3D extends Vector2D{
	    protected int z;

	    public class Vektor3D{
	        super(x,y);
	        double z;
	    }
	    public void addvektor(Vector3D){
	    	return x1+x2+x3,
	    	
	    }
	    public double laenge (){
	    	return Math.sqrt(Math.pow(x, 2)+Math.pow(y, 2))+Math.pow(z, 2));
	    }
	
\n~~~
Roman ±0

Hier mal die Klasse Vector 3D, für alle dies noch brauchen ;) Meint ihr es passt so?

public class Vector3D extends Vector2D {
    double z;
    
    public Vector3D(){
    this.z = 1.00;
}
    public Vector3D(double x, double y,double z){
        super (x,y);
        this.z = z;

}


    public void addVector(Vector3D vector){
        x += vector.x;
        y += vector.y;
        z += vector.z;
    }

    @Override
    public double getLength(){
        return Math.sqrt(Math.pow(x, 2)+ Math.pow(y, 2)+Math.pow(z, 2));
}

    public static void main(String[] args) {
        double x;
        double y;
        double z;
        Scanner eingabe = new Scanner(System.in);
        System.out.println(&quot;Geben Sie die x-Koordinate des 1. Vektors ein&quot;);
        x = eingabe.nextDouble();
        System.out.println(&quot;Geben Sie die y-Koordinate des 1. Vektors ein&quot;);
        y = eingabe.nextDouble();
        System.out.println(&quot;Geben Sie die z-Koordinate des 1. Vektors ein&quot;);
        z = eingabe.nextDouble();      
        Vector3D vector1 = new Vector3D (x,y,z);
        
        
        System.out.println(&quot;Geben Sie die x-Koordinate des 2. Vektors ein&quot;);
        x = eingabe.nextDouble();
        System.out.println(&quot;Geben Sie die y-Koordinate des 2. Vektors ein&quot;);
        y = eingabe.nextDouble();
        System.out.println(&quot;Geben Sie die z-Koordinate des 2. Vektors ein&quot;);
        z = eingabe.nextDouble();
        Vector3D vector2 = new Vector3D(x,y,z);
     
        System.out.println(&quot;Geben Sie die x-Koordinate des 3. Vektors ein&quot;);
        x = eingabe.nextDouble();
        System.out.println(&quot;Geben Sie die y-Koordinate des 3. Vektors ein&quot;);
        y = eingabe.nextDouble();
        System.out.println(&quot;Geben Sie die z-Koordinate des 3. Vektors ein&quot;);
        z = eingabe.nextDouble();
        Vector3D vector3 = new Vector3D(x,y,z);
        
        System.out.println(&quot;L&auml;nge des 1. Vektors ist &quot;+vector1.getLength());
        System.out.println(&quot;L&auml;nge des 2. Vektors ist &quot;+vector2.getLength());
        System.out.println(&quot;L&auml;nge des 3. Vektors ist &quot;+vector3.getLength());

        vector1.addVector(vector2);
        vector1.addVector(vector3);

        System.out.println(&quot;Die Gesamtl&auml;nge der Vektoren ist &quot; + vector1.getLength());
    }
}\n~~~
Chao ±0

hallo, wie kann man im Bsp4 fünf 3D Vektoren zur ArrayList hinzufügen? danke!

Michael ±0

hallo, wie kann man im Bsp4 fünf 3D Vektoren zur ArrayList hinzufügen? danke!

List&lt;Vektor3Dcomparable&gt; liste = new ArrayList&lt;&gt;();
       
       liste.add(new Vektor3Dcomparable());

\n~~~
Chao ±0

Ja, aber mit einer Schleife..

Michael ±0

Ja, aber mit einer Schleife.. for schleife über die "add" Methode? nur warum eine schleife?

Sorry, die Kommentarfunktion ist geschlossen.