Maximalwert für einen Potenzrechner

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Maximalwert für einen Potenzrechner

    Ein freundliches Hallo in die Runde,

    ich schreibe gerade einen Rechner zum berechnen von Potenzen mit Ganzzahlen. Läuft auch alles so weit ganz gut.
    Wenn ich allerdings den Wertebereich von Int überschreite, schmiert mir logischerweise das Programm ab.

    Meine Frage ist nun, wie fange ich den Fehler ab? Komme nicht weiter.
    Muss ich die Eingabe der Basis und des Exponenten beschränken? Meine Überlegung ging eher dahin: wenn der Wertebereich des Ergebnisses überschritten
    wird, dann gib eine Fehlermeldung aus, falls nicht, dann übergebe das Ergebnis.

    func potenzieren(wert1: Int, wert2: Int) -> Int {
    var zähler = 1
    var ergebnis = 1
    while zähler <= wert2 {
    ergebnis = ergebnis * wert1
    zähler = zähler + 1
    }
    return ergebnis
    }
  • Die Aufgabenstellung ;)

    Ich hab es aber jetzt gelöst bekommen!

    func potenzieren(wert1: Int, wert2: Int) -> Int {
    var zähler = 1
    var ergebnis = 1
    while zähler <= wert2 {
    if (ergebnis > Int.max / wert1) {
    ergebnis = 0
    myDialog(message: "Achtung", information: "Sie haben den Maximalwert überschritten")
    break
    } else {
    ergebnis = ergebnis * wert1
    zähler = zähler + 1
    }
    }
    return ergebnis
    }