Calliope mini - Spaß durch Programmieren

Entwicklungsumgebungen

Quersumme

Ziel: Aus einer beliebigen Zahl wird die Quersumme gebildet.

Quersumme aus einer vierstelligen Zahl...

Zum Bilden der Quersumme werden in jeweils drei Schritten die einzelnen Ziffern von hinten an abgetrennt und summiert.

  1. Die Zahl wird ganzzahlig durch 10 geteilt. Der Rest der Division wird in der Variable einzel abgelegt.
    1234/10 = 123 und der Rest ist 4.
  2. Von der Zahl wird die 4 abgezogen (1234-4=1230) und das Ergebnis durch 10 geteilt (1230/10=123)
  3. Die 4 wird zur Variablen quersumme addiert.

Danach wird die ganze Prozedur mit der Zahl 123 wiederholt. In der Variablen zahl der dann Wert 12. Nach den 4 Wiederholungen erhält man als Quersumme das Ergebnis 10.

Quersumme

...und mit beliebiger Stellenzahl

Will man die Quersumme einer fünfstelligen Zahl bilden (z.B. 11111), muss die Anzahl der Wiederholungen auf 5 gesetzt werden. Das ist umständlich. Abhilfe schafft ein Befehl, der aus der zahl selber die Stellenzahl bestimmt.

Die Funktion (Logarithmus 10) findet eine Zahl x, so dass gilt: 10x=zahl. Für die Zahl 1234 liefert die Funktion 3,09. Rundet man das auf, erhält man 4 und hat die Anzahl der Stellen.

 

Quersumme

Im Prinzip geht es,...

aber beim Testen fällt auf, dass für die Zahl 1000 als Quersumme eine 0 geliefert wird. Das ist eindeutig falsch!
Was ist die Ursache?

Der Logarithmus von 1000 liefert als Ergebnis eine 3. Die ist aber aufgerundet immer noch eine 3. Deshalb wird die Schleife nur drei Mal durchlaufen, also 0+0+0.

Vor der Berechnung der Quersumme muss man also prüfen, ob der Logarithmus der Zahl eine ganze Zahl ist. Falls das der Fall ist, wird die Stellenzahl um 1 erhöht.

zurück