rofflo ist zur Einsicht gekommen und will jetzt Hilfe statt ner Lösung ;D
Geizhals » Forum » Programmierung » rofflo ist zur Einsicht gekommen und will jetzt Hilfe statt ner Lösung ;D (155 Beiträge, 1166 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
rofflo ist zur Einsicht gekommen und will jetzt Hilfe statt ner Lösung ;D
16.12.2005, 21:58:56
Gleich vorweg, sry fürn 2.Post, aber der alte ist schon zu sehr zugespammt |-D
Da ja niemand einem armen TU-Studenten im 1.Semester helfen wollte :´(|-D, mir der Tipp gegeben wurde, dass Alkohol eh nur mein Gehirn schädigt (is ja furchtbar, warum sagt ihr mir das erst jetzt B-)), mein Freund (der ""Nichtgeek"") jetzt zockt und ich eh keine Lust mehr hab wegzugehn, hab ich beschlossen meine heutige "Programmier-Zeit" von knapp 6Stunden eines "~3Min." Beispiels noch zu erhöhen und es nochmal zu probiern. Allein schaff ich es allerdings nicht, also poste ich mal hier die ganze Angabe und was ich schon gemacht hab.

Erstellen Sie die Klasse SimpleVektor (SimpleVektor.java) mit allen in "SimpleVektor.html" angegebenen öffentlichen Methoden und Konstruktoren. Es sollen keine weiteren Members sichtbar sein.
Eine Grundstruktur der Klasse wird bereits mitgeliefert.

Vektoren werden (in diesen Beispielen) durch ihre Komponenten definiert. Der Einfachheit halber sei die Anzahl der Komponenten (= Dimensionen = Ordnung des Vektors) auf 3 festgelegt.

Schreiben Sie weiters ein Testprogramm (Main.java), welches zwei Vektoren einliest, addiert und das Ergebnis sowie den Betrag des Ergebnisvektors ausgibt.


Ok, beschaffen wir uns bitte zuerst nur mit der Datei "SimpleVektor.java", das Testprogramm kann noch warten. Ein Grundgerüst wurde schon mitgelifert, was ich auch schon versucht habe weiterzuprogrammieren, schaut so aus...


import java.util.*;
import eprog.*;

/**
* Repräsentiert einen Vektor (in Komponentendarstellung) im mathematischen Sinn.
* Besteht aus 3 Komponenten, die jeweils aus einem
double
-Wert
* bestehen. Die Komponenten werden im Gegensatz zu Arrays von 1 bis n
* durchnummeriert, nicht von 0 bis n-1.
* Das Format bei der Darstellung als String sieht folgendermaßen aus:


* ( a1 a2 a3 )


* Hierbei sind a1 bis a3 beliebige double-Werte. Beachten Sie, dass die Werte
* untereinander sowie von Klammern jeweils durch Whitespaces (Leerzeichen,
* Tab...) zu trennen sind. WELCHE Whitespaces Sie dabei verwenden, bleibt Ihnen
* überlassen. Dies hat keinen Einfluss auf die Bewertung.

* Beispiel: ( 3.14 17.6 -5.9 )
*/

public class SimpleVektor {
    
    private double a1,a2,a3;
    /**
    * Konstruktor, den Vektor mit den 3 übergebenen double-Werten initialisiert.
    */
    public SimpleVektor (double a1, double a2, double a3) {
        this.a1 = a1;
        this.a2 = a2;
        this.a3 = a3;
    }

    /**
     * Konstruktor, der einen Vektor erstellt und alle Komponenten mit 0
     * initialisiert.
     */
    public SimpleVektor () {
        SimpleVektor vekt  = new SimpleVektor(0.0,0.0,0.0);
    }
    
    /**
     * Liefert die Vektorkomponente an der Position index. Wirft eine
     * Exception, wenn der Index kleiner als 1 oder größer als 3 ist.
     */
    public double get (int index) throws Exception {
    }
    
    /**
     * Setzt die Komponente an der Position index auf den Wert
     * wert. Wirft eine Exception, wenn der Index kleiner als 1 oder
     * größer als 3 ist.
     */
    public void set (int index, double wert) throws Exception {
        
    
    }

    /**
     * Liefert eine String-Repräsentation des Vektors im eingangs beschriebenen
     * Format.
     */
    public String toString () {
        return "( " + a1 + " " + a2 + " " + a3 + " )";
    }

/**
* Liefert den Betrag des Vektors. Der Betrag |v| eines Vektors
*

 ( a1 a2 a3 ) 
sei definiert durch:

*
|v| = sqrt ( a1² + a2² + a3² )


* Dabei steht
sqrt
für Englisch square root, was
* Quadratwurzel bedeutet. Die Methode
sqrt
wird in Java
* vom Paket
java.lang.Math
zur Verfügung gestellt.
*/
public double betrag () {
    return Math.sqrt((a1*a1)+(a2*a2)+(a3*a3));
}

/**
* Addiert den Vektor b zum Vektor und liefert das Ergebnis. Zwei
* Vektoren werden addiert, indem die entsprechenden Komponenten addiert
* werden:

*
a + b = ( a1 a2 a3 ) + ( b1 b2 b3 ) = ( a1+b1  a2+b2  a3+b3 )


*/
    public SimpleVektor add (SimpleVektor b) {
        
        return b;  
    }

}


Was ich noch nicht ausgefüllt hab, weiß ich eben nicht, was schon ausgefüllt ist, kann natürlich auch falsch sein.
Also bitte um Hilfe, thx :-)

