Methoden cancel, expand und getFPNum



  • Hallo Miteinander,

    ich komme an 2 Teilaufgaben nicht wirklich weiter. Das Gerüst steht soweit (denke es) und nun komme ich nicht weiter, da ich die Methoden cancel, expand und getFPNum nicht mitbekommen habe und auch im www nichts verständliches dazu finde, um es anzulernen. Ich hoffe ich bin hier richtig und hoffe auf eure Hilfe!

    1.6
    Schreiben Sie die Methoden cancel und expand, die einen Bruch kürzen bzw. erweitern können. Testen Sie die neuen Methoden. Schreiben Sie eine print-Methode, die den Bruch in der folgenden Form ausgibt:

    Zaehler
    -----------
    Nenner

    1.7
    Schreiben Sie eine Methode getFPNum die den Bruch im floating-point Format also als Zahl mit Nachkommaanteil zurückgibt.

    #include "fraction.h"
    #include<iostream>
    using namespace std;
    int main()
    {
    fraction Neu = fraction(20, 2);
    fraction Neu1 = fraction(5, 2);
    fraction Neu2 = fraction(10, 2);
    cout << Neu.getZaehler() << " " << Neu.getNenner() << endl;
    //Ausgeben und testen der Funktionen
    printf("\n");
    cout << Neu1.getZaehler() << " " << Neu1.getNenner() << endl;
    cout << "Addition \n";
    Neu.add(Neu1);
    cout << Neu.getZaehler() << " " << Neu.getNenner() << endl;
    printf("\n");
    cout << Neu2.getZaehler() << " " << Neu2.getNenner() << endl;
    cout << "\n Subraktion \n";
    Neu.sub(Neu2);
    cout << Neu.getZaehler() << " " << Neu.getNenner() << endl;
    printf("\n");
    cout << Neu2.getZaehler() << " " << Neu2.getNenner() << endl;
    cout << "\n Multiplikation \n";
    Neu.mul(Neu2);
    cout << Neu.getZaehler() << " " << Neu.getNenner() << endl;
    printf("\n");
    cout << Neu1.getZaehler() << " " << Neu1.getNenner() << endl;
    cout << "\n Division \n";
    Neu.div(Neu1);
    cout << Neu.getZaehler() << " " << Neu.getNenner() << endl;
    printf("\n");
    system("Pause");
    return 0;
    }
    
    #include "fraction.h"
    
    fraction::fraction()
    {
    	Nenner = 1;
    	Zaehler = 1;
    }
    
    fraction::fraction(unsigned int Zaehler, unsigned int Nenner)
    {
    	this->Nenner = Nenner;
    	this->Zaehler = Zaehler;
    }
    
    unsigned int fraction::getZaehler()
    {
    	return Zaehler;
    }
    
    unsigned int fraction::getNenner()
    {
    	return Nenner;
    }
    
    void fraction::add(fraction fracToAdd)
    {
    	Zaehler = Zaehler+fracToAdd.getZaehler() ;
    	Nenner = fracToAdd.getNenner();
    }
    
    void fraction::sub(fraction fracToSub)
    {
    	Zaehler = Zaehler - fracToSub.getZaehler();
    	Nenner = fracToSub.getNenner();
    }
    
    void fraction::mul(fraction fracToMul)
    {
    	Zaehler = Zaehler * fracToMul.getZaehler();
    	Nenner = Nenner * fracToMul.getNenner();
    }
    
    void fraction::div(fraction fracToMul)
    {
    	Zaehler = Zaehler * fracToMul.getNenner();
    	Nenner = Nenner  * fracToMul.getZaehler();
    }
    
    #ifndef faction_H
    #define faction_H
    #include<string>
    using namespace std;
    class fraction
    {
    protected:			//Membervariablen mit beschränktem Zugriff (Protected)
    	unsigned int Nenner;
    	unsigned int Zaehler;
    public:
    	fraction();
    	fraction(unsigned int Zaehler, unsigned int Nenner);
    	~fraction() {};
    	unsigned int getZaehler();
    	unsigned int getNenner();
    	void add(fraction fracToAdd);
    	void sub(fraction fracToSub);
    	void mul(fraction fracToMul);
    	void div(fraction fracToMul);
    
    };
    #endif // !faction_H
    

    Nehme sehr gerne Tipps, Tricks und andere Beispiele an und bedanke mich im voraus 🙂



  • Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++ (alle ISO-Standards) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


  • Mod

    Der einzig wahre Tipp kann hier nur lauten, alles was du gelernt hast, wieder zu vergessen und wieder bei 0 anzufangen, dieses mal mit einem guten Lehrer. Das gilt sowohl für C++ als auch Bruchrechnung.

    Mehr kann man dazu nicht sagen, da du keine Frage stellst. "Komme nicht weiter" ist keine Problembeschreibung.



  • Ich kann als Tipp noch geben, dich an die beiden Funktion "größter gemeinsamer Teiler" und "kleinstes gemeinsames Vielfaches" zu erinnern.

    Dein add/sub ist nämlich nicht korrekt.


Log in to reply