Calliope mini - Spaß durch Programmieren

Entwicklungsumgebungen

Logarithmus

Ziel: Es wird der dekadische Logarithmus einer Zahl angezeigt.

Die Entwicklungsumgebung MakeCode bietet keinen mathematischen Block, um den Logarithmus einer Zahl zu bilden. Da im Hintergrund der Blockprogrammierung aber JavaScript (oder TypeScript) arbeitet, kann man darüber eine Funktion so verändern, dass sie JavaScript ausführt.

Funktion erstellen

Es wird eine neue Funktion mit dem Namen lg erstellt, der ein Wert übergeben wird. Dieser Wert ist die Zahl, von der der Logarithmus bestimmt werden soll. Die Funktion wird dann lg(wert) zurückgeben.
Funktion

In JavaScript wechseln

In der oberen Leiste kann man zwischen den verschiedenen Ansichten des Programmcodes umschalten.
Funktion

JavaScript einfügen

Im Funktionsumfang, den JavaScript von MakeCode zur Verfügung stellt, fehlt die Funktion zum Bestimmen des dekadischen Logarithmus. Deshalb muss mit dem natürlichen Logarithmus gearbeitet werden. Wie vielleicht bekannt ist, gilt

lg(wert)=log(wert)/log 10

Die Funktion Math.log(wert) liefert in JavaScript den natürlichen Logarithmus des Wertes, Math.LN10 den natürlichen Logarithmus von 10.

Funktion

Testen

Schaltet man in die Blockansicht zurück, werden die JavaScript-Befehle grau dargestellt.

Wenn alles richtig ist, muss der Aufruf der Funktion mit der Zahl 1000 eine 3 anzeigen, denn 103=1000.

Funktion

und nochmal Testen

Selbst wenn man ein Programm mehrfach testet und denkt, alles ist okay, findet sich immer noch ein Fehler! Der Logarithmus der Zahl soll nicht direkt angezeigt werden, sondern erstmal in einer Variablen abgelegt werden. Zeigt man sich den Inhalt der Variablen an, ist immer noch alles richtig.

Funktion

Aber dann: Der Inhalt der Variablen wird im Debugger begutachtet. Es ist nicht 3, sondern gaaaanz kurz davor. Beim Anzeigen stört das nicht, denn irgendwie rundet die Entwicklungsumgebung den Wert. Bei der Weiterverarbeitung (z.B.Quersumme) geht das aber nicht.

Alles wird gut...

Damit die Funktion einen korrekten Wert zurückliefert, muss der ermittelte Logarithmus mit 1000 multipliziert und das Ergenis gerundet werden. Danach wird der erhaltene Wert wieder durch 1000 geteilt. Damit wird der Logarithmus auf drei Kommastellen zurückgegeben.

Will man mehr Kommastellen haben, muss die 1000 z.B.auf 10000 vergrößert werden.

Funktion

...und kürzer

Natürlich kann man das wieder verkürzen, obwohl es dann nicht mehr so klar zu erkennen ist.

Funktion

Kopieren

Wenn man in einem anderen Programm den Logarithmus einer Zahl benötigt (z.B. um die Anzahl der Stellen einer Zahl zu bestimmen), kopiert man aus dem JavaScript-Teil die Funktion und fügt sie in einem anderen Programm wieder im JavaScript-Teil ein.

Das Bild zeigt einen Ausschnitt des Prorammes zur Berechnung der Quersumme.

Funktion

zurück