|
NXT-G數學運算的過去8 n$ b5 e0 \+ }+ `0 k) A
' }8 Y. W' G0 M$ ~5 v* K% }7 r" T( h! O8 }4 K+ Z7 E
當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,
; |& s" a# O' c) d
4 u/ {7 I& |! S2 h9 i雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,4 A8 ^3 b# u% Q" n* G
2 g0 O1 a3 k9 r! q
但還是讓大家非常不習慣,特別是當除法需要保留小數時。% y" i) I6 d" _/ c
) x1 W/ [; D, Z' f; b) E. J
後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。
% L8 M% B0 R6 \+ |7 P' u, P* J# A! r) b1 O; H
這時反倒有一些狀況需要整數運算,但是卻無法使用。) i% ]( |/ Y; _
4 e: r" \- M* o7 T x- M
例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,
9 w+ P' E) s. L) ?: J' F7 e# s5 [6 O
如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,
3 J) Y9 y+ w7 l# [* j H- |
4 r' t* b/ r5 U' c" ]) v( o但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。
0 N6 s' n. G- c
6 H4 c: {6 K: h: T* ?5 k0 J. P; c' L4 g: A/ H, M5 w, q9 \" b
舊版整數數學運算5 p5 n$ X0 V5 g/ o+ b
) l7 @7 ]" d. D* G: S" m7 H: S) x0 w0 d, j3 g6 d0 ^! \
其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。
j; g, @7 e: B8 @- K8 B, ^
; m8 S/ A, M0 O8 x為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。) s/ x6 }; a/ X' W4 g7 U$ \' W
8 \$ C7 Q m" K& Z4 J9 `如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。
$ S, B# [( L; M; ^0 _8 j- Y2 O5 |4 O9 b2 L0 w
( M9 Z* h1 h' b9 z; ~7 ~9 f $ M3 x# {$ p4 z4 h7 U4 d0 s9 S
: h: Z f' l$ C: F. {: u
剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。+ U* \% D6 f0 j$ X
4 z# d8 j9 D9 _/ Z新增命令方塊後的命令面板如下:
* `% q6 O' N! C' P8 w3 j% @$ D( P1 j- e

9 c' `4 [; k, [0 x1 t/ h, B3 ?
: V/ P- s7 V t5 I- T, P請使用檔案總管開啟NXT-G軟體目錄,
' d4 r# G* m4 {5 }6 v! \" C) o/ s
! y# V, t. J0 N) y) T( KC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry
5 {% F' H/ n8 B: M- C8 u" j1 D, ]
0 I9 G; ]! ], V在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』9 o0 A1 V7 r2 o* J! E& A
/ u& O( `( @) J7 b
根據Team Hassenplug的說明,你還可以新增其他命令方塊,) i, K8 p& ~7 c& n1 C: g4 n
+ ~9 n$ s ]+ D) h1 ~/ C1 x% B& `
可以新增的命令方塊列表在下面目錄中:) r3 t9 l! Z' ~: `& `3 {
4 B0 s( W; [9 u/ w' k0 v8 K
C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\
+ A" F7 t3 V( u! c$ E' F7 y
7 J$ q. t- X, j7 _4 n$ D& K(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊). v/ A2 }$ a6 S8 P6 q
. j& D7 T6 N) j& {
" M2 P% Q0 ]! v/ r+ X使用測試結果
+ `0 [& \' `5 l
" h0 u, N& R1 n& V7 F探奇寫了一個程式測試使用結果,
; F, I$ B% B. j: i4 W
- Z" e$ M- J% K: u上半部使用新版的數學運算,100/3=33.333, ~0 W4 C. F& I L- a( h' ]
) V- R' \9 H+ T/ J! T2 n) C下半部使用舊版數學運算,100/3=33
! d6 K9 p" Y4 _& n6 K# N2 C8 u3 W' g
6 W3 l$ y- m) B) ]% Q
3 G- p( d& Z/ [" a3 d) l
有整數運算需求的讀友不妨試試。 |
|