找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 14249|回复: 6

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

[复制链接]
发表于 2012-9-24 22:02:15 | 显示全部楼层 |阅读模式
新版Math Block.jpg NXT-G數學運算的過去
8 y% h9 C! p3 R8 z+ r7 r$ r1 t
, M6 m# @8 V- S# R) y) K
9 K7 U( `- L; E" u8 X* j當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,
1 y* d" V3 l% Q/ P' s/ o# T4 }* D" l
( D% s/ }! O2 t& w, a; K雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,# c+ {$ z" j4 n$ E0 _5 o9 ]7 C

1 I. j6 H/ g% ^! A但還是讓大家非常不習慣,特別是當除法需要保留小數時。
0 D) a/ A- ?& X( a& R8 x3 m
0 M5 _' C) Z$ ~5 i後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。
$ B: ?: }9 X4 m5 t5 W
) T$ E. j! D4 G0 r4 e  c這時反倒有一些狀況需要整數運算,但是卻無法使用。1 }% R  @6 e" {) F) F1 q9 i
; ]. p+ u1 S& R- b# @7 F9 u
例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字," @, H2 D$ E! r

4 \. E8 W' Q# x9 u4 h如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,
& _/ _6 V* F0 E0 c0 Q" N' h5 `# n
( _  y/ l- \3 V3 Q  W8 ~但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。
7 j! H/ m9 e% W  T* Y3 n0 w' i, Z2 e/ ~  N; D
: j* ]4 \% K( k8 P6 U
舊版整數數學運算  b# H6 f8 u" G" Q
, L8 K8 c9 C8 u1 r

6 N2 J% L# `! @6 K  _1 R其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。
" D4 Y& o4 b. S1 B: }* _7 j2 C: K% b. C- I+ U+ A
為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。$ H( ~- c8 P8 z: H
0 c. k, _$ S- v. i, s9 E5 P- [
如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。
6 j: n5 }, z3 n2 R0 ^8 O4 q* O" ~, F9 W1 p( q& R

* Z) P9 J$ g; ]3 o, ~8 m
7 ^/ k. C$ B8 ]- d4 E
3 k/ D# N0 @+ |' ]3 f' n剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。
, v. `% |4 Z, O
" o- Q8 x, c9 u# D新增命令方塊後的命令面板如下:
2 ^9 F9 R/ d( z$ V( N8 k' h9 ?) d2 }. j: l' u% o

( Q2 {8 w4 v" d, p( Q, p
+ w3 y( X0 v( q* O' i請使用檔案總管開啟NXT-G軟體目錄,' \: b# H3 p, \" I" z% g

6 b$ G3 k  V$ i' v7 A, u# cC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry
) K( ]5 n% @! U- R! y
3 d' k9 B# B6 l3 d- l" H) _在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』
) j/ c) M0 E- s! _2 B7 s" o
0 ^' R6 E0 Q8 Q+ B根據Team Hassenplug的說明,你還可以新增其他命令方塊,9 ^: M/ U/ c. H
% I$ ?0 k5 w& l- D. M3 U+ z
可以新增的命令方塊列表在下面目錄中:  |! C0 W0 G3 H

( y; v0 y2 t$ D; l- o* tC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\' d9 B8 T7 m% y: t% V
" F( b* R9 ?- L2 N
(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊)+ |5 Z" w2 e8 D" l
. N1 S3 A0 N. U) H- T
( u# t2 B, y& ]
使用測試結果' s- ^) M6 w9 x: a

# ?& Y7 [$ T1 e5 Q探奇寫了一個程式測試使用結果," \9 c2 X2 T6 f, d# G1 `& A, `- d
2 }" a& F$ O+ R% _6 }
上半部使用新版的數學運算,100/3=33.333
2 x9 W* D$ ^' d/ D6 F& w" ^; v% q- A& E& a0 \6 V5 y' r& m
下半部使用舊版數學運算,100/3=33
/ T6 O, D8 V& P2 C; N6 j! m+ x# ?0 ^" o& C. N/ g* C5 F+ c& N$ [2 ?* v: }
0 {, ^% Y) O0 V
5 k# t" {: F, U
有整數運算需求的讀友不妨試試。
Math Block.jpg
數學測試程式.jpg
舊版Math Block.jpg
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-23 13:40:00 | 显示全部楼层
pyruvate 发表于 2012-10-23 13:18
+ h  V/ `/ r- [! h! Y9 O' k  Y8 ]哈哈,我搞定了: _% L$ g) K( d) T- _, ?- X
原来是我文件夹名字写错了

9 x# }4 F1 }) f2 J) r! U$ O. Edata,数据) O/ v8 D* ~8 U' K$ m. \& m- Y
date,日期
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复 赞 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
& O3 I$ U; {& y4 _经测试后可用,感谢楼主告知我不知道的方法,原来还是用自己设计的block来解决这一问题。

( R, P# H! }3 e. `唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?
+ v, |: o* e1 J$ y
( M- p* @5 y3 y9 l# W" s照着做没反应诶
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复 赞 踩

使用道具 举报

发表于 2012-10-22 12:28:23 | 显示全部楼层
pyruvate 发表于 2012-10-22 11:34
  E1 N" `$ A/ K5 a唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?
" e1 Z: {! ~- F4 i3 k: c& s ...
' O! k) ^/ ~* ?( l4 F* H
是的,文本名字有要对
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复 赞 踩

使用道具 举报

发表于 2012-10-23 13:18:21 | 显示全部楼层
糖伯虎 发表于 2012-10-22 12:28
: e6 X; ]7 c& }3 r  u是的,文本名字有要对
# }; y0 @/ |9 L( z
哈哈,我搞定了& U; A: l! `5 c) p
原来是我文件夹名字写错了, a9 C: m1 Z' g  L0 w
) u( }2 \/ e/ ~7 }4 j
Data,我总记得Date......
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复 赞 踩

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-7 09:51 , Processed in 0.167323 second(s), 21 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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