6.1 Variablen

Die numerischen Variablen haben wir schon kennengelernt. Ihnen werden Zahlen zugeordnet. Da Variablen ein wirklich wichtiger Bestandteil von Programmiersprachen sind, schauen wir uns diese nun im Detail an.

Eine Variable ist ja ein Behälter, in den eine bestimmte Information eingefüllt werden kann. Immer wenn nun diese Variable im Programm verwendet wird, dann wird diese Information statt dessen weitergegeben.

In Sonic Pi gibt es 3 Arten von Variablen:

Zahlen

Strings

Boolsche Variablen

Fangen wir mal mit den letzten an, den die sind erstens einfach und zweitens hatten wir gerade das Thema Logik, wo die Variablen dazu gehören. Tatsächlich gibt es nur 2 unterschiedliche:

true

false

Die Verwendung der Variablen ist in Code 8 zu sehen.

 

Man kann die Boolschen Variablen also in der If-Abfrage verwenden.

Die Operatoren zum Verknüpfen von Boolschen Variablen haben wir schon kennengelernt: && und ||. Was nicht funktioniert ist die Verwendung der normalen Rechenoperationen wie + und -. Und eigentlich ist auch unklar, was da überhaupt das Ergebnis sein kann.

Aber einen anderen Operator gibt es noch. Und der funktioniert für eine Variable. Angewandt auf diese macht er aus false ein true oder aus true ein false. Wie in anderen Programmiersprachen wird als Operator das Ausrufungszeichen (!) verwendet.

Da wir bei den Variablentypen hinten angefangen haben, kommen wir jetzt zu den Strings. Ein einfaches Beispiel um „Guten Tag“ im Log-Viewer auszugeben ist:

begruessung = „Guten Tag“

puts begruessung

Wichtig ist, dass hier der Variableninhalt in Anführungszeichen gesetzt wird. Diese müssen auch unbedingt oben gesetzt werden. Erst unten und dann oben so wie in der direkten Rede der deutschen Sprache funktioniert nicht.

Kann man 2 Strings aneinander hängen? Aber sicher doch, das funktioniert mit dem +-Zeichen. Das ist zwar erstaunlich weil man ja die Zeichenketten nicht addiert, sondern nur hintereinander hängt, aber es funktioniert hier trotzdem. In vielen anderen Programmiersprachen ist das übrigens nicht der Fall, da gibt es einen speziellen Verkettungsoperator.

Auch Strings lassen sich vergleichen. Zumindest in Sonic Pi funktioniert dies wie bei einer Zahl mit dem Vergleichsoperator „==“.

if begruessung == „Guten Tag“

ist eine mögliche Bedingung erzeugt einen Wahrheitswert „wahr“ oder „falsch“.

Und jetzt zum Schluss der Datentyp Zahl. Den kennen wir schon aus einem anderen Kapitel. Jetzt wollen wir etwas genauer hinsehen.

In vielen Programmiersprachen gibt es einen großen Unterschied zwischen Dezimalzahlen und ganzen Zahlen. Sie haben sogar einen eigenen Namen. Währen die ganzen „Integer“ genannt werden, heißen die Dezimalzahlen „Float“ oder „Real“.

In Sonic Pi gibt es eine solche Bezeichnung nicht. Wahrscheinlich ist Dir schon aufgefallen, dass sowieso nirgendwo festgelegt wird, von welchen Typ die Variable ist. Ihr wird ganz einfach ein Wert zugewiesen und das ist es. Aus diesem Grund ist der Unterschied zwischen Dezimal- und Ganzzahl in Sonic nicht so wichtig wie in anderen Programmiersprachen. Einzig die Problematik bei der Division sollte man im Hinterkopf behalten.

Übrigens kann man problemlos einer Variablen zuerst einen String und dann eine Zahl zuweisen. Anschließend ist dann die Zahl in der Variablen gespeichert und der String vergessen.

 

################################

# Boolsche Variablen

# Hans Gruendel

# 10.4.2016

################################

playSong = true

notPlaySong = false

if playSong

use_synth :fm

end

if notPlaySong

use_synth :piano

end

play 80

Code  Verwendung der Boolschen Varianblen „true“ und „false“