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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

14.<strong>NQC</strong>- Befehle im Überblick<br />

<strong>Programmieren</strong> <strong>von</strong> LEGO-MindStorms- <strong>Robotern</strong> <strong>mit</strong> <strong>NQC</strong><br />

Hier siehst du eine Liste aller Statements, Bedingungen, Befehle und Ausdrücke des RCX. Die meisten wurden in den<br />

Kapiteln 1 bis 12 behandelt. Daher werden sie hier nur kurz beschrieben.<br />

Da das alles etwas schwierig zu verstehen ist, habe ich dir jeweils ein paar Beispiele für den RCX erstellt. Schreibe das<br />

Programm ab, übertrage es auf den RCX und laß’ es dann laufen. Übertrage anschließend den Datalog des RCX <strong>mit</strong> Hilfe<br />

des RCX-Command Centers auf deinen Computer und vergleiche die Ergebnisse. Verändere dann das Programm, rechne<br />

das Ergebnis aus, übertrage das Programm und überprüfe das Ergebnis des Datalog <strong>mit</strong> dem <strong>von</strong> dir berechneten. Wenn du<br />

das ein paarmal richtig gemacht hast, dann hast du die Funktion verstanden.<br />

Für weitere Informationen schaue bitte im <strong>NQC</strong>_Guide.doc nach, das allerdings in enschlischer Sprache verfaßt ist.<br />

Statements<br />

Statements sind Schlüsselworte, die ein Programm anweisen etwas zu auszuführen.<br />

Statement<br />

Beschreibung<br />

while (Bedingung) Anweisung Führe Anweisung nie oder solange aus, wie die Bedingung zutrifft<br />

do Anweisung while (Bedingung) Führe Anweisung einmal oder solange aus, wie die Bedingung zutrifft<br />

until (Bedingung) Anweisung Führe Anweisung nie oder solange aus, bis die Bedingung zutrifft<br />

break<br />

Unterbreche die Ausführung der while/do/until Anweisung<br />

continue<br />

Springe zum nächsten Durchlauf der while/do/until Anweisung<br />

repeat (Wert) Anweisung<br />

Wiederhole die Anweisung entsprechend dem Wert in Klammern<br />

if (Bedingung) Anweisung 1<br />

Führe Anweisung 1 aus, wenn die Bedingung zutrifft<br />

if (Bedingung) Anweisung 1 else<br />

Anweisung 2<br />

Führe Anweisung 1 aus, wenn die Bedingung zutrifft, andernfalls führe<br />

Anweisung 2 aus<br />

start task_name<br />

Starte die genannte Task<br />

stop task_name<br />

Stoppe die genannte Task<br />

Funktion(Argumente)<br />

Rufe die Funktion auf und übergebe dabei die Argumente (Zahlen)<br />

Variable = Formel<br />

Berechne Formel und weise den Wert Variable zu<br />

Variable += Formel<br />

Berechne Formel und addiere den Wert zu Variable hinzu<br />

Variable -= Formel<br />

Berechne Formel und subtrahiere den Wert <strong>von</strong> Variable<br />

Variable *= Formel<br />

Berechne Formel, multipliziere den Wert <strong>mit</strong> Var und weise ihn Var zu<br />

Var /= Formel<br />

Berechne Formel, dividiere Var durch den Wert und weise ihn Var zu<br />

Variable |= Formel<br />

Berechne Formel und erhöhe die Variable um ein Bit, wenn das Bitmuster<br />

der Variablen <strong>von</strong> rechts <strong>mit</strong> dem der Formel übereinstimmt 1)<br />

Variable &= Formel<br />

Berechne Formel und erhöhe die Variable um ein Bit, wenn das Bitmuster<br />

der Variablen <strong>von</strong> links <strong>mit</strong> dem der Formel übereinstimmt 1)<br />

return<br />

Kehre zur aufrufenden Stelle zurück (Dient dazu Unterprogramme vorzeitig<br />

zu verlassen, wenn z.B. eine if-Bedingung erfüllt ist)<br />

expression Einfach nur ein Ausdruck, wie x=5; oder nur ein ;<br />

1)<br />

kann ich leider nicht besser erklären. Vielleicht hilft dir das Beispiel auf der nächsten Seite weiter oder es findet sich ein<br />

Mathematiker, der mir da helfen kann.<br />

Beispielprogramm: (hier das Programm aus Kapitel 4)<br />

int aa;<br />

// Definition der Variablen aa<br />

int bb, cc;<br />

// gleichzeitige Definition der Variablen bb und cc<br />

task main()<br />

{<br />

CreateDatalog (10); //reserviere einen Speicherbereich <strong>von</strong> 10 Plätzen im Datalog<br />

aa = 10;<br />

// weise der Variablen aa den Wert 10 zu<br />

bb = 20 * 5; // weise bb den Wert 20 mal 5 = 100 zu<br />

cc = bb; // sezte cc gleich bb, cc wird also ebenfalls 100<br />

cc /= aa; // berechne cc / aa und weise das Ergenis cc zu, cc = 100/10 = 10<br />

cc -= 1; // ziehe <strong>von</strong> cc 1 ab und weise das Ergebnis cc zu, cc wird also 9<br />

aa = 10 * (cc + 3); // berechne 10 * (cc + 3), aa wird also 10 * (9 + 3) = 120<br />

AddToDatalog (aa); //füge aa dem Datalog hinzu<br />

AddToDatalog (bb); //füge bb dem Datalog hinzu<br />

AddToDatalog (cc); //füge cc dem Datalog hinzu<br />

}<br />

- 39 -

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!