|
|
NXT-G數學運算的過去
9 r% `7 i$ U2 M J+ b8 w9 q' m+ S1 x. K/ e
4 d0 b+ a7 J- @) C2 a當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,: F$ Y! R1 m* b8 A% `
4 {) r0 v$ C+ C3 y2 r8 N
雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,; r, Z+ J, z6 S( T: B
! L! t5 x; t" v- c, B% _但還是讓大家非常不習慣,特別是當除法需要保留小數時。
9 M8 \. a+ r% S/ v2 n2 s5 A4 i$ W, z7 u6 g9 p2 N# i' B
後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。
5 b! R2 G3 `4 A4 P
, X8 O$ z% @2 [! x% w這時反倒有一些狀況需要整數運算,但是卻無法使用。5 {' z6 \; v& u. I
+ M% e8 H) E* k3 w
例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,
4 P; b9 ?" ]: g) ^6 E) ^# S/ G4 L& m- i! i
如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,
0 w1 N. z2 V3 F/ X
8 n2 L6 L' Y$ ^* Y+ _6 c* w但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。
& R& C0 W# F3 L9 ~2 x' A; Z% O" t3 y7 ~0 g: K. N( R4 m \- \
) Y& C) m2 T7 c
舊版整數數學運算3 d/ q0 E* \7 k7 R" D
* X `& G" }1 d2 Q- m4 i4 `
# M' ?, J9 a- W! h4 U2 W
其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。0 \+ l5 H) g7 Z: Q; l
$ [, u2 V' ]( Y% i為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。
2 a. p2 s1 ^ @7 K. o0 @$ m+ o9 C0 ^) [. e+ s6 \
如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。
2 B# f! ?8 U, c. _4 B) Z
2 I1 Q* m" P6 R# L" @' G7 G( q( v2 B& @: i5 Q) e0 F1 X. @# [( A
4 _0 a; U9 N) V1 Z$ {" s
! V7 y: U( z% a5 o( q8 d剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。& U+ f! X2 B8 Y/ y' b" l+ [
4 Y% S# e: P( E/ J新增命令方塊後的命令面板如下:
& B4 B; A+ S+ s3 W9 R) n- k/ |2 b2 w1 s

# c' j5 Y, z, r- N
1 U* F& p4 V6 O9 G4 w: M請使用檔案總管開啟NXT-G軟體目錄,
( g! C/ @! j# R; X7 a0 c# A" y1 r! l+ g" D2 {" g& s! u6 Q/ Q
C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry
6 |5 q8 g H* L. e1 I( n- i9 ^& g& k5 S" {" S/ |5 o
在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』
1 w- g" O. H5 H/ j- b& r# X- j% U) c* s) u& S" ]* V% @
根據Team Hassenplug的說明,你還可以新增其他命令方塊,. Y" [ b. z- S6 e8 O% y
% H1 t, `" a/ u0 _. @+ X
可以新增的命令方塊列表在下面目錄中:/ q6 H0 f: t2 b C
# ?& O8 [- g4 ?7 T* X& C' d. |
C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\
; `" j8 P6 g0 t n' [% r) P# x+ p( F* w) v9 u
(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊)0 F! m/ Z) x5 B4 i+ i
- X+ C N1 Z. A& q+ n+ v6 h/ F7 q8 P1 s- f
使用測試結果! H; A" [; t9 {/ n; Q% }* B8 Z
. E5 C5 k. ?2 f3 k, i/ I" ~$ w
探奇寫了一個程式測試使用結果,
8 s( o4 n9 I6 F* U( R0 ^5 `8 ]. F
上半部使用新版的數學運算,100/3=33.333( H. Q) m6 J7 [" Y5 H* c
5 u4 R( H, C7 u) W3 V T; J2 ~下半部使用舊版數學運算,100/3=33
" [9 x8 X/ v2 g* |+ p. d# s/ ?" C, E7 x3 V& X

8 S, t7 [) {+ O/ g1 t, ?! Q; I; K4 ^, }9 I" O: H0 V/ K8 ?- j# Z& |4 n4 v
有整數運算需求的讀友不妨試試。 |
|