\b;Variablen
Eine Variable ist wie in Behälter, in dem Sie verschiedene Informationen speichern können. Der Inhalt einer Variable kann während der Ausführung eines Programms ändern.

Nehmen wir an, Sie wollen die Anzahl Titanerzbrocken zählen, die ein Transporter eingesammelt und zum Konverter gebracht hat. Zuerst müssen Sie einen Namen für die Variable finden: Dieser sollte nicht zu lang sein, den Zweck der Variable aber gut erklären. Nennen wir sie \c;countTit\n;. Diese Variable muss nur ganze Zahlen enthalten, also wählen wir den \l;Typ\u cbot\type; \c;\l;int\u cbot\int;\n;. Zu Beginn des Programms müssen Sie die Variable deklarieren. Anschließend setzen Sie den Wert der Variable auf \c;Null\n;. Jedes Mal, wenn der Roboter eine Titanerzbrocken ergreift, erhöhen Sie den Wert der Variable um \c;1\n;. So enthält die Variable jederzeit die Anzahl vom Transporter eingesammelter Erzbrocken.

Um die Variable zu deklarieren, schreiben Sie folgende Zeile: 
\c;\s;	int  countTit;\n;

Um den Wert der Variable auf \c;0\n; zu setzen, schreiben Sie:
\c;\s;	countTit = 0;\n;

Jedes Mal, wenn ein Erzbrocken eingesammelt wird, schreiben Sie:
\c;\s;	countTit = countTit + 1\n;

Bei der Wahl der Variablenamen haben Sie viel Freiheit, hier sind Beispiele von möglichen (aber nicht unbedingt sinnvollen) Namen: \c;dist\n;, \c;direct\n;, \c;p2\n;, \c;a\n;, \c;x\n;, \c;geben_sie_8\n;, usw.
Ein Variablenname muss immer mit einem Buchstaben anfangen. Anschließend kann er eine beliebige Folge von Buchstaben, Zahlen und Unterstrichen \c;_\n; enthalten. Die Namen der Anweisungen in CBOT wie \c;\l;for\u cbot\for;\n;, \c;\l;while\u cbot\while;\n;, \c;\l;break\u cbot\break;\n;, \c;\l;continue\u cbot\continue;\n;, \c;\l;do\u cbot\do;\n;, usw. können Sie natürlich nicht für Variablen benutzen.
Überlegen Sie sorgfältig, welchen Namen Sie Ihren Variablen geben. Halten Sie sich am besten an die international gültige Konvention der meisten Programmierer, eine Variable immer mit einem Kleinbuchstaben anfangen zu lassen, keine Unterstrichen zu benutzen, und jedes neue Wort mit einem einzigen Grossbuchstaben anfangen zu lassen, z.B. \c;neuesZiel\n;. Nach und nach werden Sie Ihr eigenes System entwickeln, wie Sie Ihre Variablen nennen, damit Sie sie leicht behalten können. Benutzen Sie auf jeden Fall keine Namen wie \c;Bmo45\n;, \c;a\n; oder \c;tgBinX\n;.

Im oben genannten Beispiel gibt der Typ \c;int\n; an, dass diese Variable nur ganze Zahlen enthalten kann, was für das Zählen von Objekten durchaus angemessen ist. Wenn Sie jedoch z.B. eine Distanz messen wollen, benutzen Sie einen Typ, der auch Kommazahlen enthalten kann (wie z.B. 3.45 der 0.076), benutzen Sie also den Typ \c;\l;float\u cbot\float;\n;.

Eine Variable besteht also insgesamt aus drei Teilen:
1) dem Namen
2) dem Typ der gespeicherten Informationen
3) dem Inhalt, d.h. der Information selbst.

\t;Der Name
Sie müssen jeder Variable einen Namen geben, um sie voneinander unterscheiden zu können.

\t;Der Typ
Der \l;Typ\u cbot\type; bestimmt, welche Art Informationen die Variable enthalten kann. Entsprechend dem Typ kann sie eine ganze Zahl, eine Kommazahl, einen String, die Koordinaten eines Punktes oder die Informationen über ein Objekt enthalten. Hier ist eine Liste der geläufigsten Variablentypen:
  o  \c;\l;int\u cbot\int;\n; für ganze Zahlen (12, -500, usw.)
  o  \c;\l;float\u cbot\float;\n; für Kommazahlen (3.14, 0.2, -99.98, usw.)
  o  \c;\l;string\u cbot\string;\n; für Strings ("Hello!", "Objekt nicht gefunden", usw.)
  o  \c;\l;point\u cbot\point;\n; für eine x,y,z-Koordinate im Raum
  o  \c;\l;object\u cbot\object;\n; für die Informationen über ein Objekt (Roboter, Gebäude, usw.)

\t;Der Inhalt
Der Inhalt einer Variable ist eine Information, deren Art dem Typ der Variable entsprechen muss. Der Inhalt kann während der Ausführung des Programms wiederholt ändern.

Nachdem Sie eine Variable deklariert haben, enthält sie noch keinen Wert. Bevor Sie den Inhalt der Variable benutzen können, müssen Sie eine Information darin speichern: 
\c;\s;	int  i, j;
\s;	j = 25;  // j enthält den Wert 25
\s;	j = i;   // das können Sie nicht schreiben,
\s;	         // da i noch keinen Inhalt hat.
\n;
Sie können auf der gleichen Zeile eine Variable deklarieren und ihr einen Inhalt zuweisen: 
\c;\s;	int  countTit = 0;
\n;
Wenn Sie einer Variable mit dem Gleichzeichen \c;=\n; einen Inhalt zuweisen, wird der Wert rechts vom Gleichzeichen in die Variable links vom Gleichzeichen kopiert, z.B.: 
\c;\s;	int  i, j;
\s;	i = 5+2;  // i enthält 7
\s;	j = i+6;  // j enthält den Wert von i plus 6, also 13
\s;	i = j;    // i enthält den Wert von j, also 13
\n;
Am Ende dieses Beispiels enthalten beide Variablen \c;i\n; und \c;j\n; den Wert \c;13\n;.

Folgende Zuweisung ist nicht korrekt, da auf der linken Seite des Gleichzeichens \c;=\n; nur der Name einer Variable, jedoch nicht eine ganze Berechnung stehen kann:
\c;\s;	i+2 = j;  // unmöglich
\n;
Wenn Sie den Inhalt von zwei Variablen miteinander vertauschen wollen, brauchen Sie eine dritte Variable als Zwischenspeicher. Hier ist ein Beispiel, in dem der Inhalt der zwei Variablen \c;a\n; und \c;b\n; vertauscht wird:
\c;\s;	int temp;
\s;	temp = a;  // erhält den Wert von a
\s;	a = b;     // der Inhalt von b wird in a kopiert
\s;	b = temp;  // der Inhalt von temp wird in b kopiert
\n;
\t;Siehe auch
Die \l;CBOT-Sprache\u cbot;, \l;Variablentypen\u cbot\type; und \l;Kategorien\u cbot\category;.
