import Foundation

/* Für die Zahl, von der die Quersumme berechnet, werden soll, wird die 
   Variable zahl deklariert. */
 
var zahl : Int

/* Für das Ergebnis und Zwischenwerte der Quersumme wird die Variable 
   quersumme deklariert. */ 

var quersumme : Int

/* Die Variable r ist eine Hilfsvariable, die dazu dient, die einzelnen Ziffern 
   der mehrstelligen Zahl zwischenzuspeichern. */ 

var r : Int

/* Die Variable exit sorgt dafür, dass die Schleife beendet wird, wenn die 
   Quersumme einstellig geworden ist. */ 

var exit : Boolean

print("Geben Sie ein Zahl, die größer als 10 ist, ein: ")
zahl = Int(readLine()!)!

/* Es ist auch möglich, Quersummen von negativen Zahlen zu berechnen. Dazu wird 
   hier die boolesche Variable negativ deklariert und mit dem Wert 
   false initialisiert. */ 

var negativ : Boolean

negativ = false

/* In der Fallunterscheidung wird geprüft, ob die eingegebene Zahl kleiner 
   als 0 ist, falls ja, wird der Wert der Variable negativ auf true gesetzt und 
   die eingegebene Zahl mit -1 multipliziert. Die Zahl ist dann positiv, nach 
   der Berechnung der Quersumme wird das Ergebnis später wieder 
   mit -1 multipliziert. */ 

if zahl < 0 {
    negativ = true
    zahl = zahl * -1
}
exit = false
while zahl >= 10 && exit == false {
    
    // Ab hier beginnt die eigentliche Berechnung.
    quersumme = 0
    while zahl > 0 {
        
        /* Solange die Variable zahl größer als 0 ist, wird die letzte Stelle 
           der Zahl abgeschnitten und in der Variable r gespeichert. */

        r = zahl % 10
        
        /* Die Zahl wird durch 10 geteilt, da im Schritte vorher die letzte 
           Stelle gespeichert wurde. */

        zahl = Double(zahl) / 10
        
        // Jetzt werden die Ziffern der Zahl schrittweise addiert.
        quersumme = quersumme + r
    }
    if quersumme >= 10 {
        zahl = quersumme
    } else {
        
        /* Im Fall, dass die berechnete Quersumme größer als 10 ist, das 
           bedeutet, die Quersumme ist nicht einstellig, wird die Berechnung 
           erneut durchlaufen, aber diesmal mit der gefundenen Quersumme als
           Startwert. */ 

        exit = true
    }
}
print("Die einstellige Quersumme der gebenen Zahl ist: ")

/* Hier wird geprüft, ob die ursprünglich Zahl negativ war, falls ja, wird die 
   berechnete Quersumme mit -1 multipliziert. */

if negativ {
    quersumme = quersumme * -1
}
print(quersumme)
        
        
akzeptieren ablehen

Diese Website verwendet Cookies und Zählpixel, um Ihnen die bestmögliche Nutzung dieser Website zu ermöglichen.Learn more about cookies sehen Sie auch Datenschutz