一、變數命名規則
英文字母或_(底線)開頭
二、資料型別
資料型別 | 說明 | 範圍 |
bool | 8位元無號數 | 0~255 |
byte unsigned char | 8位元無號數 | 0~255 |
char | 8位元有號數 | -128~127 |
unsigned int | 16位元無號數 | 0~65535 |
short int | 16位元有號數 | -32768~32767 |
unsigned long | 32位元無號數 | 0~4294967295 |
long | 32位元有號數 | -2147483648~2147483647 |
mutex | 互斥程式碼 | |
string | 字串 | |
struct | 自訂結構 | |
Arrays | 陣列 |
注意 : NXT 不支援 float 與 double 等浮點數型別
修正 :
感謝 探奇自然科學教室 指正
NXT 1.0x版本的韌體的確不支援浮點數,但是1.2x版的韌體就已經支援浮點運算。
在新版BricxCC的編譯選項選擇"Automatic firmware version" 或 "NXT 2.0 compatible firmware"就可以使用浮點運算。
請參考http://forums.nxtasy.org/index.php?showtopic=5093&view=findpost&p=38693
三、運算子
- 1.算數運算子:
符號 | 功能 | C++運算式 | 數學意義 |
+ | 加 | a = x + y | a = 5 + 3 |
- | 減 | a = x - y | a = 5 - 3 |
* | 乘 | a = x * y | a = 5 * 3 |
/ | 除 | a = x / y | float a; a = 5 / 3; (結果a=1) a = 5.0/3; |
% | 取餘數 | a = x % y | a = 5 / 3 的餘數 |
++ | 遞增 | a = x++(先指派再遞增) a = ++x(先遞增再指派) | a = 5++ (=6) |
-- | 遞減 | a = x-- a = --x | a = 5-- (=4) |
- 2.指定運算子:
運算子 | 功能 | 實例 | 結果 |
= | 指定 | i = 2 | 變數i的值為2 |
+= | 相加後再指定 | i +=2 相當於(i=i+2) | 變數i的值為7 |
-= | 相減後再指定 | i -=2相當於(i=i-2) | 變數i的值為3 |
*= | 相乘後再指定 | i *=2相當於(i=i*2) | 變數i的值為10 |
/= | 相除後再指定 | i /=2相當於(i=i/2) | 變數i的值為2.5 |
%= | 餘數除法後再指定 | i %=2相當於(i=i%2) | 變數i的值為1 |
^= | 做XOR運算後再指定(逐位元) | i ^=2相當於(i=i^2) | |
&= | 做AND運算後再指定(逐位元) | i &=2相當於(i=i&2) | |
= | 做OR運算後再指定(逐位元) | i =2相當於(i=i2) | |
<<= | 左移指定運算 | i<<=2相當於(i=i<<2) | |
>>= | 右移指定運算 | i>>=2相當於(i=i>>2) |
其餘請參考 BricxCC安裝目錄中的Documentation\NXC_Guide.pdf
四、讓您的NXT隨意散步
task main()
{
int run_time = 0; //宣告一個整數變數,名為run_time,其初值為0
string name = "simfonia";
run_time = (3+ Random(6-3))*1000; //隨機取 3~5秒
OnFwd(OUT_BC,80); //設定B、C port 的馬達以80%的Power正轉。
Wait(run_time); //等待 run_time 秒
run_time = (1+ Random(4-1))*1000; //隨機取 1~3秒
OnRev(OUT_C,80); //設定C port 的馬達以80%的Power反轉。
Wait(run_time); //等待 run_time 秒
run_time = (3+ Random(6-3))*1000; //隨機取 3~5秒
OnFwd(OUT_BC,80); //設定B、C port 的馬達以80%的Power正轉。
Wait(run_time); //等待 run_time 秒
Off(OUT_BC); //關掉B、C port 的馬達電力,並剎車。
}
關於 Random(x) 函式:
Random(x)是NXC API 中的一個數學函式,它隨機傳回 0 ~ x 之整數值(可等於零,但小於 x )。
0 <= Random(x) < x
=> 0 <= Random(y-x) < y-x 同加上 x
=> x <= x + Random(y-x) < y => 可隨機傳回 x ~ y (小於y)之整數
你好:
回覆刪除NXT 1.0x版本的韌體的確不支援浮點數,但是1.2x版的韌體就已經支援浮點運算。
在新版BricxCC的編譯選項選擇"Automatic firmware version" 或 "NXT 2.0 compatible firmware"就可以使用浮點運算。
請參考http://forums.nxtasy.org/index.php?showtopic=5093&view=findpost&p=38693