Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
einleitung:variablen [2018/04/27 20:08] d.golovko [Variablen müssen vor der Verwendung deklariert werden] |
einleitung:variablen [2018/04/27 20:37] (aktuell) d.golovko [Variablen müssen vor der Verwendung deklariert werden] |
||
---|---|---|---|
Zeile 32: | Zeile 32: | ||
| double | 1,7E-308 | 1,7E+308 | 64 | mit Komma, langsamer als float - auf Arduino identisch mit float | | double | 1,7E-308 | 1,7E+308 | 64 | mit Komma, langsamer als float - auf Arduino identisch mit float | ||
- | Daneben gibt es auch spezielle Typen für Text (String, char*). Weiterhin kann man eigene Datentypen definieren, indem man eine //Klasse// schreibt -- dazu kommen wir im Skript der Woche 3. Eine Klasse habt ihr schon benutzt: ''Serial''. | + | Daneben gibt es auch einen speziellen Typ für Text (''char'' für ein Zeichen, z.B. für eine einzelne Buchstabe). Weiterhin kann man neue Datentypen definieren, indem man eine //Klasse// schreibt -- dazu kommen wir im Skript der Woche 3. Ein Beispiel ist der Typ ''String'', der für eine Zeichenkette (ein Wort, einen Satz usw.) steht. |
=== Variablennamen === | === Variablennamen === | ||
Zeile 46: | Zeile 46: | ||
also z.B. | also z.B. | ||
- | <code c++>delayZeit=1000/blinkFrequenz;''</code> | + | <code c++>delayZeit=1000/blinkFrequenz;</code> |
=== Zuweisungen sind keine Gleichungen! === | === Zuweisungen sind keine Gleichungen! === | ||
Das Gleichheitszeichen hat in der Programmierung eine andere Bedeutung als in der Mathematik! | Das Gleichheitszeichen hat in der Programmierung eine andere Bedeutung als in der Mathematik! | ||
- | Eine Zuweisung im Programm (''a=b'') bedeutet **//nicht//**, dass ''a'' und ''b'' immer den gleichen Wert haben werden und "miteinander verbunden bleiben". | + | Eine Zuweisung im Programm (''var1=var2'') bedeutet **//nicht//**, dass ''var1'' und ''var2'' immer den gleichen Wert haben werden und "miteinander verbunden bleiben". |
Schaut euch dazu z.B. folgendes Programm an: | Schaut euch dazu z.B. folgendes Programm an: | ||
<code c++> | <code c++> | ||
- | int a; // deklariere Variable "a" | + | int var1; // deklariere Variable "var1" |
- | int b; // deklariere Variable "b" | + | int var2; // deklariere Variable "var2" |
- | a=1; // weise "a" den Wert "1" zu. | + | var1=1; // weise "var1" den Wert "1" zu. |
- | b=a; // weise "b" das zu, was aktuell in "a" steht. | + | var2=var1; // weise "var2" das zu, was aktuell in "var1" steht. |
- | Serial.println(a); // --> gibt "1" aus | + | Serial.println(var1); // --> gibt "1" aus |
- | Serial.println(b); // --> gibt auch "1" aus | + | Serial.println(var2); // --> gibt auch "1" aus |
- | a=2; // weise "a" den neuen Wert "2" zu. --> b wird dadurch nicht verändert. | + | var1=2; // weise "var1" den neuen Wert "2" zu. --> var2 wird dadurch nicht verändert. |
- | Serial.println(a); // --> gibt "2" aus | + | Serial.println(var1); // --> gibt "2" aus |
- | Serial.println(b); // --> gibt immer noch "1" aus | + | Serial.println(var2); // --> gibt immer noch "1" aus |
</code> | </code> | ||
So sind auch Ausdrücke möglich, die mathematisch keinen Sinn ergeben würden (bzw. eine "falsche Aussage" wären) | So sind auch Ausdrücke möglich, die mathematisch keinen Sinn ergeben würden (bzw. eine "falsche Aussage" wären) | ||
<code c++> | <code c++> | ||
- | int i; // deklariere Variable "i" | + | int var; // deklariere Variable "var" |
- | i = 1; // weise "i" den Wert "1" zu. | + | var = 1; // weise "var" den Wert "1" zu. |
- | i = i + 1; // nimm das, was gerade in "i" steht, addiere dazu "1" und speichere das Ergebnis wieder in "i" | + | var = var + 1; // nimm das, was gerade in "var" steht, addiere dazu "1" und speichere das Ergebnis wieder in "var" |
- | Serial.println(i); // --> gibt "2" aus | + | Serial.println(var); // --> gibt "2" aus |
- | i = i + 1; // nimm das, was gerade in "i" steht, addiere dazu "1" und speichere das Ergebnis wieder in "i" | + | var = var + 1; // nimm das, was gerade in "var" steht, addiere dazu "1" und speichere das Ergebnis wieder in "var" |
- | Serial.println(i); // --> gibt "3" aus | + | Serial.println(var); // --> gibt "3" aus |
</code> | </code> | ||
Zeile 83: | Zeile 83: | ||
Ihr könnt die Initialisierung auch weglassen - dann steht in der Variable irgendein unvorhersehbarer Wert, der an dieser Speicherstelle vorher schon herumlag - (also **//nicht//** unbedingt Null!). | Ihr könnt die Initialisierung auch weglassen - dann steht in der Variable irgendein unvorhersehbarer Wert, der an dieser Speicherstelle vorher schon herumlag - (also **//nicht//** unbedingt Null!). | ||
+ | \\ | ||
+ | \\ | ||
==== Gültigkeitsbereich (Scope) ==== | ==== Gültigkeitsbereich (Scope) ==== |