找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 11370|回复: 6

如何在NXTG 2.0下使用整数运算

[复制链接]
发表于 2012-9-24 22:02:15 | 显示全部楼层 |阅读模式
新版Math Block.jpg 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& ~
有整數運算需求的讀友不妨試試。
Math Block.jpg
數學測試程式.jpg
舊版Math Block.jpg
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-23 13:40:00 | 显示全部楼层
pyruvate 发表于 2012-10-23 13:18 % M1 h2 b. L9 I
哈哈,我搞定了
, \7 p0 b# P6 d+ p( h原来是我文件夹名字写错了
0 ]& ~6 v( H6 P6 {9 d* w
data,数据
5 b! u+ l8 u5 M1 cdate,日期
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复 1 0

使用道具 举报

发表于 2012-9-25 22:53:16 | 显示全部楼层
经测试后可用,感谢楼主告知我不知道的方法,原来还是用自己设计的block来解决这一问题。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-9-26 08:59:04 | 显示全部楼层
感谢楼主的好帖,学习了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-22 11:34:52 | 显示全部楼层
糖伯虎 发表于 2012-9-25 22:53
* e7 H% T1 c/ B$ B! r经测试后可用,感谢楼主告知我不知道的方法,原来还是用自己设计的block来解决这一问题。

7 N+ q7 ?- k" l# ?( o" L! O唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?2 r* v/ [2 X1 d- h

: h% ^* |( S0 x' L1 X照着做没反应诶
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-22 12:28:23 | 显示全部楼层
pyruvate 发表于 2012-10-22 11:34 ; s% U2 v$ G& P. @, T1 W/ {6 u6 x* I
唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?( [6 _. v1 @9 N5 O/ f
...

- Y$ q7 e. K2 p是的,文本名字有要对
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-23 13:18:21 | 显示全部楼层
糖伯虎 发表于 2012-10-22 12:28 1 c( P" d9 J( j2 A  G5 k5 ~6 L
是的,文本名字有要对
* e( h0 C1 Z0 I& Q
哈哈,我搞定了
# K% p! |+ t- F5 ~! _原来是我文件夹名字写错了( y. l& n5 k) H
) N! {7 _0 T, N% M7 w5 p
Data,我总记得Date......
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2025-10-8 21:04 , Processed in 0.966817 second(s), 21 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表