Variable (Informatik): Unterschied zwischen den Versionen
Sn (Diskussion | Beiträge) (→Analogie: Anekdote) |
Sn (Diskussion | Beiträge) (→Zuweisung: VisProg) |
||
Zeile 37: | Zeile 37: | ||
Durch die Pflicht zur Deklaration von Variablen kann bereits beim [[Compiler|Kompilieren]] des Programms geprüft werden, ob alle verwendeten Variablen ganz sicher existieren und auch so verwendet werden dürfen, wie es im Programm steht. | Durch die Pflicht zur Deklaration von Variablen kann bereits beim [[Compiler|Kompilieren]] des Programms geprüft werden, ob alle verwendeten Variablen ganz sicher existieren und auch so verwendet werden dürfen, wie es im Programm steht. | ||
=== Zuweisung === | === Zuweisung und Abfrage === | ||
Den Wert einer Variable zu ändern, ist eine [[Anweisung]], da hierdurch der Zustand des Programms verändert wird. Den Wert einer Variable abzufragen, ist hingegen ein Ausdruck, da ein Ergebnis zurückgeliefert wird. | |||
In den visuellen Programmiersprachen werden für Anweisungen und Ausdrücke unterschiedlich geformte Blöcke verwendet. Darum wird auch anhand der Blockform zwischen Zuweisung und Abfrage unterschieden. In Scratch gibt es für die Zuweisung den Block <sb>setze [x v] auf ()</sb> und für die Abfrage die ovalen Blöcke <sb>(x)</sb> mit den Variablennamen. | |||
Im AppInventor werden die Blöcke <code>setze ... auf ...</code> und <code>hole ...</code> verwendet. | |||
{{Todo}} | {{Todo}} | ||
Version vom 22. April 2024, 06:31 Uhr
In der Informatik bezeichnet man als Variable einen Verweis auf ein Stück Speicher, in dem eine Information festgehalten werden kann. Diese Information kann aus dem Speicher ausgelesen werden, ebenso kann eine neue Information hineingeschrieben werden. Bei diesem Vorgang geht die alte Information verloren.
Eine Variable hat immer einen Namen, den so genannten Bezeichner (engl. identifier). Mit diesem Namen kann auf den Wert der Variablen zugegriffen werden.
Analogie
Man kann sich eine Variable wie eine beschriftete Box mit einem Inhalt vorstellen. Die Beschriftung ist hier der Bezeichner, der Inhalt ist der Wert.
Konkretes Beispiel: in meiner Küche steht eine Box mit der Beschriftung MEHL
. Wenn ich meine Freundin bitte, mir die Box mit der Beschriftung MEHL
zu geben, weiß sie, was ich will. Der Bezeichner dient also dazu, eine Variable eindeutig zu identifizieren.
Den Wert einer Variable kann man beliebig oft abfragen ("Schatz, wie viel ist noch in der ie eine beschrift-Dose?" - "Vielleicht 300 Gramm?"), verändern (indem man Mehl entnimmt oder hinzufügt) oder ganz löschen. Das Ergebnis einer Abfrage gibt dabei immer den aktuellen Wert einer Variablen zurück. Alte vorherigen Werte gehen beim Überschreiben verloren.
Der Bezeichner einer Variable hat nicht zwingend etwas mit dem Inhalt zu tun! In die MEHL
-Dose könnte ich auch Zucker, Linsen oder schmutzige Socken füllen! Der Wert einer Variablen wird ausschließlich von dem Programm festgelegt, in dem sie verwendet wird!
Der Bezeichner einer Variable sollte zu deren Wert passen. Genau so, wie ich von einer mit MEHL
beschrifteten Dose erwarte, dass sie Mehl enthält, erwarte ich von einer Variable namens vorname
, dass darin jemandes Vorname gespeichert wird. Dies gilt umso mehr, weil man in der Regel nicht alleine, sondern im Team an einem Programm arbeitet.
Kleine Anekdote: Als Jugendlicher wollte ich mal für einen Kuchen einen Zuckerguss aus Zitronensaft und Puderzucker anrühren. Das weiße Pulver in der mit "PUDERZUCKER" beschrifteten Dose war aber Kartoffelstärke. Moral: benenne deine Variablen und beschrifte deine Dosen so, dass andere sofort sehen oder wenigstens ahnen können, was darin ist.
In manchen Programmiersprachen haben Variablen feste Datentypen, die festlegen, wie viel Speicher für diese Variable zur Verfügung steht und welche Werte darin gespeichert werden dürfen. Zum Beispiel kann eine Variable vom Typ byte
in C nur ganzzahlige Werte zwischen -128 und 127 annehmen. Meine MEHL
-Dose hat auch nur ein begrenztes Fassungsvermögen.
Verwendung
Variablen bilden die einfachste Form des "Gedächtnisses" eines Computerprogramms oder Algorithmus. Komplexere Daten, die mehrere Informationen umfassen, müssen mit Datenstrukturen gespeichert werden.
Deklaration
In vielen Programmiersprachen müssen Variablen deklariert werden, bevor sie verwendet werden können. Das heißt, dass ihr Name sowie gegebenenfalls ihr Datentyp oder Informationen über ihre Sichtbarkeit festgehalten werden müssen. Im AppInventor müssen Variablen mit den Blöcken global initialisieren
oder lokal initialisieren
deklariert werden und können nur dann verwendet werden, wenn diese Blöcke vorhanden sind.
In Sprachen wie Java deklariert man Variablen zum Beispiel so:
int x;
char y;
boolean z;
Das bedeutet: es werden drei Variablen x
, y
und z
angelegt. In x
darf nur eine ganze Zahl gespeichert werden, in y
nur ein Zeichen und in z
nur ein Wahrheitswert. Damit wird zugleich der nötige Speicher für diese Variablen reserviert: 4 Byte für den int
, 2 Byte für den char
und 1 Bit für den boolean
.
Durch die Pflicht zur Deklaration von Variablen kann bereits beim Kompilieren des Programms geprüft werden, ob alle verwendeten Variablen ganz sicher existieren und auch so verwendet werden dürfen, wie es im Programm steht.
Zuweisung und Abfrage
Den Wert einer Variable zu ändern, ist eine Anweisung, da hierdurch der Zustand des Programms verändert wird. Den Wert einer Variable abzufragen, ist hingegen ein Ausdruck, da ein Ergebnis zurückgeliefert wird.
In den visuellen Programmiersprachen werden für Anweisungen und Ausdrücke unterschiedlich geformte Blöcke verwendet. Darum wird auch anhand der Blockform zwischen Zuweisung und Abfrage unterschieden. In Scratch gibt es für die Zuweisung den Block setze [x v] auf ()
und für die Abfrage die ovalen Blöcke (x)
mit den Variablennamen.
Im AppInventor werden die Blöcke setze ... auf ...
und hole ...
verwendet.
Dieser Abschnitt wird gerade überarbeitet