1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Hilfe Hilfe Hilfe

  • moKe
  • 20. Januar 2007 um 18:08
  • Unerledigt
  • moKe
    2
    moKe
    Mitglied
    Punkte
    40
    Beiträge
    7
    • 20. Januar 2007 um 18:08
    • #1

    :wein:Brauche dringend Hilfe bei EProg (HU). Habe bis jetzt einiger maßen mithalten können, aber die letzten aufgaben kriege ich nicht hin. Brauche unbedingt aber ein "+" bzw eine aufgabe um EProg zu Schafen. Falls also jemand etwas für mich hätte währe ich ihm sehr dankbar.:wein:

    http://www.pri.univie.ac.at/~itep/ws0607/hue/hue10.html


    mfg moKe

    danke schon im vorraus :engel:

    Sto vise cekas na srecu, bolja je.
    :ahhh:

  • gelbasack
    25
    gelbasack
    Mitglied
    Reaktionen
    90
    Punkte
    6.525
    Beiträge
    1.241
    • 20. Januar 2007 um 18:11
    • #2

    Was hast du selbst schon gemacht? Wo hängst du? Oder willst du einfach nur eine Komplettlösung, weil du zu faul bist?

  • moKe
    2
    moKe
    Mitglied
    Punkte
    40
    Beiträge
    7
    • 20. Januar 2007 um 18:19
    • #3

    ich wollte eigentlich das 2 Beispiel machen, (Beispiel 6 aus Vorwoche erweitern, da ich das schon gemacht habe) aber check nichts !!!!! :confused:

    Sto vise cekas na srecu, bolja je.
    :ahhh:

  • moKe
    2
    moKe
    Mitglied
    Punkte
    40
    Beiträge
    7
    • 20. Januar 2007 um 18:45
    • #4

    Aber falls jemand ein gelöstes Beispiel für mich hat, das währe kein Problem ! :grinning_squinting_face:

    Sto vise cekas na srecu, bolja je.
    :ahhh:

  • Korrupt
    8
    Korrupt
    Mitglied
    Punkte
    605
    Beiträge
    110
    • 20. Januar 2007 um 18:52
    • #5

    i hab grad nachgschaut, leider ham wir damals keine übung nr. 10 ghabt.
    du hast das listenbeispiel aus der vorwoche funktionsfähig implementiert? wenn ja, dann sollte ja diese kleine erweiterung kein problem sein. bzw stell konkrete fragen, wo du probleme hast. kein mensch wird sich 5 seiten source anschauen und sich da reindenken!
    bzw finde ich, dass bsp 7 (zug bsp) auch nicht so schwer ist.

    *** Ich würde gern die Welt verändern, aber Gott gibt mir den Quelltext nicht ***

  • moKe
    2
    moKe
    Mitglied
    Punkte
    40
    Beiträge
    7
    • 20. Januar 2007 um 19:03
    • #6

    Das Problem ist das ich nicht weiß wie ich jetzt statt der "normalen" Zeiger (jeweils nur ein Element) das neue einfügen kann, soll !!!
    Und wenn man unter zeit und Prüfung Druck steht dann ist es noch schlimmer :shinner:

    Sto vise cekas na srecu, bolja je.
    :ahhh:

  • sauzachn
    17
    sauzachn
    Mitglied
    Reaktionen
    51
    Punkte
    3.101
    Beiträge
    606
    • 20. Januar 2007 um 23:16
    • #7

    1. Sourcecode in DOC-Dateien hergeben ist böse. Abgesehen, dass das fast schon einen negativen Geek-Faktor hat, muss man es erst mal rauskopieren, um es compilieren zu können.

    2. Ich zitiere aus dem Source: //"eigentlich ist ein struct eine Klasse mit nur oeffentlichen members"
    Stimmt nicht. Nur der _Defaultzugriff_ ist public. Du kannst sehr wohl z.b. auch "private: int i;" reinschreiben.

    3. ad 10.2: Ausgabe ist trivial. Eingabe: Einen Miniparser schreiben: Auf [ matchen. Dann Zahl als String einlesen, bis ',' erreicht wird. Zahl in Integer umwandeln und an die Liste anhängen. Weiter, bis ] erreicht ist. Und natürlich dazwischen immer auf ungültige Zeichen checken.

    Dipper dipper dii dipper dii dipper dii duuu

  • Vevusio
    6
    Vevusio
    Mitglied
    Reaktionen
    1
    Punkte
    371
    Beiträge
    71
    • 21. Januar 2007 um 14:17
    • #8

    ich bin mir jetzt nicht sicher ob es in c++ auch so ist aber eine struct kann zudem auch keinen default konstruktor sondern nur parametrisierte konstruktoren haben

    [FONT=Arial, Helvetica, sans-serif](\__/) [/FONT]
    [FONT=Arial, Helvetica, sans-serif] (='.'=) [/FONT]This is Bunny. Copy Bunny into your signature to help
    [FONT=Arial, Helvetica, sans-serif](")_(")[/FONT] him on his way to world domination.

  • sauzachn
    17
    sauzachn
    Mitglied
    Reaktionen
    51
    Punkte
    3.101
    Beiträge
    606
    • 21. Januar 2007 um 15:32
    • #9
    Zitat von Vevusio

    ich bin mir jetzt nicht sicher ob es in c++ auch so ist aber eine struct kann zudem auch keinen default konstruktor sondern nur parametrisierte konstruktoren haben


    Doch, eine struct und eine class sind in C++ exakt dasselbe, bis auf den Unterschied mit dem Defaultzugriff.

    Das Beispiel

    Code
    struct Test {
     Test() { }
    };


    compiliert anstandslos (auch wenn das kein formaler Beweis ist).

    Dipper dipper dii dipper dii dipper dii duuu

  • Vevusio
    6
    Vevusio
    Mitglied
    Reaktionen
    1
    Punkte
    371
    Beiträge
    71
    • 21. Januar 2007 um 16:00
    • #10

    hm... ich hab mir das grad so überlegt, man sollte ja keine pointer verwenden sondern referenzen, aber lässt sich das überhaupt mit referenzen lösen?

    node muss ja ein next haben, wenn next vom typ Node& ist dann muss ich im default konstruktor von Node next einen wert geben

    referenzen können in c++ nicht NULL sein, also muss ich ein new Node() darauf erstellen, das new Node muss wieder nen next haben etc etc, endlos rekursiver konstruktor

    hab ich da nen denkfehler drin oder lässt sich ne linked list in c++ halt nur über pointer realisieren

    [FONT=Arial, Helvetica, sans-serif](\__/) [/FONT]
    [FONT=Arial, Helvetica, sans-serif] (='.'=) [/FONT]This is Bunny. Copy Bunny into your signature to help
    [FONT=Arial, Helvetica, sans-serif](")_(")[/FONT] him on his way to world domination.

  • moKe
    2
    moKe
    Mitglied
    Punkte
    40
    Beiträge
    7
    • 21. Januar 2007 um 21:40
    • #11

    Ich komme einfach nicht weiter, hat jemand eine fertige Aufgabe für mich bitte bitte bitte ich Brauchs dringend !!!!! :wein: :wein: :wein:

    Sto vise cekas na srecu, bolja je.
    :ahhh:

  • Vevusio
    6
    Vevusio
    Mitglied
    Reaktionen
    1
    Punkte
    371
    Beiträge
    71
    • 21. Januar 2007 um 22:43
    • #12

    hm ja gut ich werd dir irgend eine von denen da lösen heute nacht

    muss aber erstmal pc spielen danach mach ich schnell eine :)

    [FONT=Arial, Helvetica, sans-serif](\__/) [/FONT]
    [FONT=Arial, Helvetica, sans-serif] (='.'=) [/FONT]This is Bunny. Copy Bunny into your signature to help
    [FONT=Arial, Helvetica, sans-serif](")_(")[/FONT] him on his way to world domination.

  • gelbasack
    25
    gelbasack
    Mitglied
    Reaktionen
    90
    Punkte
    6.525
    Beiträge
    1.241
    • 21. Januar 2007 um 23:49
    • #13
    Zitat von moKe

    Ich komme einfach nicht weiter, hat jemand eine fertige Aufgabe für mich bitte bitte bitte ich Brauchs dringend !!!!! :wein: :wein: :wein:


    Ich hab' ein Zeugnis, soll ich dir's vielleicht durchfaxen, dann hast es sofort! Oder soll ich's lieber gleich auf die Uni tragen zum Einreichen? Naja, schreib' einfach, wie's dir lieber ist!

  • moKe
    2
    moKe
    Mitglied
    Punkte
    40
    Beiträge
    7
    • 22. Januar 2007 um 00:08
    • #14

    Ich habe lediglich um Hilfe Gebete. Es ist halt scheiße wen man alles bis jetzt geschafft hat aber dann wegen nur einer nichtgemachter Aufgabe eine negative Benotung kriegt

    Sto vise cekas na srecu, bolja je.
    :ahhh:

  • moKe
    2
    moKe
    Mitglied
    Punkte
    40
    Beiträge
    7
    • 22. Januar 2007 um 00:09
    • #15

    #gebbittet#

    sorry

    Sto vise cekas na srecu, bolja je.
    :ahhh:

  • Paulchen
    1
    Paulchen
    Gast
    • 22. Januar 2007 um 00:13
    • #16
    Zitat von moKe

    #gebbittet#

    Das heißt "gebeten", und es gibt auch einen Editknopf.

    Außerdem sind wir hier keine Fabrik für Lösungen zu Hausaufgaben.

  • Vevusio
    6
    Vevusio
    Mitglied
    Reaktionen
    1
    Punkte
    371
    Beiträge
    71
    • 22. Januar 2007 um 01:53
    • #17
    Code
    Schreiben Sie eine Klasse (mit Konstruktor, Destruktor, Kopierkonstruktor, Zuweisungsoperator), die zu jedem Zeitpunkt „weiß“, wieviele Instanzen dieser Klasse gerade existieren. Diese Information soll über eine Methode [FONT=Courier new] anzahlInstanzen() [/FONT] dieser Klasse (Rückgabetyp [FONT=Courier new] unsigned int[/FONT]) abfragbar sein.
      Schreiben Sie ein Hauptprogramm zum gründlichen Testen der Klasse und lösen Sie folgende Teilaufgaben:[LIST]
    [*] Implementierung der Klasse wie oben beschrieben
    [*] Überladen Sie den Operator +, so daß Additionen zwischen Klassenobjekten und die Addition eines Integers (von links und von rechts) zu einem Klassenobjekt möglich sind. D.h. folgendes Hauptprogramm soll fehlerlos kompilieren (Das Ergebnis des Operators + soll wieder ein Objekt der Klasse sein. Der Wert des Resultats ist aber unerheblich). void main() 
    {
      Klasse x,y;
      int i;
    
      x+y,(i=Klasse::anzahlInstanzen());
      cout<<i<<",";
    
    
      x+y;
      i=Klasse::anzahlInstanzen();
      cout<<i<<endl;
    }
    [*] Lassen Sie das gegebene Programmstück laufen. Vergleichen Sie die Ausgaben der Version der Klasse mit Kopierkonstruktor und einer Version ohne Kopierkonstruktor. Interpretieren Sie die Ergebnisse.[/LIST]
    Alles anzeigen


    Lösung:

    C
    //IntWrapper.h
    #ifndef INTWRAPPER_H
    #define INTWRAPPER_H
    
    
    #include "IntWrapperCount.h"
    
    
    namespace IntWrapper
    {
        class IntWrapper
        {
            //Attributes
        private:
            int content;
            static IntWrapperCount intWrapperCount;
            //Constructors & Destructors
        public:
            IntWrapper():
                content(0) { intWrapperCount.IncreaseWrapperCount(); }
            IntWrapper(const IntWrapper &aIntWrapper):
                content(aIntWrapper.GetContent()) { intWrapperCount.IncreaseWrapperCount(); }
            IntWrapper(int aInt):
                content(aInt) { intWrapperCount.IncreaseWrapperCount(); }
                ~IntWrapper() { intWrapperCount.DecreaseWrapperCount(); }
            //Methods
            inline int GetContent() const { return content; }
            inline void SetContent(int aContent) { content = aContent; }
            static inline unsigned int GetIntWrapperCount() { return intWrapperCount.GetWrapperCount(); }
            //Operators
            inline IntWrapper& operator=(const IntWrapper &aIntWrapper)
            {
                content = aIntWrapper.GetContent(); 
                return *this;
            }
            inline IntWrapper& operator=(const int &aInteger)
            {
                content = aInteger;
                return *this;
            }
            inline IntWrapper& operator+=(const IntWrapper &aIntWrapper)
            {
                content += aIntWrapper.GetContent();
                return *this;
            }
            inline IntWrapper& operator+=(const int &aInteger)
            {
                content += aInteger;
                return *this;
            }
            const IntWrapper operator+(const IntWrapper &aIntWrapper) const
            {
                return IntWrapper(*this) += aIntWrapper;
            }
            const IntWrapper operator+(const int &aInteger) const
            {
                return IntWrapper(*this) += aInteger;
            }
            //Implementations
        };
    }
    
    
    #endif
    Alles anzeigen
    Code
    //IntWrapperCount.h
    #ifndef INTWRAPPERCOUNT_H
    #define INTWRAPPERCOUNT_H
    
    
    namespace IntWrapper
    {
        class IntWrapperCount
        {
            //Attributes
        private:
            unsigned int wrapperCount;
            //Constructors & Destructors
        public:
            IntWrapperCount():
                wrapperCount(0) {}
            //Methods
        public:
            inline unsigned int GetWrapperCount() const { return wrapperCount; }
            inline void IncreaseWrapperCount() { wrapperCount++; }
            inline void DecreaseWrapperCount() { if(wrapperCount > 0) wrapperCount--; }
            //Implementations
        };
    }
    
    
    #endif
    Alles anzeigen


    main, halt die die vorgegeben war

    C
    //main.cpp
    #include <iostream>
    #include "IntWrapper.h"
    
    
    using namespace std;
    
    
    IntWrapper::IntWrapperCount IntWrapper::IntWrapper::intWrapperCount;
    
    
    void main() 
    {
        IntWrapper::IntWrapper x,y;
        int i;
    
        x+y,(i=IntWrapper::IntWrapper::GetIntWrapperCount());
        cout<<i<<",";
    
    
        x+y;
        i=IntWrapper::IntWrapper::GetIntWrapperCount();
        cout<<i<<endl;
    }
    Alles anzeigen


    ergebnis mit copy constrkutor 3, 2
    interpretation: najaa also dieser , operator... (ist es überhaupt ein operator) bewirkt halt dass x + y ausgeführt wird, dabei wird ein neues IntWrapper objekt erstellt, noch bevor es aber wieder gelöscht wird, wird i initialisiert, dahier ist i zuerst 3

    beim zweiten mal wird einfach x+y; in einem schritt ausgeführt, neues objekt wird erstellt und gleich wieder verworden, dann wird i initialisiert, dahier ist i = 2

    wenn man den copy construktor wegkommentiert kommt 1, 0 raus, sieht so aus als würde es also einen default copy constructor geben der einfach nichts macht (also auch nicht den count inkrementiert)

    ich hätte eigentlich erwartet dass bei der ersten ausgabe eine 2 kommt, nach den beiden durch , getrennten operationen der count 1 ist und nach dem x + y; auf 0 fällt also dass die ausgabe 2, 0 ist

    ich weiß ehrlich gesagt nicht wieso es 1, 0 ist.. wäre nett wenn das jemand erklären könnte


    ich wollte zuerst eigentlich die linked list machen aber wie gesagt, ich weiß nicht wie das mit referenzen only gehen sollte (und mit pointern hatte ich keine lust, wollt was neues probieren weil ich vorher in c++ noch nie referenzen verwendet habe so richtig) wegen diesem next pointer, also, aus meinem 2t-vorherigen post

    Zitat


    hm... ich hab mir das grad so überlegt, man sollte ja keine pointer verwenden sondern referenzen, aber lässt sich das überhaupt mit referenzen lösen?

    node muss ja ein next haben, wenn next vom typ Node& ist dann muss ich im default konstruktor von Node next einen wert geben

    referenzen können in c++ nicht NULL sein, also muss ich ein new Node() darauf erstellen, das new Node muss wieder nen next haben etc etc, endlos rekursiver konstruktor

    hab ich da nen denkfehler drin oder lässt sich ne linked list in c++ halt nur über pointer realisieren


    wäre auch nett wenn jemand dazu auch was sagen könnte

    [FONT=Arial, Helvetica, sans-serif](\__/) [/FONT]
    [FONT=Arial, Helvetica, sans-serif] (='.'=) [/FONT]This is Bunny. Copy Bunny into your signature to help
    [FONT=Arial, Helvetica, sans-serif](")_(")[/FONT] him on his way to world domination.

  • querstrom
    7
    querstrom
    Mitglied
    Punkte
    475
    Beiträge
    76
    • 26. Januar 2007 um 10:39
    • #18
    Zitat von Vevusio


    wäre auch nett wenn jemand dazu auch was sagen könnte

    Dein kameradschaftlicher Einsatz ist phänomenal. Allerdings hält sich dadurch der Lernwert unseres Kollegen in Grenzen. Außer das massives Sudern erfolgversprechend ist. Denn er hat meines Erachtens ein geringes Mass an Eigenständigkeit und Selber-Nachdenken bewiesen und das ist das Minimum was ein Student und künftiger Absolvent leisten sollte.

    my2c
    q

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung