Hochschule Hausaufgabe :S



  • Hallo Leute,

    ich bin zur Zeit auf der Hochschule in Heilbronn,
    und wir haben als Hausaufgabe eine PDF Datei bekommen die wir bis nächste Woche Freitag machen sollen.

    Jedoch hatten wir bis jetzt nichts darüber und ich kapiere nicht wirklich was von mir verlangt wird.

    Könnt ihr mir da vielleicht ein wenig helfen? Eventuell denn Anfang machen das ich mich dann darein arbeiten kann? Ich wäre euch da sehr dankbar dafür.

    Liebe Grüße

    Darkx1e

    Testaufgabe:

    Starten Sie mit einem leeren Win32 Konsolen Projekt VectorArithmetik.
    (1) Erstellen Sie eine Klasse Pair, die aus den beiden Attributen
    float x; float y;

    besteht. Realisieren Sie zum Zugriff auf die Klasse die beiden Methoden
    void Set(float x, float y);
    void Get(float & x, float & y);

    Die Klasse Pair erhält nun einen zweiparametrigen Konstruktor, mit dessen Argumenten die Attribute initialisiert werden. Vermeiden Sie beim Kodieren des Konstruktors redundanten Code! Ein Default-Konstruktor wird nicht auskodiert.

    (2) Erstellen sie eine Klasse Vector, die von der Klasse Pair abgeleitet ist. Für diese Klasse sind die Operatoren „+“ und „-“ als Methoden der Klasse zu überladen.

    Überlegen Sie dazu, auf welche Art Sie das/die Argument(e) übergeben und von welchem Typ der Rückgabewert sinnvoll gewählt wird.

    Auch die Klasse Vector erhält als einzigen einen zweiparametrigen Konstruktor mit x- und y-
    Wert an der Schnittstelle.

    Zur Ausgabe auf dem Bildschirm soll eine Methode
    void Print();

    geschrieben werden, die unter Verwendung des C++ Streamkonzepts die Koordinaten des Vektors in der Form
    (3.432|7.516)

    ausgibt. Dabei soll der float Wert auf 3 Stellen hinter dem Komma begrenzt werde.

    (3) Nun ist eine Klasse VectorField zu implementieren, die ein Feld von Zeigern auf Elemente
    der Klasse Vector in ihrem Attributbereich pflegt.

    Der Default-Konstruktor ist so zu überschreiben, dass das Zeigerfeld sinnvoll initialisiert
    wird.
    Im Destruktor soll die manuelle Garbage Collection ablaufen.

    Es ist eine Methode
    bool Add(Vector & obj); zu implementieren, mit der ein Vektor ins Zeigerfeld eingehängt werden kann.

    Dabei ist darauf zu achten, dass das Argument kopiert werden muss, da nicht sichergestellt werden kann, dass das als Parameter übergebene Objekt für die gesamte Lebenszeit des Zeigerfeldes gültig bleibt.

    Es eine Methode
    void Print();
    zu schreiben, die alle im Feld vorhandenen Vektoren unter Verwendung der Print-Methode des Vector Objekts auf dem Bildschirm ausgibt.

    (4) Damit der Objekttyp Vektor im Streamingmechanismus von C++ verwendet werden kann, ist der Streaming Operator << zu überladen: std::ostream & operator << (std::ostream & o);

    Da der Streaming operator << kaskadierbar ist, wird dabei als Argument der Methode ein
    allgemeiner Ausgabestream std::ostream übergeben, auf den innerhalb der Methode
    ausgegeben wird (anstelle wie gewohnt nach std::cout!). Dieser Stream wird mit Verlassen der Methode wieder durch ein return zurückgegeben.

    (5) In der Klasse VectorField soll schließlich eine Methode
    void PrintSum();

    implementiert werden, die mit Hilfe der überladenen Operatoren der Klasse Vector die Summe aller Vektoren des Zeigerfeldes berechnet und diese auf dem Bildschirm ausgibt.

    Das sollen wir machen, nur hab ich leider keine Ahnung was genau von mir verlangt wird, ich hab noch eine Sitzung morgen und werde den Lehrer darauf ansprechen, aber wäre echt eine super Hilfe wenn ihr mir da auch ein wenig Helfen könntet.





  • Hallo nochmal,

    tut mir leid das wusste ich nicht 😞
    aber von Hausaufgabe machen war ja auch nicht die Rede nur ob mir jemand sagen kann was genau verlangt wird oder irgendwie mir den Anfang erklären dann schaff ich das schon irgendwie alleine :S

    Trotzdem danke schön


  • Mod

    Du musst doch irgendeine Art von Ansatz haben. Mach mal zunächst dies:

    Erstellen Sie eine Klasse Pair, die aus den beiden Attributen
    float x; float y;

    besteht.

    Das schaffst du ohne Hilfe, oder?



  • SeppJ schrieb:

    Du musst doch irgendeine Art von Ansatz haben. Mach mal zunächst dies:

    class pair
    {
    public:
    float x;
    float y;
    };
    


  • Held der Hausaufgaben schrieb:

    class pair
    {
    public:
    float x;
    float y;
    };

    pair

    rofl, ich sollte erst denken und dann schreiben. 😃 👍


  • Mod

    Held der Hausaufgaben schrieb:

    SeppJ schrieb:

    Du musst doch irgendeine Art von Ansatz haben. Mach mal zunächst dies:

    class pair
    {
    public:
    float x;
    float y;
    };
    

    Nicht du warst gefragt, sondern der Threadersteller.



  • Solltest du die gestellten Aufgabe, alleine oder zusammen mit Kommilitonen, wirklich nicht Ansatzweise hinbekommen, solltest du schleunigst

    (a) Kommilitonen wechseln,
    (b) in der Bibo verschwinden und ein C++ Buch studieren,
    (c) ernsthaft über eine Studiengnagwechsel nachdenken.

    Ernsthaft!



  • SeppJ schrieb:

    Nicht du warst gefragt, sondern der Threadersteller.

    Heißt das ich darf keine Lösungen zu den Aufaben posten? 😞


  • Mod

    Held der Hausaufgaben schrieb:

    SeppJ schrieb:

    Nicht du warst gefragt, sondern der Threadersteller.

    Heißt das ich darf keine Lösungen zu den Aufaben posten? 😞

    Doch klar. Aber war es wirklich heldenhaft, diesen Dreizeiler vorzuführen?



  • Der Held der Hausaufgaben versucht zu Helfen wo er kann. 👍

    Wobei wenn ich recht überlege besteht ehr die Gefahr das der Thread Ersteller die Lösungen einfach kopiert und sich danach nicht mehr weiter damit befasst (zumal er bisher wirklich NULL eigeninitiative gezeigt hat), und dadurch gar nichts lernt und durch die Prüfung fällt.

    Ich glaub mein Beitrag hat er geschädigt also zu Helfen, das wahr wohl keine Heldentat. 😞 👎



  • Held der Hausaufgaben schrieb:

    Ich glaub mein Beitrag hat er geschädigt also zu Helfen, das wahr wohl keine Heldentat. 😞 👎

    Das ist doof...:(

    Trotzdem bist Du der Held meiner Kindheit! 🙂

    SeppJ schrieb:

    Doch klar. Aber war es wirklich heldenhaft, diesen Dreizeiler vorzuführen?

    Ketzer! :p



  • Darkx1e schrieb:

    Jedoch hatten wir bis jetzt nichts darüber

    Nicht? Was wurde denn stattdessen bisher so vermittelt?



  • Also ich will mal kurz was klar stellen,
    klar haben wir vieles gelernt in der Schule nur bin ich nicht so wie manche von euch hier in Deutschland geboren sondern kam erst mit 10 Jahren nach Deutschland.

    Das ich manches nicht so schnell kapiere tut mir leid, ich versuch auch was zulernen, ich denke es macht mir selber auch kein Spaß mit Wörtern umzugehen die ich ansatzweise gerade mal verstehe, das tut mir sehr leid.

    Ich bedanke mich auch bei denn Leuten, die mir wirklich einen kleinen Tipp geben, ich werde das schon alleine schaffen, ich dachte nur vielleicht ist einer so Nett und versucht mir das näher zu erklären, weil ich wie geschrieben habe, nicht kapiert hab um was es genau geht.

    Trotzdem vielen dank, ich mach das schon alleine.



  • Mich würde es auch Interessieren wie man

    Klasse Vector von der Klasse Pair ableitet einer vielleicht eine idee?



  • XeroXx schrieb:

    Mich würde es auch Interessieren wie man

    Klasse Vector von der Klasse Pair ableitet einer vielleicht eine idee?

    Vorsicht: hier handelt es sich um einen mathematischen Vector, nicht um eine Nachprogrammierung des std::vector.

    class Pair
    {
      public:
        Pair(float x_, float y_);
        virtual ~Pair();
    
        void Set(float x, float y);
        void Get(float & x, float & y); 
    
      private:
        float x;
        float y;
    }
    
    class Vector : public Pair
    {
      public:
        Vector(float x_, float y_);
    
        Vector operator+(const Vector& vec) const;  
        Vector operator-(const Vector& vec) const:
    
        void Print();
    }
    

    So würde ich das Klassendesign anhand der Aufgabenstellung vornehmen. Dass diese an verschiedenen Stellen Schwächen aufweist (fehlende const-correctness bspw.), ist nicht meine Schuld.



  • Darkx1e schrieb:

    Also ich will mal kurz was klar stellen,
    klar haben wir vieles gelernt in der Schule nur bin ich nicht so wie manche von euch hier in Deutschland geboren sondern kam erst mit 10 Jahren nach Deutschland.

    Das ich manches nicht so schnell kapiere tut mir leid, ich versuch auch was zulernen, ich denke es macht mir selber auch kein Spaß mit Wörtern umzugehen die ich ansatzweise gerade mal verstehe, das tut mir sehr leid.

    Ich bedanke mich auch bei denn Leuten, die mir wirklich einen kleinen Tipp geben, ich werde das schon alleine schaffen, ich dachte nur vielleicht ist einer so Nett und versucht mir das näher zu erklären, weil ich wie geschrieben habe, nicht kapiert hab um was es genau geht.

    Trotzdem vielen dank, ich mach das schon alleine.

    Was hat das damit zu tun wo man geboren ist?

    Wenn es heisst; erstellen sie eine Klasse pair, mit Angabe der Member, dann hat das nicht viel mit kapieren zu tun. Wenn man das nich hinbekommet weiss man einfach nicht was ne Klasse ist oder man hat keine Lust.
    Wenn du keine Lust hast dann ist alles klar, kein Problem. Ich frage mich nur wieso du nicht weisst was ne Klasse ist wenn du doch offensichtklich nen Programmierkurs besucht. "Haben wir nicht gehabt" kann nich sein, das brauchst du garnicht erst brinegn. Offensichtlich hast du nich aufgepasst , warst nicht da oder sonstwas - ergo keine Lust.

    Wenn du keine Interesse mitbringst, sprich mal was anfangen, rum probieren und was zeigen, dann wirst du nicht viel Hilfe bekommen. Sowas will keiner, niemand lässt sich gerne ausnutzen und will die Arbeit für andere machen.

    Zeigst du Interesse ist das ganz was anderes. Es ist ne dankbare Aufgabe jemanden zu Helfen der was lernen will. Von daher sollst du das auch nicht alleine machen, du sollst nur WAS machen ... einfach ma die Rübe bemühen und nich schon gleich vornweg aufgeben, immerhin kann man heutzutage alles ergoogln.



  • @ daddy_felix : Ahh okeii verstehe danke dir 🙂 im grunde ist das ja nicht viel anders wie mit vererbung von klassen



  • XeroXx schrieb:

    @ daddy_felix : Ahh okeii verstehe danke dir 🙂 im grunde ist das ja nicht viel anders wie mit vererbung von klassen

    wieso sollte das anders sein? das *ist* Vererbung von Klassen.

    Ich habe da einfach der Reihe nach abgeschrieben, was in der Aufgabenstellung steht. Ich hoffe, dir ist klar, dass man (du) das auch noch implementieren muss?

    Für Fortgeschrittene: eventuell könnte man die Vererbung auch "private" machen, da so ein Vector eigentlich kein "Pair" ist, sondern eher "als Pair implementiert" ist. Darüber könnte man sicherlich streiten 😉 Es gäbe ja auch die Möglichkeit, den Vector mit Winkel und Länge zu repräsentieren. Meiner Meinung nach muss man dieses Detail nicht unbedingt öffentlich machen.



  • @daddy_felix hmm aus langeweile hab ich mal jetzt die ersten 3 aufgaben gelöst aber was bitte schön versteht man unter " Objekttyp Vektor im Streamingmechanismus von C++ verwendet werden kann, ist der Streaming Operator << zu überladen "

    vielleicht einer eine idee? dann hätte ich die ganze Aufgaben 😃


Anmelden zum Antworten