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.

int aa;<br />

task main()<br />

{<br />

aa = 77;<br />

SetWatch (14,33);<br />

/* Setzt die Systemuhr auf 14 Stunden und<br />

33 Minuten (= 873 Minuten) */<br />

SetSensor(SENSOR_1,SENSOR_LIGHT); // Setzt SENSOR_1 als Lichtsensor<br />

CreateDatalog (10);<br />

/* reserviert einen Speicherbereich <strong>von</strong> 10 Plätzen<br />

im Datalog */<br />

AddToDatalog (123);<br />

// Überträgt den Wert 123 in den Datalog<br />

AddToDatalog (aa);<br />

// Übertägt den Wert <strong>von</strong> aa (=77) in den Datalog<br />

AddToDatalog (Timer(0));<br />

/* Überträgt den momentanen Wert des<br />

Systemtimers 0 in den Datalog */<br />

AddToDatalog (Random (100)); // Übertägt den Wert des Displays in den Datalog<br />

AddToDatalog (SensorValue(0)); /* Überträgt den Wert des Lichtsensors in den<br />

Datalog (im Makro SENSOR_1, RCX-intern aber<br />

Sensor (0) !! ) */<br />

AddToDatalog (Watch());<br />

/* Überträgt die Anzeige der Systemuhr in Minuten<br />

in den Datalog */<br />

AddToDatalog (Message());<br />

/* Übertägt den Wert der zuletzt empfangenen<br />

Nachricht in den Datalog<br />

Wenn kein anderer RCX eine Nachricht gesendet<br />

hat, ist der Wert 0*/<br />

SetSensor(SENSOR_1,SENSOR_TOUCH); /* Setzt SENSOR_1 als Berührungssensor,<br />

da<strong>mit</strong> die LED aus geht. */<br />

}<br />

Mathematische Operationen<br />

Werte können durch mathematische Operationen verknüpft werden. Viele der Operationen können nur in konstanten<br />

Ausdrücken verwendet werden. Das bedeutet, dass sie entweder selbst Konstanten sein müssen, oder der Ausdruck nur<br />

Konstanten enthalten darf.<br />

Sorry, leider habe ich auch hier nicht alle Eigenheiten durchschaut.<br />

Operator Beschreibung Bezug Einschränkung Beispiel<br />

abs()<br />

sign()<br />

Absoluter Wert<br />

Vorzeichen<br />

n/a<br />

n/a<br />

abs(-3) wird 3<br />

sign(-3) gibt -1<br />

++<br />

--<br />

Addition<br />

Subtraktion<br />

left<br />

left<br />

Nur Variablen<br />

Nur Variablen<br />

x++ or ++x<br />

x-- or --x<br />

-<br />

~<br />

Vorzeichenwechsel<br />

Bitwise negation (unary)<br />

rechts<br />

rechts<br />

Nur Konstanten -x<br />

~123<br />

*<br />

/<br />

%<br />

Multiplikation<br />

Division<br />

Modulo (ganzzahliger Rest)<br />

links<br />

links<br />

links<br />

x * y<br />

x / y<br />

123 % 4<br />

+<br />

-<br />

Addition<br />

Subtraktion<br />

links<br />

links<br />

x + y<br />

x - y<br />

><br />

Left shift<br />

Right shift<br />

links<br />

links<br />

Nur Konstanten<br />

Nur Konstanten<br />

123 > 4<br />

& Bitwise UND links x & y<br />

^ Bitweises XOR links Nur Konstanten 123 ^ 4<br />

| Bitweises ODER links x | y<br />

&& Logisches UND links Nur Konstanten 123 && 4<br />

|| Logisches ODER links Nur Konstanten 123 || 4

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!