Beiträge von Bradon

    "Lassen Sie das Objekt die Methoden dividieren() und multiplizieren() durchführen. Übergeben Sie dazu den Methoden Instanzvariablen als Argumente". (Objekt und Instanz sowie Parameter und Argumente bedeuten jeweils das gleiche, falls das nicht klar ist)

    Um das Programm komplett zu verstehen, sollten die Grundlagen von objektorientierter Programmierung bekannt sein, das heißt was Klassen, Objekte, Methoden und Konstruktoren sind und wie man sie benutzt. Das Grundrechenarten-Beispiel kommt typischerweise etwas vor diesen Themen, wenn erst mal Variablen und Output erklärt werden sollen.

    1. Formal: this ist eine Referenz auf das aktuelle Objekt. Wenn du ob1.addieren(..) aufrufst, ist this innerhalb von addieren ob1.

    Gebraucht wird this vor allem in folgender Situation:

    Code
    class Foo {
      int [color=red][b]x[/b][/color];
    
    
      public Foo(int [color=blue][b]x[/b][/color]) {
        [color=blue][b]x[/b][/color] = [color=blue][b]x[/b][/color]; //tut nichts
        this.[color=red][b]x[/b][/color] = [color=blue][b]x[/b][/color];
      }
    }


    (Durch die Farben deute ich an, welches der beiden x jeweils verwendet wird)

    Der Konstruktor setzt die Objektvariablen x und y, also die x und y, die direkt in der Klasse definiert sind und nicht innerhalb einer Methode. (Wenn dich das verwirrt: verständlich. Das Programm benutzt einige Konzepte, die Programmieranfänger eig noch nicht kennen/verstehen können)

    2. Bei der Bildschirmausgabe fehlt ein Leerzeichen nach "Addition" ;)

    3. Wenn deine Klasse "GrundRechenArtenA" heißt, muss sie auch in der main-Methode so bezeichnet werden, also "GrundRechenArtenA ob1= new GrundRechenArtenA(3,7);"

    4. ob1 ist ein Objekt der Klasse GrundRechenArtenA mit x=3 und y=7. "ob1.dividieren (ob1.x, ob1.y);" heißt "Rufe die dividieren-Methode von ob1 mit dem x von ob1 und dem y von ob1 als Parametern auf"
    "ob1.dividieren (1,3)" würde auch funktionieren, entspricht aber nicht der Angabe.


    Ich hoffe, das beantwortet mehr Fragen als es aufwirft :)

    Hat ja eher weniger mit Programmieren zu tun..

    Induktionsanfang: d=1
    f(a,u,d) = (1*(2a+(1-1)u))/2 (ich nehme an, die fehlende Klammer gehoert so gesetzt)
    a = 2a/2
    a = a

    Spezialfall d=2:
    f(a,u,d) = 2(2a+(2-1)u)/2
    2a+u = 2a+u

    Induktionsschritt: d > 2
    f(a,u,d) = d(2a+(d-1)u)/2
    f(a,u,d-2) + 2a+2du-3u = da + d(d-1)u/2
    (d-2)(2a+(d-3)u)/2 + 2a + 2du - 3u = da + d(d-1)u/2
    da + d(d-3)u/2 - (2a + (d-3)u) + 2a + 2du - 3u = da + d(d-1)u/2
    (d^2)u/2 - 3du/2 - 2a - du + 3u + 2a + 2du - 3u = (d^2)u/2 - du/2
    [strike](d^2)u/2[/strike] - 3du/2 [strike]- 2a[/strike] - du [strike]+ 3u[/strike] [strike]+ 2a[/strike] + 2du [strike]- 3u[/strike] = [strike](d^2)u/2[/strike] - du/2
    -3du/2 - du + 2du = -du/2
    -du/2 = -du/2

    q.e.d. :)

    Wie detailliert willst dus denn? ^^

    Wenn man fuehrende Nullen im Ergebnis vermeiden will, muesste man bei der Initialisierung von m noch aufpassen