EasyManua.ls Logo

LEGO MINDSTORMS Robots

LEGO MINDSTORMS Robots
226 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
i = 0;
You can also assign input values to variables, like this (not part of the example):
i = SENSOR_2;
In the following line, one is added to the value in variable i:
i++;
This is really shorthand for the following:
i += 1;
The += operator, in turn, is shorthand for this:
i = i + 1;
Using #define for Constants and Macros
Constant values can be assigned meaningful names using #define. This is a idiom that will be familiar to C programmers. Here is an example:
#define POWER 5
task main() {
SetPower(OUT_A + OUT_C, POWER);
On(OUT_A + OUT_C);
}
NQC replaces every occurrence of POWER with 5 in your source code before compiling it. Although this may not seem like a big deal, it is; #define lets you create
Page 68
readable names for things that might otherwise be cryptic. It also lets you define things that might need to be adjusted throughout your program in one place. Your program, for example, might
have multiple places where it set the outputs to power level 5. Instead of explicitly putting 5 all the way through your program, you can use the constant value POWER. If you later decide you want
the power level to be 7, you just have to change the definition of POWER, instead of finding all the places in your program where the output power is set.
You can also create macros with #define. A macro is a kind of miniature program. Usually you'll define a macro for something you want to do frequently. The following program uses three
macros:
#define forward(power) \
SetPower(OUT_A + OUT_C, power); \
OnFwd(OUT_A + OUT_C);
#define left(power) \
SetPower(OUT_A + OUT_C, power); \
OnRev(OUT_A); OnFwd(OUT_C);
#define right(power) \
SetPower(OUT_A + OUT_C, power); \
OnFwd(OUT_A); OnRev(OUT_C);
task main() {
forward(OUT_FULL);
Wait(100);
left(OUT_HALF);
Wait(100);
right(OUT_HALF);
Wait(100);
Off(OUT_A + OUT_C);

Table of Contents

Related product manuals