Aufgabe3 Beispiel2 und Aufgabe4 Beispiel 1

  • bei hohen zahlen spinnt das ding:


    convToMin3 (2^32-1) == "12"
    und genau so einen scheiss testen die wieder


    werden die nicht, weil gefragt ist ja
    convToMin3 :: Int-> String zu machen
    und die 2^32 ist kein Int :verycool:


    On the path from Node m to Node n, hums Waikiki to the "Smack my Dijkstra up" song... na-na-naaaa :devil:

  • ein paar testfaelle...


    Main> convToMin3 29
    "12002"
    Main> convToMin3 1001
    "2212002"
    Main> convToMin3 10000000001
    "
    Program error: arithmetic overflow
    Main> convToMin3 1002212
    "ERROR - C stack overflow
    Main> convToMin3 12222
    "212111200"
    Main> incMin3 "22122"
    "22110"
    Main> incMin3 "0022"
    "Ungueltige Eingabe"
    Main> incMin3 "212121002"
    "212121120"


    edit: gibts bei euch auch solche fehlermeldungen?


    edit2: noch mehr testfaelle..


    Main> convToMin3 (-14)
    "1221"
    Main> convToMin3 (-24)
    "1120"
    Main> convToMin3 (-1001)
    "12101011"
    Main> convToMin3 (-2001)
    "11202010"
    Main> convToMin3 (-2111)
    "10010021"
    Main> convToMin3 (-2121)
    "10011220"
    Main> convToMin3 (-2120)
    "10011221"
    Main> convToMin3 (-2120222)
    "1289611999" :omg:
    Main> convToMin3 (-2120224)
    "1289612010" :omg:
    Main> convToMin3 (-2120225)
    "1289612009" :omg:
    Main> convToMin3 (-212022)
    "ERROR - C stack overflow


    On the path from Node m to Node n, hums Waikiki to the "Smack my Dijkstra up" song... na-na-naaaa :devil:

  • Quote from Trux

    -1 / -3 = 1 rest 2
    1 / -3 = 0 rest 1

    kannst du mir die arithmetik erklären :engel:?


    edit: argh, schon verstanden. aber wie hast du das implementiert!?



  • jetzt stimmts :D:D:D:D
    ....
    Main> convToMin3 (-2121)
    "10011220"
    Main> convToMin3 (-2120)
    "10011221"
    Main> convToMin3 (-2120222)
    "22000112102111"
    Main> convToMin3 (-2120224)
    "22000112102122"
    Main> convToMin3 (-2120225)
    "22000112102121"
    Main> convToMin3 (-212022)
    "102110022100"
    Main>


    On the path from Node m to Node n, hums Waikiki to the "Smack my Dijkstra up" song... na-na-naaaa :devil:

  • 2^32-1


    = maxint oder?


    "Fixed-precision integers (class Integral). The finite-precision integer type Int covers at least the range [ - 2^29, 2^29 - 1]. As Int is an instance of the Bounded class, maxBound and minBound can be used to determine the exact Int range defined by an implementation."



    ..fazit maxint 2^29-1


    On the path from Node m to Node n, hums Waikiki to the "Smack my Dijkstra up" song... na-na-naaaa :devil:

  • noch ein paar testfaelle..


    Main> convToMin3 (-79)
    "120002"
    Main> convToMin3 (-791)
    "12120201"
    Main> convToMin3 (-7910)
    "1211022001"
    Main> convToMin3 (-6910)
    "1200221002"
    Main> convToMin3 (-6950)
    "1200210211"
    Main> convToMin3 (6950)
    "101221102"
    Main> convToMin3 (695011)
    "2201100212121"


    On the path from Node m to Node n, hums Waikiki to the "Smack my Dijkstra up" song... na-na-naaaa :devil:

  • Wie habt ihr das incMin3 gemacht? Ich rechne derzeit ins Dezimal um, addiere 1 und rechne wieder zurück. Denkt ihr, das ist zulässig? Es funktioniert zumindest.

  • Wie habt ihr das incMin3 gemacht? Ich rechne derzeit ins Dezimal um, addiere 1 und rechne wieder zurück. Denkt ihr, das ist zulässig? Es funktioniert zumindest.


    genau so :thumb:


    On the path from Node m to Node n, hums Waikiki to the "Smack my Dijkstra up" song... na-na-naaaa :devil:


  • Mal eine Frage, wie hast du das aufrunden gelöst, wenn wir ceiling verwenden bekommen wir immer folgende Fehlermeldung: "Instance of RealFrac Int required for definition of erzeugeMin3"


    erzeugeMin3 :: Int -> String diese Funktion führt die Division durch und ermittelt somit das Ergebnis


    Aufruf von ceiling:
    ...
    ... ++ erzeugeMin3 ceiling(zahl/(-3))
    ...


    Weiß jemand was wir falsch machen?


    //EDIT: PROBLEM GELÖST