找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 11573|回复: 6

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

[复制链接]
发表于 2012-9-24 22:02:15 | 显示全部楼层 |阅读模式
新版Math Block.jpg 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
有整數運算需求的讀友不妨試試。
Math Block.jpg
數學測試程式.jpg
舊版Math Block.jpg
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-23 13:40:00 | 显示全部楼层
pyruvate 发表于 2012-10-23 13:18
1 l7 o7 Z) M/ |; O0 ]- ^哈哈,我搞定了
) `* i% b3 Y' e% {. P2 B& d原来是我文件夹名字写错了

* w9 T" \% y9 y" G+ \data,数据
+ |& Z2 E! e& Z) fdate,日期
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复 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
* s* X6 F6 N4 H( L2 R# L经测试后可用,感谢楼主告知我不知道的方法,原来还是用自己设计的block来解决这一问题。
; n% y7 H8 E1 }3 E7 A
唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?  C" Q$ e' \! a" f
$ j% b8 E2 Z' r( @$ f/ ?
照着做没反应诶
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-22 12:28:23 | 显示全部楼层
pyruvate 发表于 2012-10-22 11:34 7 q5 o! B( f6 T+ f6 K  r
唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?4 u! r9 J- b, p7 _) Y5 S9 C
...

3 c4 z) |& `* p5 K1 O是的,文本名字有要对
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-23 13:18:21 | 显示全部楼层
糖伯虎 发表于 2012-10-22 12:28 ) R' X( v8 k. W) b. z* I, O
是的,文本名字有要对
$ k% t- E  X6 y. {3 s9 A- n
哈哈,我搞定了$ L- M- Z+ v. ^
原来是我文件夹名字写错了
3 }" Y) U# P/ ]- I6 d- H( p5 J
5 ]& ^8 v% L5 K- Y" M2 y. d* FData,我总记得Date......
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-18 11:33 , Processed in 0.111394 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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