|
NXT-G數學運算的過去
/ D6 X6 R# E V$ w- ~- C3 K8 [4 k" n! [$ g, o
; {" w3 {6 b' a f9 J
當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,/ q' i8 ]* {3 G; c* d1 |$ ]
" b, Q2 }5 s5 W- _" C: q
雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,) J9 V8 s# b- F2 [+ B% j. W
9 H& w+ f5 B1 {% T& x) _ L( d但還是讓大家非常不習慣,特別是當除法需要保留小數時。: ~! i& x2 L+ X
& O* Y; D3 A" k) {+ q
後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。
# L3 k, ?8 T: L9 j+ s7 N. T- `
/ c, ~& Y5 O2 i這時反倒有一些狀況需要整數運算,但是卻無法使用。
! Y$ ]4 ^6 U/ q# |
) i% G' ?+ A3 i" H/ C3 y例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,/ ]- e( y5 o+ i+ v! u, x
! F1 s/ `) b- C0 }% @* ]2 w! |如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,; ^) p' k4 Q# }7 _+ f, Y* P {( U
4 T# k3 L/ V/ x% n8 ~# H但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。5 D+ z- C( d0 w( ^4 K. {5 {) a
. ?4 P- k8 G7 Z; L7 D7 d( L0 U7 I
舊版整數數學運算
; g1 A1 _# j$ h3 L4 n$ y
4 K. d8 V- T$ A
6 d9 L- T5 i' b其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。1 J; Q8 v+ q5 u+ z X4 d
5 S% ?0 E7 t( G0 T) t為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。
. y; Q2 x5 g) m
+ |5 z* L9 r: l5 O/ V如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。# p/ L! v* I( _8 `
( B6 B$ f8 ]& X9 m
: T) L. S9 X% B0 A% d
4 D2 K1 a- v+ q7 x' d( ? M+ n
) z; p+ n: _3 D; O( I
剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。
2 O' v: ?7 D1 T- S8 Q8 i6 z
k0 m, c8 E! r% S新增命令方塊後的命令面板如下:
3 ~1 {$ T- f8 c0 y, E: ]
9 ]$ s4 O$ r# ^. O8 g2 d( r
3 k$ a# S. p$ V9 z5 b5 i$ x I( r9 `$ d0 ]& A: A
請使用檔案總管開啟NXT-G軟體目錄,
0 B" e- d+ ^' Z$ E9 H, j
& x) e$ E. F0 F5 |2 [$ i+ Q" JC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry
1 p! q0 ?* N5 P4 u4 V' m/ U8 @4 m. x4 a
在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』
/ ]" @) T' Q5 r% \: H# m9 v
$ I, m2 y; [* k( z3 q根據Team Hassenplug的說明,你還可以新增其他命令方塊,2 t8 g6 s# l; K* j2 }- e: |
- t0 ^ ^( g% R9 I可以新增的命令方塊列表在下面目錄中:. C7 w( v& L0 b: D: n3 {9 r% B
, `2 {# @ M/ I. m! I* B
C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\/ e" O+ W4 t0 H
9 B8 l" f) W2 Z
(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊) Y/ v$ t' l2 f7 g9 ^
3 N( [+ k% M; e; a6 J! w
1 s! @! M+ }) I! S使用測試結果% b( f/ a! B1 h* e1 g% S" {2 W# a5 ~
8 z% Z, o1 x# X6 w6 O! R* l探奇寫了一個程式測試使用結果,$ ]& S2 v/ S1 W2 q! }7 H& U V0 e! O
# B* h- M% V' a7 }3 u/ Y8 l0 x8 ]0 {上半部使用新版的數學運算,100/3=33.333 U1 ]9 Q+ H! o# y
; f. }1 v1 _! a+ b8 `! Q3 v# w下半部使用舊版數學運算,100/3=33
. \6 n& `6 ?4 t8 ~: w% ^* S: K- Z

' c' y" D: y! ?* b/ Z5 f: c, G/ |; a; C& S& t& ~
有整數運算需求的讀友不妨試試。 |
|