找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 11886|回复: 6

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

[复制链接]
发表于 2012-9-24 22:02:15 | 显示全部楼层 |阅读模式
新版Math Block.jpg NXT-G數學運算的過去
  W" `! K1 C* X0 b
$ h1 f3 P5 j) _4 f1 I; `, \! C) c) G, p
當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,: o3 p/ h: W/ J% K# ~. E+ N

! G5 X* Z( d1 ~& q( F- G$ ?3 ?2 u* z1 l雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,
# g& l6 x/ F* e2 R! g! V! K3 B: N# ~6 O  f$ F
但還是讓大家非常不習慣,特別是當除法需要保留小數時。
/ H9 ^, {) M9 ]% V4 @2 @
0 n1 y3 g( {7 Z* s. H- [後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。
6 T1 _, ]+ I; N: @4 z8 t) w: q4 _- M. e& j5 G3 k  g
這時反倒有一些狀況需要整數運算,但是卻無法使用。7 y* t0 |% k$ L# A1 r5 }
! C9 C  m: G; w& C
例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,0 B8 Z8 c' I- `7 B9 L8 ?2 l

( c, Y0 T7 Q  z: U9 p. q* R/ w如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,
3 E/ t7 d2 E9 C. N/ d4 V
  z9 G' y' B# r7 P  Y: @/ W/ H但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。9 y% M& Q+ K2 w9 ?" a

) V; b  h5 l# f# _) y4 X! F7 j" ~% W; ~* B% v: n3 }9 f
舊版整數數學運算
$ Y1 n$ D7 T- q  I3 X) \/ P( h; I' W2 G0 U8 O) W
% w1 W1 N7 j0 b
其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。0 e" V) j: G% k  T3 E# w
# t8 I2 ?& T. D1 j- Q
為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。( L" V0 {, n& x/ v3 m* u
; M3 `3 r: h3 _9 X$ a
如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。
: i3 z+ B2 m* g0 P9 x
% `5 L' p+ L/ S$ e
% m* Z/ l" C8 }+ S. X9 ]5 b  M$ N7 G, m- _, D8 Y

' \" J: W; `; R3 C  ]; }剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。
, q1 {  N  i! i' j; ^- E/ _$ z% A) }
新增命令方塊後的命令面板如下:' W' W, X, S, W1 {: ]
. Z& w% _- Y& L6 q1 l) `
4 g8 j; z! }, t+ h2 M

3 y0 P- D& E  m6 P/ M9 O" ^+ N5 f, D請使用檔案總管開啟NXT-G軟體目錄,
$ V" G5 `7 R- r# o( l/ c# B
6 g: r. |2 X1 q) d9 ZC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry4 n5 ^, _0 H: P1 e; G

' v4 p; r9 X& X* u" d! g6 |在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』3 m. q- S9 }  K& B# b! P. f
+ Z& L* S3 i! }
根據Team Hassenplug的說明,你還可以新增其他命令方塊,* L8 U  U/ f5 i! o2 W
$ ?3 ]4 P! M1 c' g
可以新增的命令方塊列表在下面目錄中:+ L2 ^$ n9 X! Z4 T
0 V0 b5 L5 X! q" W; O
C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\
: ], I, M6 i0 {1 J1 u* X" A: s
+ q  p& j6 S  `/ M( w5 [) E(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊)# R5 J, y8 ~! ~6 i& e
3 E5 b+ u4 }! `$ W1 h. `
+ Z! j, V8 [: K9 [/ V
使用測試結果1 k( b- I$ n! `0 Q
# y, e. Q8 A0 I1 L# c; m- f
探奇寫了一個程式測試使用結果,- ?+ R% }* S5 X

0 `6 D! B/ e: k8 a) C! O4 y1 p上半部使用新版的數學運算,100/3=33.3338 I6 l: k  j2 g+ d: j$ L5 i$ |

* C! b5 n- e7 Q% l( H. a下半部使用舊版數學運算,100/3=33/ o% {) K; ]1 d1 J9 ^1 l
$ f  T1 Z6 \' L1 q" n
# Y2 v  \$ R9 ~: F

  `$ P$ `& |4 x# Y, v有整數運算需求的讀友不妨試試。
Math Block.jpg
數學測試程式.jpg
舊版Math Block.jpg
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-23 13:40:00 | 显示全部楼层
pyruvate 发表于 2012-10-23 13:18 . Z* w) P. c$ L- |& {7 b0 _
哈哈,我搞定了  }7 [, J2 {& x8 G: ]" ?& n
原来是我文件夹名字写错了
: v- @" {' N- {6 C! Z4 T
data,数据
* Q2 T. z- K- Edate,日期
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复 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
' ]! N+ L& ^0 ^( k2 t( h3 B  L3 O经测试后可用,感谢楼主告知我不知道的方法,原来还是用自己设计的block来解决这一问题。
4 {1 s/ T: C9 z  M. I
唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?
. w1 c! R* w  l# ]' |0 O1 D( ?$ Z1 x9 S9 V1 P( P8 W
照着做没反应诶
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-22 12:28:23 | 显示全部楼层
pyruvate 发表于 2012-10-22 11:34
; b) r' X- b- o/ w3 M' ]- T唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?
! m/ n6 }, r% m ...
+ T. l1 x8 K$ t! j6 ?6 d
是的,文本名字有要对
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-23 13:18:21 | 显示全部楼层
糖伯虎 发表于 2012-10-22 12:28 0 z1 n/ A9 @7 I3 K) Z
是的,文本名字有要对
+ ~4 m/ J' [  A% q. m
哈哈,我搞定了. C) {2 e: b  J3 j5 [4 f
原来是我文件夹名字写错了) T3 I- C' n! }$ `; [1 v* d
, v* v( y( X7 I: b; S  E
Data,我总记得Date......
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-9 08:58 , Processed in 0.682061 second(s), 21 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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