C++ Project



  • PROJECT - RECHNER FÜR GROßE ZAHLEN

    Entwickeln Sie ein Programm das 20 stellige ganze Zahlen
    - Addieren
    - Subtrahieren
    - Multiplizieren
    - dividieren (mit Rest)
    kann.

    Der Programmablauf kann beliebig wiederholt werden.

    Die bZahlen werden in einen Array vom Typ char eingelesen.
    Berücksichtigen Sie in diesem Array einen Speicherplatz für das Vorzeichen!

    ============================================================

    So jetzt die Frage, wie soll ich das mit den Array lösen?
    Hab keine Ahnung, einlesen ja... aber dann addition usw.... könnt ihr ma beispiele schrieben, um inspiration zu sammeln für mich 😃

    oder beispiele 😃



  • typedef char number[???];
    
    void add( number const& lhs, number const& rhs, number& result );
    void sub( number const& lhs, number const& rhs, number& result );
    void mul( number const& lhs, number const& rhs, number& result );
    void div( number const& lhs, number const& rhs, number& result );
    

    Schon mal ein Anfang. Meld dich wenn dich selber die Muse geküsst hat oder du bei konkreten Problemen nicht klar kommst.

    Ach ja, das Beispiel:

    add(some_number, another, some_number_plus_another);
    


  • a) Kann das Ergebnis auch größer als 20 Zahlen sein? Das tolle an 20-stelligen Zahlen wäre nämlich, dass sie selbst mit Vorzeichen in 64bit passen - dafür gibts Integer-Typen bei jedem guten Compiler und bei jedem 64bit-Rechner. Würde die Aufgabe zum Kinderspiel machen.

    b) Darfst du externe Libraries verwenden, die dir die Arbeit abnehmen?

    c) Benutz finix Vorschlag mit dem char-Array und lege selbst Hand an 🙂

    MfG SideWinder


  • Mod

    um... log10263log_{10}2^{63} ist bei mir 18.96.. d.h. du kriegst nichtmal alle 19-stelligen zahlen darin unter, geschwiege denn alle 20-stelligen.



  • hm jo ich weis was finix meint....

    aber es geht eigentlich nur um das addieren selber wie ihr das machen würdet!

    WEil ds einlesen, funktionsaufrufe alles kein problem

    (Das is das Project der Klasse unter mir, und ich will das auch mitmachen 😃 und suche nach den besten weg das zu lösen) bin da immer so n perfektionist!

    // und ne keine 64 bit 😃



  • Schinken schrieb:

    aber es geht eigentlich nur um das addieren selber wie ihr das machen würdet!

    Wir würden in der C++ FAQ nachschauen wie man C-Strings in Zahlen umwandelt 🙂



  • na machs doch so wie dus aufm papier machen würdes, da ja selbst 64 bit nicht reichen würden ich denke mal die aufgabe is mit absicht so gestellt, dass man sich nicht mit ntoa() etc lösen kann
    soll heissen die sache mit von hinten anfangen und halt so mit den algos zum schriftlichen addieren zweier zahlen usw



  • camper schrieb:

    um... log10263log_{10}2^{63} ist bei mir 18.96.. d.h. du kriegst nichtmal alle 19-stelligen zahlen darin unter, geschwiege denn alle 20-stelligen.

    Das kommt davon wenn man kein Mathe kann und 20 Mal die 9 in den TR haut um das binär dartellen zu lassen und der Rechner den Überlauf nicht bekanntgibt - peinlich :p

    Edit: *Keine Aufregung das Schild klebt bereits auf meiner linken Brusttasche*

    MfG SideWinder



  • Was ist mit GMP?


  • Mod

    nimm boost::python und benutz python zum lösen, da gabs doch auch unbeschränkte zahlen 😃



  • das soll in c++ alleine passieren... ihr immer mit irgendwelchen bibliotheken!


Anmelden zum Antworten