Übungsbeschreibung
 
            Variablen             
            5m 18s             
          Mache dir das Programmieren leichter, indem du in Lua und im Block Controller Objekte mit Variablen referenzierst.
Video Transkript
 
            Variablen             
            5m 18s             
          0:08
 Lasst uns über Variablen sprechen. In Filmen über Banküberfälle ist häufig von „Variablen“ die Rede, 
0:14
 wenn es darum geht, was alles schief gehen könnte. Manchmal wird eine Variable als „bekannte 
0:20
 Unbekannte“ bezeichnet – etwas, von dem du weißt, dass es existiert, aber nicht, was es ist. Doch im 
0:26
 Scripting weißt du oft ganz genau, was deine Variable ist, und du wählst einfach eine aus, die dir das 
0:32
 Schreiben deines Skripts erleichtert. Ich betrachte eine Variable am liebsten als Bezeichnung für 
0:37
 einen Wert, der sich ändern kann oder auch nicht.
0:41
 In der Algebra werden oft ein x, y oder z für Variablen eingesetzt – dies sind nur Buchstaben, die 
0:47
 irgendeine andere Zahl repräsentieren. In Lua können diese Variablen so definiert werden: Du 
0:54
 schreibst den Namen der Variablen, ein Gleichheitszeichen und das, was diese Variable 
0:59
 repräsentieren soll.
1:01
 Doch beschränkt sich dies nicht nur auf einzelne Buchstaben oder Zahlen. Es können ganze Wörter 
1:06
 für Variablen stehen, und eine Variable könnte einen Zahlenwert, eine Zeichenfolge oder 
1:12
 Steuerungseigenschaft definieren, oder sogar eine ganze Funktion oder mehr.
1:17
 In diesem Beispiel repräsentiert eine Variable einen veränderlichen Wert. Ich setze die Variable „s“ 
1:24
 für die Zeichenfolge „Hello“ ein und „drucke“ „(s)“. Angezeigt wird die Variable „s“, nicht der 
1:31
 Buchstabe „s“. Dann weise ich die Variable „s“ neu zu, und zwar der Zeichenfolge „World“, und 
1:39
 „drucke“ „(s)“ noch einmal.
1:42
 Die beiden „drucke(s)“-Befehle sind identisch, aber weil die Variable sich zwischenzeitlich geändert 
1:48
 hat, liefert uns der Compiler beim Durchlaufen des Skripts zwei Ergebnisse, je nachdem, was die 
1:54
 Variable zum Zeitpunkt der Befehlsausgabe war.
1:58
 Genauso kann eine Variable den Wert oder String eines Steuerungselements repräsentieren. Diese 
2:04
 Information wird nicht in deinem Skript definiert, sie kommt aus der normalen Q-SYS-Umgebung. 
2:10
 Aber wenn du die Variable anzeigst, stellt sie den aktuellen Zustand dieses Steuerungselements dar.
2:16
 Oft nutzt man eine Variable als einfache Abkürzung für etwas, das häufig verwendet wird. 
2:22
 Angenommen, du hast ein längeres Skript mit mehreren Funktionen, die alle mit dem String 
2:27
 „Message Complete“ antworten.
2:30
 Falls du diesen String später ändern möchtest, musst du alle Funktionen durchgehen und sie Zeile für 
2:35
 Zeile ändern, oder aber du nimmst von vornherein eine Variable. Dann definierst du deine Variable 
2:41
 am Anfang des Skripts und brauchst sie dann immer nur an einer Stelle zu ändern. Das wird dann an 
2:47
 jede Instanz mit Bezug auf diese Variable übertragen.
2:51
 Die Variablen, die wir bis hierher erstellt haben, heißen „globale Variablen“, weil sie überall in 
2:56
 deinem Skript gelten. Manchmal brauchst du vielleicht eine lokale Variable, die innerhalb einer 
3:02
 Funktion oder Steuerungsstruktur definiert sein soll, und nur im Regelungsbereich dieser Funktion 
3:07
 gelten soll. Hast du z.B. viele Funktionen, die alle etwas ähnliches tun, wäre es recht mühsam, globale 
3:13
 Variablen wie „output1“, „output2“, „output3“ usw. zu verwenden. Stattdessen könnte jede Funktion 
3:20
 ihre eigene Variable nams „output“ erstellen, die niemals außerhalb ihrer eigenen Funktion agieren 
3:26
 wird. Wie Funktionen erstellt werden, sehen wir uns im nächsten Video an.
3:30
 Im Block Controller kannst du Variablen mit den Blöcken im Tab „Variables and Functions“ 
3:35
 manipulieren. Mit dem „create“-Block erstellst du eine neue Variable und kannst diese auf der 
3:41
 anderen Seite des Gleichheitszeichens definieren (oder auch nicht).
3:45
 Anschließend kannst du für diese Variable mit dem „set“-Block einen neuen Wert festlegen. Falls auf 
3:51
 diese Variable Bezug referenzieren willst, kannst du diesen Block hier mit ihrem Namen verwenden. 
3:55
 Falls ich eine Variable anzeigen möchte, die durch den Wert eines Steuerungselements definiert wird, 
4:04
 Nachdem du eine Reihe von Variablen erstellt hast, stehen diese alle im Aufklappmenü zur 
4:08
 Verfügung. Dir fällt sicher auf, dass der Standardname für Variablen „foo“ ist, und – ich kann dies 
4:15
 nicht stark genug betonen – du solltest Mitleid haben.
4:19
 Noch eine letzte Sache zum Block Controller – wie du siehst, weiß er, dass die Variable eine globale 
4:24
 Variable ist. Wenn du dagegen die Variable innerhalb der Konstruktion eines Funktionsblocks 
4:29
 erstellst, versteht er automatisch, dass es sich um eine lokale Variable handelt. Du must dich nicht für 
4:35
 eine Variante entscheiden.
4:37
 Auch kannst du im Block Controller den „create“-Block nur einmal für jede Variable verwenden. 
4:43
 Nachdem die Variable erstellt ist, kannst du sie nur mit dem „set“-Block in etwas anderes 
4:47
 umwandeln. In Lua kannst du denselben Befehl verwenden, um eine Variable entweder zu erstellen 
4:54
 oder neu zu definieren – das siehst du im Lua-Tab dieser Blöcke: „foo=‘awesome’“ und 
5:00
 „foo=‘moreawesome’“ –, aber der Block Controller braucht diese beiden Konzepte getrennt.
5:06
 Und das war‘s schon mit den Variablen. Im Control Worksheet findet ihr eine Übungsaufgabe, und 
5:11
 wenn ihr sie erledigt haben, machen wir mit den „Funktionen“ weiter.
Downloads & Links
 
            Variablen             
            5m 18s             
                  
