22.11.2013 Aufrufe

Programmieren von LegoMindstorms-Robotern mit NQC

Programmieren von LegoMindstorms-Robotern mit NQC

Programmieren von LegoMindstorms-Robotern mit NQC

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!