Einführung in Klassen in C++

Diskutiere Einführung in Klassen in C++ im C/C++ Forum; Hallo, in meinem Studium hab ich das Fach Programmieren. Dort haben wir uns unter anderem mit dem Thema Klassen beschäftigt. Aber die Aufgaben die...

  1. ElMadridano
    ElMadridano Neues Mitglied
    Hallo,
    in meinem Studium hab ich das Fach Programmieren. Dort haben wir uns unter anderem mit dem Thema Klassen beschäftigt. Aber die Aufgaben die mir hingeklatscht worden sind, sind zu groß und zu kompliziert, weshalb ich das Thema Klassen nicht richtig verstehen konnte. Was ich brauche sind Einführungs Aufgaben, wo alles erklärt wird. Mir ist völlig klar das ich selber Gas geben muss, aber ohne vernünftige Einführung ist schwer.

    Zum Beispiel hab ich diese Aufgabe gefunden, welche ich nicht verstehe: "
    Deklarieren und implementieren Sie die Klasse Punkt2DK. Die Klasse Punkt2DK soll folgende Funktionalität erfüllen:
    • Erstellung eines Objekts mit Standardwerten (Koordinaten jeweils Null)
    • Erstellung eines Objekts mit definierten Werten (Koordinaten x und y)
    • Methode zur Ausgabe der Parameter im Format "(x/y)"
    • Methoden zum Auslesen und Setzen der Koordinaten x bzw. y (get-/set-Methoden)
    • Methode zur Berechnung und Rückgabe des Abstands zum Ursprung Berechnung des Abstands zum Ursprung:
    22dxy=+
    • Methode zur Berechnung und Rückgabe des Winkels ϕ zur Abszisse (x-Achse)
    Berechnung des Winkels zur Abszisse über den Radiant:
    arctanyxϕ=*180/π
    Verifizieren Sie die korrekte Funktionalität der Klasse, d.h. aller Konstruktoren und Methoden.
    "

    Und das Programm dazu:

    class Punkt2DK
    {
    private:
    double x,y;
    public:
    Punkt2DK();
    Punkt2DK(double P_x, double P_y);
    void Ausgabe();
    double get_x();
    double get_y();
    void set_xy(double a, double b);
    double Norm();
    double Winkel();
    };
    int main()
    {
    Punkt2DK P1;
    P1.Ausgabe();
    P1.get_x();
    P1.get_y();
    P1.set_xy(5,3);
    P1.Ausgabe();
    cout << "Norm ist " << P1.Norm() <<endl;
    P1.Winkel();
    return 0;
    }
    Punkt2DK:: Punkt2DK()
    {
    x=0;
    y=0;
    }
    Punkt2DK:: Punkt2DK(double P_x, double P_y)
    {
    x = P_x;
    y = P_y;
    }
    void Punkt2DK::Ausgabe()
    {
    cout << "(" << x << "/" << y << ")" <<endl;
    }
    double Punkt2DK::get_x()
    {
    return x;
    }
    double Punkt2DK::get_y()
    {
    return y;
    }
    void Punkt2DK::set_xy(double a, double b)
    {
    x=a;
    y=b;
    }
    double Punkt2DK::Norm()
    {
    double c,e,d;
    c = get_x();
    e = get_y();
    d = sqrt(c*c+e*e);
    return d;
    }
    double Punkt2DK::Winkel()
    {
    double PI,Q;
    PI = 3.141;
    y = get_y();
    x = get_x();
    Q = (atan (y/x))*(180/PI);
    cout << "Der Winkel ist " << Q << "grad" << endl;
    }

    Was in class Punkt2DK{ steht konnte ich ungefähr verstehen, aber was dann im int main steht, ist für mich unschlüssig und die anderen sind wahrscheinlich Funktionen, wo dann die Aufgaben in der Klasse ausgeführt werden.

    Könnt ihr mir diese Aufgabe erklären oder mir Einführungs Aufgaben zeigen oder das einfachste Klassen Programm mit private und Public schreiben und mir erklären, damit ich das verstehe und ich mich dann auch in andere Aufgaben reinarbeiten kann?

    Danke
     
  2. Wenn du jetzt Java lernen möchtest, dann sichere dir hier unseren Java-Videokurs heute zum Sonderpreis (hier klicken!)
  3. VfL_Freak
    VfL_Freak Bekanntes Mitglied
    Moin und Willkommen im Forum,
    so wird das schwierig ;)
    Bitte formatiere Code in Deinen Beiträgen immer mit den Codetags (siehe meine Signatur)!
    VG Klaus
     
  4. ElMadridano
    ElMadridano Neues Mitglied
    Hallo,
    in meinem Studium hab ich das Fach Programmieren. Dort haben wir uns unter anderem mit dem Thema Klassen beschäftigt. Aber die Aufgaben die mir hingeklatscht worden sind, sind zu groß und zu kompliziert, weshalb ich das Thema Klassen nicht richtig verstehen konnte. Was ich brauche sind Einführungs Aufgaben, wo alles erklärt wird. Mir ist völlig klar das ich selber Gas geben muss, aber ohne vernünftige Einführung ist schwer.

    Zum Beispiel hab ich diese Aufgabe gefunden, welche ich nicht verstehe: "
    Deklarieren und implementieren Sie die Klasse Punkt2DK. Die Klasse Punkt2DK soll folgende Funktionalität erfüllen:
    • Erstellung eines Objekts mit Standardwerten (Koordinaten jeweils Null)
    • Erstellung eines Objekts mit definierten Werten (Koordinaten x und y)
    • Methode zur Ausgabe der Parameter im Format "(x/y)"
    • Methoden zum Auslesen und Setzen der Koordinaten x bzw. y (get-/set-Methoden)
    • Methode zur Berechnung und Rückgabe des Abstands zum Ursprung Berechnung des Abstands zum Ursprung:
    22dxy=+
    • Methode zur Berechnung und Rückgabe des Winkels ϕ zur Abszisse (x-Achse)
    Berechnung des Winkels zur Abszisse über den Radiant:
    arctanyxϕ=*180/π
    Verifizieren Sie die korrekte Funktionalität der Klasse, d.h. aller Konstruktoren und Methoden.
    "

    Und das Programm dazu:

    Code (C):
    class Punkt2DK
    {
    private:
    double x,y;
    public:
    Punkt2DK();
    Punkt2DK(double P_x, double P_y);
    void Ausgabe();
    double get_x();
    double get_y();
    void set_xy(double a, double b);
    double Norm();
    double Winkel();
    };
    int main()
    {
    Punkt2DK P1;
    P1.Ausgabe();
    P1.get_x();
    P1.get_y();
    P1.set_xy(5,3);
    P1.Ausgabe();
    cout << "Norm ist " << P1.Norm() <<endl;
    P1.Winkel();
    return 0;
    }
    Punkt2DK:: Punkt2DK()
    {
    x=0;
    y=0;
    }
    Punkt2DK:: Punkt2DK(double P_x, double P_y)
    {
    x = P_x;
    y = P_y;
    }
    void Punkt2DK::Ausgabe()
    {
    cout << "(" << x << "/" << y << ")" <<endl;
    }
    double Punkt2DK::get_x()
    {
    return x;
    }
    double Punkt2DK::get_y()
    {
    return y;
    }
    void Punkt2DK::set_xy(double a, double b)
    {
    x=a;
    y=b;
    }
    double Punkt2DK::Norm()
    {
    double c,e,d;
    c = get_x();
    e = get_y();
    d = sqrt(c*c+e*e);
    return d;
    }
    double Punkt2DK::Winkel()
    {
    double PI,Q;
    PI = 3.141;
    y = get_y();
    x = get_x();
    Q = (atan (y/x))*(180/PI);
    cout << "Der Winkel ist " << Q << "grad" << endl;
    }
    Was in class Punkt2DK{ steht konnte ich ungefähr verstehen, aber was dann im int main steht, ist für mich unschlüssig und die anderen sind wahrscheinlich Funktionen, wo dann die Aufgaben in der Klasse ausgeführt werden.

    Könnt ihr mir diese Aufgabe erklären oder mir Einführungs Aufgaben zeigen oder das einfachste Klassen Programm mit private und Public schreiben und mir erklären, damit ich das verstehe und ich mich dann auch in andere Aufgaben reinarbeiten kann?

    Danke
     
  5. VfL_Freak
    VfL_Freak Bekanntes Mitglied
    Moin,

    gewöhne Dir am besten gleich an:
    (a) Deine Code vernünftig zu formatieren (er wird lesbar!)
    (b) 'sprechende' Variablennamen zu benutzen - sowas wie 'P1' oder '...DK' führt irgendwann garantiert zu Unverständnis!!

    Code (C):

    class Punkt2DK
    {
    private:
        double x,y;
    public:
        Punkt2DK();
        Punkt2DK(double P_x, double P_y);
        void Ausgabe();
        double get_x();
        double get_y();
        void set_xy(double a, double b);
        double Norm();
        double Winkel();
    }; // hier endet Deine Klasse !!
        // alles nachfolgende steht im luftleeren Raum und compiliert so nicht !!
        // ergo: diese Klammer gehört ganz an Ende !!


    int main()
    {
        Punkt2DK P1;
        P1.Ausgabe();
        P1.get_x();
        P1.get_y();
        P1.set_xy(5,3);
        P1.Ausgabe();
        cout << "Norm ist " << P1.Norm() <<endl;
        P1.Winkel();
        return 0;
    }

    Punkt2DK::Punkt2DK()
    {
        x=0;
        y=0;
    }

    Punkt2DK:: Punkt2DK( double P_x, double P_y )
    {
        x = P_x;
        y = P_y;
    }

    void Punkt2DK::Ausgabe()
    {
        cout << "(" << x << "/" << y << ")" <<endl;
    }

    double Punkt2DK::get_x()
    {
        return x;
    }

    double Punkt2DK::get_y()
    {
        return y;
    }

    void Punkt2DK::set_xy(double a, double b)
    {
        x=a;
        y=b;
    }

    double Punkt2DK::Norm()
    {
        double c,e,d;
        c = get_x();
        e = get_y();
        d = sqrt(c*c+e*e);
        return d;
    }

    double Punkt2DK::Winkel()
    {
        // double PI,Q;
        double PI = 3.141;
        y = get_y();
        x = get_x();
        double Q = (atan (y/x))*(180/PI);
        cout << "Der Winkel ist " << Q << "grad" << endl;
    }
    // hier die Klammer, die die Klasse abschließt !!
     

    Was soll uns dies denn sagen ???

    VG Klaus
     
  6. ElMadridano
    ElMadridano Neues Mitglied
    Also in der ganzen Aufgabe geht es um ein Dreieck welches sich in einem Koordinatensystem befindet. "arctanyxϕ=*180/π" Dieser Ausdruck sagt einfach nur wie man den Winkel phi in diesem Dreieck berechnet. In dem Aufgabenblatt war dazu eine richtige Formel sichtbar, hier konnte ich das nicht so wiedergeben. Dieser Text stand noch auf der Aufgabe drauf, hab ich aber grad übersehen : "Schreiben Sie ein Programm, welches die Klasse Punkt2DK enthält. Diese Klasse dient zur Speicherung eines Punktes in der Ebene mittels kartesischer Koordinaten x und y."

    Was das Programm kann und machen soll, war mir aber nicht so wichtig. Erstmal wollte ich verstehen, wie so ein Programm aufgebaut ist. Was z.B. im "int main" passiert und in den Funktionen(oder sind das Methoden?) dadrunter mit den Doppelpunkten geschieht.

    Deine Tipps werde ich aber beachten, Danke
     
  7. VfL_Freak
    VfL_Freak Bekanntes Mitglied
    oha, dass sind dann aber die simpelsten Basics ... :oops:
    Zudem bist Du hier eigentlich in einem Java-Forum und solltest Dich ggf. (vor allem bei tiefergehenden Fragen) besser an ein C/C++-Forum wenden!

    Aber mal zur Einstimmung:
    "int main" bezeichnet die Hauptfunktion einen Programms, die standardmäßig immer als erstes aufgerufen wird - durch die sog. Konstruktoren, das wären bei Dir:
    Code (C):

    Punkt2DK::Punkt2DK();  // Konstruktor der Klasse 'Punkt2DK' OHNE Parameter
    Punkt2DK::Punkt2DK( double P_x, double P_y );  // Konstruktor der Klasse 'Punkt2DK' MIT Parameter
     
    Der doppelte Doppelpunkt zeigt quasi die Beziehung zur Klasse an
    Beispiel:
    Code (C):

    double Punkt2DK::get_y()
    {
        return y;
    }
    sagt hier 'get_y' ist eine Methode der Klasse 'Punkt2DK' (welche einen double-Wert zurückgibt)!

    Damit Du Dich mit den Grundlagen beschäftigen kannst, hier mal ein paar Links mit Webseiten zur Einführung in die Sprache C++:
    https://de.wikibooks.org/wiki/C++-Programmierung/_Einführung_in_C++
    http://www.highscore.de/cpp/einfuehrung/
    https://ladedu.com/cpp/
    https://www.tu-braunschweig.de/Medien-DB/statik/software/einfuehrung_in_cpp.pdf

    VG Klaus
     
  8. ElMadridano
    ElMadridano Neues Mitglied
    Danke für die Links, dort kann ich mich einlesen und anhand den Beispielen, welche auch vorhanden sind, das Thema besser nachvollziehen.
    Sowas hab ich gesucht danke, es kann aber sein dass ich mich später hier wieder an dieses Forum wende, wenn ich wieder Probleme mit den Grundlagen hab
     
  9. VfL_Freak
    VfL_Freak Bekanntes Mitglied
    Versuchen kannst Du es auf jeden!
    Der eine oder andere wird auch C/C++-Kenntnisse haben !
    VG Klaus
     
Passende Stellenanzeigen aus deiner Region:





Die Seite wird geladen...

Einführung in Klassen in C++ - Ähnliche Themen

Suche: Einführung in Apache Solr
Suche: Einführung in Apache Solr im Forum Bücher, Tutorials und Links
Einführung in das Spring MVC Framework
Einführung in das Spring MVC Framework im Forum Bücher, Tutorials und Links
Gut verständliche Einführung in IO/NIO
Gut verständliche Einführung in IO/NIO im Forum Java Basics - Anfänger-Themen
XML Einführung (Paper etc.)
XML Einführung (Paper etc.) im Forum XML und Co.
Hash Map Java Doc Einführung
Hash Map Java Doc Einführung im Forum Java Basics - Anfänger-Themen
Thema: Einführung in Klassen in C++