Benutzer-Werkzeuge

Webseiten-Werkzeuge


einleitung:variablen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
einleitung:variablen [2018/04/27 20:05]
d.golovko [Variablen sind das Gedächtnis eines Programms]
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*), oder ein komplexere ​'Objekte' ​(eine Serielle Schnittstelle oder Motortreiber ​z.B.). ​+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 ===
 Unter diesem Namen kann die Variable im Programm verwendet werden. Groß- und Kleinschreibung macht dabei einen Unterschied. Unter diesem Namen kann die Variable im Programm verwendet werden. Groß- und Kleinschreibung macht dabei einen Unterschied.
Zeile 45: 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. --> ​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
-= 1;        // weise "i" den Wert "​1"​ zu. +var = 1;        // weise "var" den Wert "​1"​ zu. 
-+ 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 
-+ 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 82: 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) ====
einleitung/variablen.1524852317.txt.gz · Zuletzt geändert: 2018/04/27 20:05 von d.golovko