中文乐高

 找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 2651|回复: 6

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

[复制链接]
发表于 2012-9-24 22:02:15 | 显示全部楼层 |阅读模式
新版Math Block.jpg NXT-G數學運算的過去* f  t( C$ m: H1 o! I: ^

# Q1 e% P8 S$ {5 x( L+ Z2 u8 w! g  q  \9 B
當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,
' \9 ?# N8 u  g4 @4 ^
5 D9 a; b; N/ t& {- A- L  q. R雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,
3 U, m2 T* F4 e! i/ D2 X( J% {! K( T$ b. B6 X
但還是讓大家非常不習慣,特別是當除法需要保留小數時。! h2 A; m6 M' {: L2 V) e7 |

, L6 y2 m0 S; |/ a後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。+ Q( {! m) g$ O8 v  t

3 w' N$ x4 G% p  S# w8 x. M這時反倒有一些狀況需要整數運算,但是卻無法使用。
/ J0 g( g/ a* W, G. v. D$ }6 |3 L/ c+ \2 T; w
例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,
% h8 h. |7 `% U# i7 h7 ^/ i; J  I
如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,
, l! P2 S8 ~: |$ d9 W
1 H/ v7 g" L0 f  j( z但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。
* Z- P& a5 O/ k' T8 B- I3 e) [& q9 i1 C' E) n, p$ `4 r7 {+ k

) Q4 V# {, a+ X2 S% K. g舊版整數數學運算2 M. b6 G  I+ t  }/ i

. K' Q% H4 I) T. l  c
( w, ^8 y1 g; L7 y5 ]$ V' N其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。
- V( z2 p. A1 j* X1 {
. ]% F* D! D% m4 R8 \: e' x) P為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。
- M$ A6 Z1 C  M' g
- J# A! Q0 [0 w/ C如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。1 k+ J# u4 f5 U8 x- X7 p, @

6 _4 J" S2 |0 j/ f' I7 I' R) g) }5 ^7 Z3 ^! I( y

0 y* L$ `$ @4 ~# \* E2 V: ]
5 @" i3 Q% e/ K1 M* f& T6 G剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。
# ], w0 O9 F7 y1 z' n. p& k/ @6 o3 N! l
新增命令方塊後的命令面板如下:
6 j5 g$ h7 C0 u2 \- z$ q# F1 ?/ Z/ B$ Q

% R' @6 t' [. R) ~2 J% O+ v4 @2 t* l
請使用檔案總管開啟NXT-G軟體目錄,; h. C" C: Y5 X, m3 q) ?0 a! n! k

1 R6 z' O; S5 [% V: K8 ]: p, G6 p* jC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry
5 j1 W5 O0 U* b
* s& k# m, D, C  V1 }3 Y; Z在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』
, T9 h# Q( ?. S3 _# b; \1 A8 t0 E1 t+ q
4 e: q8 V; l/ r0 V, M  Y根據Team Hassenplug的說明,你還可以新增其他命令方塊,
% Q, N% V- j# u
* w+ G; ?& z5 d0 w' ?可以新增的命令方塊列表在下面目錄中:8 s- Q( V: s- Y# b

+ P5 ?3 n9 p% n! bC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\9 @/ C1 c) b- n, `, A/ j
; ^9 a) l' |6 X+ i# x7 B
(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊)
/ B# v3 r  J- v3 Q( w/ r
% F( c! A( C2 c; D* @  D6 Q* ?: I3 w  M
使用測試結果3 u- o2 `+ H/ T/ R! Z

* O, \/ d  X9 r8 |/ s探奇寫了一個程式測試使用結果,
1 R* Q4 {2 R5 w3 a0 S7 M# m4 C; W" m7 Y& t' Q% y
上半部使用新版的數學運算,100/3=33.333- O4 t/ G1 w6 `& Q" h6 h
7 h5 x0 K& A0 S: F& S
下半部使用舊版數學運算,100/3=33% C' n6 l. S" b% v. j$ }+ u

& K4 B% S  E' x& ]4 Z( | * q# @7 i" f( ]0 }- ~

8 i( N) B8 W: F/ G6 L有整數運算需求的讀友不妨試試。
Math Block.jpg
數學測試程式.jpg
舊版Math Block.jpg
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-23 13:40:00 | 显示全部楼层
pyruvate 发表于 2012-10-23 13:18 0 A* c) |# o& Y/ F" ]/ b0 H
哈哈,我搞定了
6 @  Y% l' P* m& A) b1 y( U% `2 e7 ?原来是我文件夹名字写错了
( {7 F3 f* l9 t7 X
data,数据
( J5 a- z5 H; z) z8 Y. D0 O0 hdate,日期
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-9-25 22:53:16 | 显示全部楼层
经测试后可用,感谢楼主告知我不知道的方法,原来还是用自己设计的block来解决这一问题。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-9-26 08:59:04 | 显示全部楼层
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-22 11:34:52 | 显示全部楼层
糖伯虎 发表于 2012-9-25 22:53
( }" [, |4 K4 M  X% q8 s经测试后可用,感谢楼主告知我不知道的方法,原来还是用自己设计的block来解决这一问题。

: }1 E! B/ U! x唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?
( i- n8 l" U8 U7 X% ?: X- k& V# H; J
照着做没反应诶
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-22 12:28:23 | 显示全部楼层
pyruvate 发表于 2012-10-22 11:34 3 I6 ]. ^2 w1 S1 x2 @$ a4 n" d1 P. \
唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?
, G: o% }" E% w' G/ C5 J( @. t- ] ...

: g% n! F* Q5 i是的,文本名字有要对
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-23 13:18:21 | 显示全部楼层
糖伯虎 发表于 2012-10-22 12:28 0 D. B6 Q! ^9 N( e% Z3 l
是的,文本名字有要对

0 }# o9 w3 b9 @) M9 V哈哈,我搞定了8 s( V9 t) ~" v8 N) A4 n
原来是我文件夹名字写错了( c4 V# f5 M  A+ X, n9 `) B1 C

. p! h% g5 P) O  A0 SData,我总记得Date......
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则


QQ|中文乐高 ( 桂ICP备11003955号-1

GMT+8, 2017-1-23 00:13 , Processed in 0.148976 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc. Template By 【未来科技】【 www.veikei.com 】

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