|
|
NXT-G數學運算的過去 y( [; p; ?( s( d
8 X+ l$ i. ^& C9 z; s8 {/ h* J* m: F2 ^( o- I
當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,
G: m5 e+ J! s d: Y+ I2 S! {4 u0 I" K s( M4 k
雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,' O1 o4 d0 ?1 [+ r# H% k1 z
. F# L$ c) a3 C* p" E
但還是讓大家非常不習慣,特別是當除法需要保留小數時。9 F/ K# Q# M9 {2 `9 j
/ h! Y9 V' _1 p6 P+ ]
後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。
1 @9 W; L$ e3 `4 w9 Q
+ r, Z5 x" R! u0 D* p這時反倒有一些狀況需要整數運算,但是卻無法使用。+ B/ V+ e! ^! p( u. v7 M, G) r
+ g, L" h0 F- t例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,
4 _! F, i1 l6 P2 \3 z( i, O7 u0 R7 s/ {+ A; d. B' _
如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,
7 w$ C, X3 v Z9 m" x
) b' ?. i8 V2 A0 f' @但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。
+ X1 {4 u6 d' o( r' W) n/ E- e0 H6 a( q# r
8 ^- g" w7 h9 g7 H9 W. u5 Y. v舊版整數數學運算% F9 H% @, z0 V' R
2 k# k; T# I# Z6 N
: i1 ?1 O2 R7 x8 R8 @3 V: r" U其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。+ h6 k) o. g1 _- ?+ h% m# t- t
7 \, J. K, l: n% ~4 H5 K
為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。" I i) M) X$ n- O
$ D: o# D& `8 z% q9 L
如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。
T2 S( q g# {. g9 i1 \, ^ a
2 B% u& T9 V# e( W4 C9 g0 o6 M: B0 A4 [3 p- ^6 B' R: O

: r/ o6 S$ D( {# |5 @1 c: \; \9 c
5 P3 b+ A8 I( J' o0 k1 g5 t0 \剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。( A8 v' l8 C5 h" ?4 z5 M
4 }9 K0 Z" S7 v! `6 ^新增命令方塊後的命令面板如下:
$ Z( `( E- C; n" \, [
6 A; B. q3 A# e3 y* `
- {$ q1 o5 i$ E
6 W! H' `9 n \# |6 v4 l3 v請使用檔案總管開啟NXT-G軟體目錄,
9 R A. q3 ]- \" g" N M
9 D; ]7 n' C/ M& SC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry1 e5 M; I8 A& J% C. a
- `* V2 m# C. C- W5 F
在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』( n) |: t! [0 ?" g* p5 m7 ~
1 H6 n8 a" x) u4 [ I' _根據Team Hassenplug的說明,你還可以新增其他命令方塊,6 N( r9 x0 T& ^* B Y" ?% o
2 ]* q# M7 f8 x" R& k% P/ r9 y" S
可以新增的命令方塊列表在下面目錄中:
, |2 K- \% C. A2 ?# }
( K# y. a' y2 Z# M/ K# {% bC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\/ e% T1 F; S; z7 I/ P/ G: Q
# S2 U; _ K- x) j+ g4 E* k) P(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊)" G2 E; Q% T2 M! o; q
) V4 M3 f% v% x/ v8 a) G5 a
; P: e* |9 N0 w& o" _使用測試結果3 P2 m7 ~7 X. o
8 C* [6 a8 b& J/ z探奇寫了一個程式測試使用結果,7 [3 i _, `4 r3 A. E2 h$ o+ g8 t
+ c( J) W# [. x( ^* b
上半部使用新版的數學運算,100/3=33.333
6 O0 }1 u2 e6 Q* v& \
) J, H' V# v6 X9 J/ m下半部使用舊版數學運算,100/3=33
4 U5 ]- b3 M6 Z' @" e9 F+ J+ |" S% }% P, a" @. x6 n3 m7 v; f
Y3 W, f5 ]0 M, v: k% s d& m
% g8 `9 K/ ]+ S$ g1 n( {' b V有整數運算需求的讀友不妨試試。 |
|