Programmieren von LegoMindstorms-Robotern mit NQC
Programmieren von LegoMindstorms-Robotern mit NQC
Programmieren von LegoMindstorms-Robotern mit NQC
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
5. Steuerbefehle<br />
<strong>Programmieren</strong> <strong>von</strong> LEGO-MindStorms- <strong>Robotern</strong> <strong>mit</strong> <strong>NQC</strong><br />
In den vorhergehenden Kapiteln lernten wir die repeat - und while – Befehle kennen. Diese Anweisungen steuern die<br />
Art und Weise, wie die anderen Anweisungen im Programm durchgeführt werden. Sie werden " Steuerbefehle" genannt.<br />
In diesem Kapitel lernen wir einige andere Steuerbefehle.<br />
5.1. Die if - Anweisung<br />
Manchmal möchte man, dass ein bestimmter Teil eines Programms nur in bestimmten Situationen ausgeführt wird.<br />
In diesem Fall findet die if- Anweisung Anwendung. Betrachten wir das an einem Beispiel:<br />
Wir ändern wieder das Programm, das wir bis jetzt bearbeitet haben, aber <strong>mit</strong> einer Neuerung. Wir wollen, dass der Roboter<br />
geradeaus fährt und dann plötzlich eine Links- oder Rechtsdrehung durchführt. Dazu benötigen wir wieder unsere<br />
Zufallszahlen. Wir wählen eine Zufallszahl zwischen 0 und 1 aus, d.h. sie ist entweder 0 oder 1.<br />
Wenn die Zahl 0 ist, soll der Roboter rechts herum fahren, andernfalls links herum.<br />
Ist hier das Programm:<br />
#define MOVE_TIME 200<br />
#define TURN_TIME 160<br />
task main()<br />
{<br />
while(true)<br />
{<br />
OnFwd(OUT_A+OUT_C);<br />
Wait(MOVE_TIME);<br />
if (Random(1) == 0)<br />
{<br />
OnRev(OUT_C);<br />
}<br />
else<br />
{<br />
OnRev(OUT_A);<br />
}<br />
Wait(TURN_TIME);<br />
}<br />
}<br />
Die if- Anweisung ähnelt der while – Anweisung. Wenn die Bedingung zwischen den Klammern ( ) zutrifft, wird der<br />
Teil zwischen den Klammern { } durchgeführt. Andernfalls wird der Teil zwischen den Klammern { } nach dem Wort<br />
else durchgeführt.<br />
Betrachten wir die Bedingung innerhalb der Klammern ( ) nach der if- Anweisung etwas genauer:<br />
Sie heißt Random(1) == 0. Dies heißt, dass Random(1) gleich 0 sein muß, da<strong>mit</strong> die Bedingung zutrifft. Vielleicht<br />
wunderst du dich , warum wir == benutzen, anstatt =. Da<strong>mit</strong> soll die Bedingung <strong>von</strong> einer Anweisung unterschieden<br />
werden, bei der einer Variablen ein Wert zugewiesen wird.<br />
Werte können auf unterschiedliche Weise unterschieden werden:<br />
== ist genau gleich<br />
< kleiner als<br />
größer als<br />
>= größer oder gleich<br />
!= ungleich<br />
Du kannst die Bedingungen <strong>mit</strong> && untereinander kombinieren, was “und” bedeutet, oder <strong>mit</strong> ||, was “oder” bedeutet.<br />
(Den |-Strich errreichst du <strong>mit</strong> der Tastenkomination Alt Gr und >= 5) && (ttt