16.12.2005, 21:59 Uhr - Editiert von rofflo, alte Version: hier
Antworten PM Übersicht Chronologisch
 
Melden nicht möglich
................
Re(16): rofflo ist zur Einsicht gekommen und will jetzt Hilfe statt ner Lösung ;D
16.12.2005, 23:22:52
Hmm.. brauch ich die Zeile denn nicht erst dann im Test-Programm, also in der Main.java? Weil ich brauch das Array ja auch erst, wenns mit Werten befüllt wird oder?

btw, hier ist der Code wie er derzeit aussieht

public class SimpleVektor {
    
    private double[a];
    
    /**
    * Konstruktor, den Vektor mit den 3 übergebenen double-Werten initialisiert.
    */
    public SimpleVektor (double a1, double a2, double a3) {
        a[0] = a1;
        a[1] = a2;
        a[2] = a3;
    }

    /**
     * Konstruktor, der einen Vektor erstellt und alle Komponenten mit 0
     * initialisiert.
     */
    public SimpleVektor () {
        SimpleVektor vekt = new SimpleVektor(0.0,0.0,0.0);
    }
    
    /**
     * Liefert die Vektorkomponente an der Position index. Wirft eine
     * Exception, wenn der Index kleiner als 1 oder größer als 3 ist.
     */
    public double get (int index) throws Exception {
    }
    
    /**
     * Setzt die Komponente an der Position index auf den Wert
     * wert. Wirft eine Exception, wenn der Index kleiner als 1 oder
     * größer als 3 ist.
     */
    public void set (int index, double wert) throws Exception {
    }

    /**
     * Liefert eine String-Repräsentation des Vektors im eingangs beschriebenen
     * Format.
     */
    public String toString () {
        return "( " + a1 + " " + a2 + " " + a3 + " )";
    }

/**
* Liefert den Betrag des Vektors. Der Betrag |v| eines Vektors
*
 ( a1 a2 a3 ) 
sei definiert durch:

*
|v| = sqrt ( a1² + a2² + a3² )


* Dabei steht
sqrt
für Englisch square root, was
* Quadratwurzel bedeutet. Die Methode
sqrt
wird in Java
* vom Paket
java.lang.Math
zur Verfügung gestellt.
*/
public double betrag () {
    return Math.sqrt((a1*a1)+(a2*a2)+(a3*a3));
}

/**
* Addiert den Vektor b zum Vektor und liefert das Ergebnis. Zwei
* Vektoren werden addiert, indem die entsprechenden Komponenten addiert
* werden:

*
a + b = ( a1 a2 a3 ) + ( b1 b2 b3 ) = ( a1+b1  a2+b2  a3+b3 )


*/
    public SimpleVektor add (SimpleVektor b) {
    }

}


Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
..
Re(2): rofflo ist zur Einsicht gekommen und will jetzt Hilfe statt ner Lösung ;D
17.12.2005, 16:27:15

Ich find auch Willen sollt ma unterstützen, deshalb der ernstgemeinte
Tipp:Wenn du mit sowas schon Probleme hast, dann hast du kein Problem mit JAVA
sondern die Grundprinzipien (Arrays, ifs, Konstruktoren, Objektorientierung)
nicht verstanden.


Ja, ich denk mal da hast du Recht. Aber ok, irgendwie verwundert mich das auch nicht wirklich. Wir hatten in diesem (ersten) Semester genau 7 Stunden (wobei eine Stunde Einführung war, also Java-Einrichtung etc.) - also 6 "reine" Stunden, wo uns versucht wurde im Schnellverfahren die wichtigste Konzepte beizubringen. Ich sag dir mal kurz, was wir durchgenommen haben.

Einstieg in die Programmierung (Hello World), Variablenkonzept, Grundlegende Begriffe, Datentypen, bedingte Verzweigung, Objekte, Schleifen, Arrays, Exceptions, Collections, Static vs. Non-static, Rekursion, Vererbung, Kapselung, Abstraktes, sowie Collections und Packages.


In 6Stunden (genau 6x 50Min.) sollten also diese Dinge gelernt bzw. verstanden werden und für jemanden, der in dieser Materie fast gar keine Erfahrung hat (bzgl. Programmieren grad mal in der Schule ein bisschen Pascal) kann das nur danebengehn. Obwohl mich diese Dinge wirklich interessieren und ich sie verstehen möchte.


Besorg dir _schnellstens_ einen Nachhilfetypen, der dir über die Anfangsschwierigkeiten drüberhilft. Das kann entweder ein Mitstudent sein (die arbeiten auch für 6packs Stiegl...) oder ein Externer (manchen Tutoren soll langweilig sein...). Mit dem machst du 3-4x2h und du wirst sehen, wie viel besser du dich auskennst.

Ja, ich denke, das wird das einzig vernüftige sein - obwohl ich einige Dinge schon verstehe, denk ich mir bei anderen wieder %-)%-)


Wenns komplett schiefgehst stell ich mich hiermit auch als Ansprechpartner wie Somnatic zur Verfügung (JAVA ist meine Welt und wärst net der erste, den ich durch Eprog bring *ggg*).


Vielen Dank, ich möchte hier zwar niemanden mit meinen Problemen volllabbern ;-)|-D, aber das nächste Beispiel ist eh schon zum abholen bereit, Hilfe werd ich also wahrscheinlich eh wieder brauchen. :-)

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung