Was bedeutet intern darstellung?



  • Hallo! Ich muss einen Programm schreiben, den die Basis und den Exponent ausgeben sollte. Hier hab ich einen Konstruktor erstellt:

    Exponential(int b = 1, int e = 1): basis{b}, exp{e} {
    		if(b==0 && e==0) {
    			throw runtime_error("");
    		}
    		if(b==0 && e>=0) {
    			cout << "0^1" << endl;
    		}
    		if(b==0 && e<0) {
    			cout << "0^-1" << endl;
    		}
    		if(b==1) {
    			cout << "1^0";		
    		}
    		if(b!=0 && e==0) {
    			ausgabe = 1;
    		}
    
    	}
    

    Und jetzt wenn ich in main z.B. Exponential k1{1,1}; cout << k1; habe sollte das als 1^0 dargestellt werden, aber ich schaffe es nicht ­čś× Ich w├Ąre froh wenn jemand von euch mir helfen k├Ânnte. Danke im Voraus!


  • Mod

    Bitte vollst├Ąndiges Programm und Fehlerbeschreibung. Denn wenn man dein Programm zu etwas ausf├╝hrbarem erg├Ąnzt, dann kommt das raus, was du w├╝nscht:
    http://ideone.com/bLeq5E



  • Ich verstehe die Aufgabe ehrlich gesagt nicht ganz.

    ich in main z.B. Exponential k1{1,1}; cout << k1; habe sollte das als 1^0 dargestellt werden

    und

    Ich muss einen Programm schreiben, den die Basis und den Exponent ausgeben sollte

    erkl├Ąren sich nicht f├╝r mich? warum 1^0 ausgeben?

    class Exponential
    {
    public:
        Exponential(int b = 1, int e = 1)
            : basis{b}
            , exp{e}
        {
            if(b==0 && e==0) {
                throw runtime_error(""); // hier bitte eine sinnvolle Fehlermeldung eintragen. Falls ├╝berhaupt n├Âtig, weil 0^0 ist well defined = 1
            }
        }
    
        // Das ist was dir fehlt um es auf cout auszugeben.
        // Das ist eine ├ťberladung des << operators, wie in "std::cout << bla"
        // Hiermit kann der Compiler dein Beispiel unten im Post ├╝bersetzen
        // Notiz: operator als friend w├Ąr etwas sch├Âner.
        std::ostream& operator<<(std::ostream& stream)
        {
           stream << basis << "^" << exp; // so habe ich den ersten Satz deines Posts verstanden. Passt aber nicht zu der Ausgabe in deinem Konstruktor.
           return stream;
        }
    
    private:
        int basis;
        int exp;
    };
    

    Vielleicht sehe ich die unterliegende Logik nicht.



  • Die Frage ist nur, wie kann ich das retournieren? Das es anstatt 1^1 ergibt 1^0 weil 4er if statement sollte dargestellt werden. Ganzes Programm hat drei files,



  • Captain_Levi schrieb:

    Die Frage ist nur, wie kann ich das retournieren? Das es anstatt 1^1 ergibt 1^0 weil 4er if statement sollte dargestellt werden. Ganzes Programm hat drei files,

    Das versteh ich auch nicht *h├Ąnde vor gesicht halt affen emoticon*.

    "4er if statement sollte dargestellt werden" ist das eine Aufgabenanforderung?
    Kannst du das nochmal etwas weniger st├╝ckhaft beschreiben?



  • Hier ganzen Programm:

    https://www.dropbox.com/sh/60y7z7euru211m5/AAAt2MfO-7iF-iNdAiQafjA5a?dl=0

    Link von oben ist nur zu sehen, musst ihr nicht herunterladen!

    Das hei├čt, 1^n (f├╝r alle n) sollte intern immer als 1^0 dargestellt werden.



  • 5cript schrieb:

    if(b==0 && e==0) {
        throw runtime_error(""); // hier bitte eine sinnvolle Fehlermeldung eintragen. Falls ├╝berhaupt n├Âtig, weil 0^0 ist well defined = 1
    }
    

    In meiner Welt ist 0^0 ├Ąhnlich gut wie 0/0 definiert. Wie kommst du darauf, dass es well-defined und 1 sein soll? Nur weil es in manchen F├Ąllen hilfreich ist, wenn hier der Wert 1 rauskommt?


  • Mod

    Diese "manchen F├Ąlle" sind aber in guter N├Ąherung alle F├Ąlle┬╣, weshalb es die ├╝bliche Lehre ist, 0^0 als 1 zu definieren.

    ┬╣: Ich glaube, der einzige Fall, wo 0^0 = 0 Sinn machen w├╝rde ist die Betrachtung der Serie 0^N. Und da ist es blo├č ├ästhetik.



  • Aufgabenanforderung ist das die 0^0 nicht erlaubt ist. Und falls es das passiert, sollte das Programm eine Exception werfen. Ich hoffe dass ihr verstanden k├Ânntet, was ich brauche. Mein Deutsch ist nicht perfekt, deshalb bin ich vielleicht schwierig zu verstehen.


  • Mod

    Es ist durchaus ok, Englisch zu benutzen, wenn du das besser kannst. Es gibt zumindest meinerseits n├Ąmlich tats├Ąchlich Probleme, dich zu verstehen. Du kannst nat├╝rlich auch andere Sprachen probieren, vielleicht spricht sie ja jemand hier im Forum.

    Ganz allgemein bist du derzeit v├Âllig auf dem Holzweg, wenn ich die Aufgabe richtig verstanden habe. Du bist viel zu sehr darauf fokussiert, die gew├╝nschte Ausgabe zu erzeugen und gar nicht auf die gew├╝nschte Logik. Die richtige Ausgabe kommt aber von alleine, wenn die Logik richtig ist. Grundvoraussetzung zur Verbesserung w├Ąre erst einmal, dass man Logik und Ausgabe trennt.


Log in to reply