|
|
NXT-G數學運算的過去! r7 Q$ _& l3 K }# G
9 G' n# v2 s% I- j7 s5 |$ h
/ [% |: i5 _) Z5 N當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,
% r1 }- x ^4 S \5 x8 ]" U0 g* X4 w7 M1 r- g/ S/ b# Q) u: H
雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,
" `! E9 W) `9 b9 l( \1 d* ^
+ f7 {0 u* j/ ^) p- W6 @/ H但還是讓大家非常不習慣,特別是當除法需要保留小數時。
6 M" S/ f% e$ J: k# c' ^5 t( N$ b' C u
後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。- n7 |6 _8 L C9 r3 t+ E7 a F9 g
6 \2 r! O4 L) d4 e* @3 W- F) b這時反倒有一些狀況需要整數運算,但是卻無法使用。
) s1 w6 z$ J$ B; h0 G! U, M
* y" J: F6 E3 R/ i例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,! |: F# P2 s' w: p8 ~# g$ e3 W
; U2 X, j. d K, |% C如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,: r5 ^: h' T) J- T A5 T x' a1 A
+ j$ T% r/ X/ W2 j但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。0 j2 b1 C6 L! {: c& }7 A
0 y- [' r0 m. h G8 l6 G* T
1 p. l; h! j$ b4 s0 f) ^舊版整數數學運算; h6 h( ?- \( ^$ g5 o
. i, q4 ]% J0 G0 X6 o; Y
2 w3 ~- i) `; H% G! p其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。
7 j% ~6 e8 s3 F" h0 f
$ K2 X' Y; p' a9 }$ f3 D為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。( X# B$ Z7 G/ J2 d. I$ ~ J3 D
/ y P7 T) G' c3 B; ^5 @* V! ]; s
如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。0 \1 ^4 I: D6 `; e) E
1 N3 Y* s1 Q6 l! |6 L9 v
2 j2 q1 C9 Y- ? Q
0 W* g' c1 @! y# j, D5 a; b! b8 T7 F; K- f+ J; g8 w8 r
剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。
6 h) U0 l$ q: U3 T! o" @
/ m; S5 t$ `% n新增命令方塊後的命令面板如下:
! a7 q; [2 T( }6 R S0 n
# q6 r/ c$ c/ u5 U. a. W; [8 i5 { . H/ N& |4 M$ j" \6 ~
2 k4 R" O; H6 z請使用檔案總管開啟NXT-G軟體目錄,8 j+ Y; T2 B7 _
, ^& ]* R& v f3 gC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry# ?5 W) f( d" b# e! b& P
! o3 N& K0 f k在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』
! C' o$ a9 {. m: f/ u5 G/ G: ~ H7 y$ R) d1 B; A
根據Team Hassenplug的說明,你還可以新增其他命令方塊,
, W+ ]) G9 n' v& i2 G
& ~2 v4 A9 F' c6 {: j1 T可以新增的命令方塊列表在下面目錄中:
1 ?7 Q* a& m {. B5 s; H5 z
' o6 ?2 |6 \# @& H! y/ lC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\' ^3 h6 X9 r, I
% l# d/ E: g% `5 ]+ z
(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊)
8 o7 C! k1 Q. f2 C: ~! g
1 Y. j3 I. z v
+ s6 V2 F4 C6 s6 r2 i1 @2 B3 U. r使用測試結果9 G" |/ W Q7 v/ ~9 G
1 x) L( Q7 O9 |) x9 s探奇寫了一個程式測試使用結果,
" f! T3 r1 ^) m. A7 f1 X G& g9 l9 R. C" A
上半部使用新版的數學運算,100/3=33.3337 }! X2 V$ h( ], Q: b) n
- R. ^1 G" E% n1 M/ z, M
下半部使用舊版數學運算,100/3=33
0 l# ^6 N$ U4 F* y
1 _$ D8 C4 d+ `: j 
: C1 B7 y# m. x& r# |: e0 _* @+ _- F6 t( T& E* n
有整數運算需求的讀友不妨試試。 |
|