|
|
NXT-G數學運算的過去
! y6 @: K/ Z, | |+ H3 @1 F0 a b9 G
9 |3 i* v% a' u6 o, X% |當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,
) u b9 v6 s) R& s. y H0 S' o; J' r. W X( O# s% x, G. C: I5 a- D. i
雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,! m5 d' z) Y1 }; Y7 y" L: J
1 K$ G2 j+ M5 p
但還是讓大家非常不習慣,特別是當除法需要保留小數時。
* v( x- X# `# [! m5 E9 P7 l7 G) w# N {/ m
後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。% z, {5 e5 ?5 _8 Y
5 p3 y+ L& v" \
這時反倒有一些狀況需要整數運算,但是卻無法使用。$ i" c- k& `: m3 A
+ i/ L) m' K. E; X- p1 i
例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,
! X4 V0 i" D# k( Q2 y" ?2 x
* ]! Y& M. e* }8 S: ]1 ~如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,6 ]! B8 H `; T1 n5 N8 i2 H
/ M& \4 x3 l, G2 ^8 @
但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。 Q& d4 r$ n& _
! ]0 }8 B2 K& ?) l2 {/ ^4 G0 u1 Y. s2 Q( j
舊版整數數學運算
9 a( A8 @1 m8 m, s+ `/ g: m! [6 R
: X9 z- Q! w8 X" @4 j# q) M: X$ m# b5 r6 ~ b
其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。
; R0 m4 |# ]8 Q( \: X4 w
5 c1 r9 s7 z2 n' B為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。 t% Q$ {; C& I a, T: O" V
$ E# ^8 J9 Q9 z& ]' V: D如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。
' v7 ?+ Z! v' X! @6 H
! q- F3 H6 C! s
. l: X8 a8 }0 P4 R: |( A3 f- k
* N! H1 h- C: J8 H E; y0 l* v1 J# a# H& f. O b M0 j* l# B
剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。
) L3 T5 I h1 A! H- w0 B/ c
$ i6 I' H- x+ c& M. [% \新增命令方塊後的命令面板如下:
* C( x8 x7 W* e* m }1 w% p. }, q" f$ B+ n# c* V$ `2 P/ F4 C! o
. k& u- |7 G7 e- J5 M4 v
% N0 ^( }" P. L: @% f請使用檔案總管開啟NXT-G軟體目錄,+ O7 T$ k2 N: T/ e* C# {8 F
* z! ` ]6 q- rC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry& W3 }. r6 ?' `! ]* p s9 P
5 u) K+ U: D* d6 Z
在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』( B, m, E% O: f' b$ M4 ]- M
Z; s" N9 u G- n0 ]7 j
根據Team Hassenplug的說明,你還可以新增其他命令方塊,
7 b( h0 G2 t: \5 ]- \! l4 Q( |1 Y# C/ l5 D
可以新增的命令方塊列表在下面目錄中:) B9 B' ~. J1 G+ `; o
8 P8 _( h* C9 C4 p- ~
C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\
# O0 S; u' S. l0 X+ S J Z+ l, a! y3 K }/ O
(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊)1 n7 I) W3 x8 {# ^& M/ ]' [# H( y
" |- @0 Z) K# C8 |
' i% {$ S8 f9 m; `0 z, x0 E
使用測試結果
4 Z9 V; s! @ X7 ~% W! n: o, s; G5 O9 t9 Y
探奇寫了一個程式測試使用結果,4 _6 r5 \$ M7 s5 B
6 k) M% ^, S1 g" g上半部使用新版的數學運算,100/3=33.333
' E! p1 k, R/ M7 x' o, B9 A c q1 A4 p( e
下半部使用舊版數學運算,100/3=33
2 A+ f. W: Q9 k+ U. d/ V* e2 u! H+ s4 Z
# T9 Z7 x E9 U% t/ m
$ V! a, E" C9 f& V# w5 A) ^% O
有整數運算需求的讀友不妨試試。 |
|