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

/* Eine Zahl, die kleiner als 10 ist, entspricht bereits ihrer Quersumme. Zum 
   Beispiel die Zahl 5 hat die Quersumme 5. Daher wird hier nach einer Zahl 
   gefragt, die größer als 10 ist. */ 

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
}
if zahl > 10 {
    quersumme = 0
    while zahl > 0 {
        
        /* Mithilfe der Modulo Funktion (MOD) kann die letzte Stelle der Zahl 
           abgeschnitten werden.*/ 

        r = zahl % 10
        
        // Die Zahl wird jetzt durch 10 geteilt.
        zahl = Double(zahl) / 10
        quersumme = quersumme + r
    }
} else {
    
    /* Wenn die Zahl kleiner als 10 ist, entspricht die Zahl der Quersumme. 
       Daher ist keine weitere Rechnung nötig. */ 

    quersumme = zahl
}
print("Die 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