|
NXT-G數學運算的過去- @2 [; a* G' G" ]1 Q' Q/ N! @
9 z' p0 w7 q1 A
0 H, a$ H$ z& l _* \當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,
3 I+ P: }. @) F2 j
" b3 M w, }* W7 U5 E9 l6 W雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,# l2 x+ k* o0 H( L5 o
) Q) Y7 H8 u1 K( [但還是讓大家非常不習慣,特別是當除法需要保留小數時。" q. Y' p' _" Z. ~! Q+ j4 |
7 B$ p. s1 \; }/ @. U後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。- G, r" n& n- I$ j$ c8 Y: R
& m# B# r, W- W; B# J$ c這時反倒有一些狀況需要整數運算,但是卻無法使用。* c( E& o- f. s' x& r6 Q/ }
* Q G# a8 Q; H9 }7 y
例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,: H# e; r( _' [
: @3 V2 n Z& X- y5 [$ z/ c
如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』, ~# m) S$ Z) {, D. f
0 P( R7 F' Y' J# E* x6 N4 I0 H
但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。$ ?: C* v7 K0 z6 u6 F( }# P' t& q
. O0 x7 ^; G7 V% g$ {
2 ^! G5 k$ `% ?4 J; N j( O2 x& l
舊版整數數學運算# i- L7 u0 T2 p0 u7 M: B6 G$ [4 g4 A
; w6 U8 ]7 F) w }) b! p
$ ]: K. }8 h" i% w
其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。
" H" Y$ k' `+ B+ |- C' e( ? t) L; Q3 C4 i4 J
為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。: ~3 X+ x7 n, U) Q: a3 X
( j2 O. H* z4 H! r9 E如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。
$ M' m+ N* j& G5 g0 i% @
, p) ^$ E# d3 _) c6 i" l: G' \* _% ~/ u6 b( z+ t* }' Y+ U

0 [" m7 r# X9 t( k3 s0 d; `7 Z, ~7 e5 l
剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。
1 q) p! P. T0 Y7 r4 O* T8 J6 G' K! D5 h1 b* m
新增命令方塊後的命令面板如下:# a! c9 C9 M, e" q% J( w
# |0 P! v) @3 i, b4 E$ O( y4 F
$ F9 B% j& @; p" S9 I3 {
! v- ~0 a6 o* t! t( S. ^請使用檔案總管開啟NXT-G軟體目錄,) H0 e* h7 a# k: W% B5 `
! O# w W! \6 {4 M5 u0 |C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry6 P6 u. ~! p5 L+ [) P
2 t7 |/ [: y) r, m# B5 o3 J
在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』% S/ p" @0 U: g
. T. S3 u+ x8 I0 ^' d% B( u, @' {0 z
根據Team Hassenplug的說明,你還可以新增其他命令方塊,
8 `) X2 V. q" G; s9 D: t
, b' G' M: r6 C2 p; {) w5 F: G. z3 N4 v可以新增的命令方塊列表在下面目錄中:5 D; ]7 O9 p z2 h2 W
, C8 d: Q& d. M |" YC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\7 O+ v* T8 J+ n# u, |6 ~
/ ]& X0 L3 u# i/ N& d$ n(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊)
' P# X$ M" @7 `
4 [9 t( {/ J2 @0 ?0 i" c" x5 E- f, ]5 U5 t* k
使用測試結果
+ ~. d0 ^- ~4 v* O4 a& E
8 @/ X7 O$ q$ z# b1 c5 ?探奇寫了一個程式測試使用結果,& y) S/ Y+ B0 z8 `
, q E' L, X1 c/ }
上半部使用新版的數學運算,100/3=33.3339 r! j! d6 {9 J) z0 m; R
" F8 ]6 H% k3 }6 J
下半部使用舊版數學運算,100/3=335 G$ m+ X1 C# Q: G/ d: k* s$ ]
2 [* \" n' D/ ?: U 2 ]1 c. e2 L w0 }+ j; \
% Z/ s; G. g! V. J) `5 T4 e有整數運算需求的讀友不妨試試。 |
|