中文乐高

 找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 2892|回复: 6

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

[复制链接]
发表于 2012-9-24 22:02:15 | 显示全部楼层 |阅读模式
新版Math Block.jpg NXT-G數學運算的過去2 o4 H! w7 X5 R2 M" w9 K& {

, Q. N$ ?& w8 ^: n( b
" }7 D. Y, V. `! ?& {# p2 Y* Y當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,5 c2 ~, W6 c- u- \

7 R' k" E$ H1 l雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,
6 q! q& K% H" q& a& }" G
7 Y3 Y' N8 @- G3 n' k9 S4 t$ {/ g7 |但還是讓大家非常不習慣,特別是當除法需要保留小數時。
, `* I8 n5 @( s& O( o8 b) [9 }/ I) G/ j; i+ o! S# G- G! Y, I
後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。
8 O8 \8 X. n. x4 w  y! N0 Y
" p9 _- l1 ?3 O7 C* @" @: p3 n. l這時反倒有一些狀況需要整數運算,但是卻無法使用。4 ]% @7 C7 Z) S& @( K

3 V0 c7 ]% A. T7 w例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,5 g* X  w: y: ]) g. D
+ O3 g8 }3 ]2 G9 U# }
如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,8 |/ j1 n3 d  t" J( U

! s" |& T4 u% |% X, E/ j但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。
6 }. Q, K6 Z) x: i* c. C
8 q. F8 N! A3 b! h2 i4 c) o1 m, u* q
舊版整數數學運算
  C% I$ Q0 {# P3 C( y/ y+ u4 Q6 s
& {5 [/ y% p5 I8 H' N& b8 J% c
; }  g5 o0 W1 s- y+ [; u5 g其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。4 h, I# I+ ^6 E4 u- N
) q' ^+ {& n+ v. ?6 i
為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。
/ N3 d7 V2 l1 v; N- e9 I# }# O+ W. W
如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。
0 O1 D& G/ t$ N. J: z0 j+ J) V8 n& F) H' p4 `

$ [& P7 T/ Q' i: V* I, {8 ]
. F1 V. h! T. c! @) [% J0 K. U* ?* Z, b* Y+ G/ M0 e
剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。0 h0 j& x1 `3 L+ F( N; |2 Y) i

) ~. b# g8 D$ W. F  q* n新增命令方塊後的命令面板如下:! X/ [, I* h* H0 o: m
& ?$ X( S4 q) S0 U1 R: H
4 j  X" M- U! W, k9 j6 {; ~
  ~0 E- O* F0 N4 a: V
請使用檔案總管開啟NXT-G軟體目錄,! M3 r2 M* _" w' I2 u
6 L" k/ D' P, L8 E7 x5 L
C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry# g) Y) c/ |) ], g* k

8 d  _$ t! P: @& D* Y3 S在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』7 V3 B1 x2 j0 s: }& f  @) C
0 H) J4 |2 F/ o$ o
根據Team Hassenplug的說明,你還可以新增其他命令方塊,
9 Y+ {$ H' U6 P; s7 m  `- K9 u, s4 L1 H* K6 F7 ]# b
可以新增的命令方塊列表在下面目錄中:3 e, s. v9 A2 e6 B# E# F6 t# u, N

! E% d( T# x9 ^C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\  N( h9 [" o1 _1 a: B0 g6 p

; l) G! s6 V7 @8 }9 t(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊)8 u1 d: {& @4 v4 y
1 M; ~8 t$ H  ^* \1 V% i

  l1 F  ^/ b/ H! S$ a使用測試結果
  A1 q, l9 e. o0 L, I. T# _
* F6 A/ m4 p2 Z8 g探奇寫了一個程式測試使用結果,
+ D7 O' c. V& ~6 Z3 s1 s$ }; `$ y1 Z  z  l7 t+ H
上半部使用新版的數學運算,100/3=33.3335 `2 T. ~7 n4 d" l  u0 o
0 O6 H3 V5 ~( a* V7 V% x9 j
下半部使用舊版數學運算,100/3=33
$ o$ Q8 n$ ^- J2 d' n! D1 z  `7 S% T0 `5 g# b8 C" w5 F- m1 }4 e

* o; d4 N# R$ A" {8 B8 \7 B6 M  U( W2 h
% s5 Q: k; F9 K! q有整數運算需求的讀友不妨試試。
Math Block.jpg
數學測試程式.jpg
舊版Math Block.jpg
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-23 13:40:00 | 显示全部楼层
pyruvate 发表于 2012-10-23 13:18 ! z8 y9 g+ R$ H
哈哈,我搞定了: W) E3 Z, P  H, o' a: V5 c
原来是我文件夹名字写错了

! r; B* B! ]  C3 q0 [data,数据+ q* L: u9 R. u4 U6 ^/ ^
date,日期
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-9-25 22:53:16 | 显示全部楼层
经测试后可用,感谢楼主告知我不知道的方法,原来还是用自己设计的block来解决这一问题。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-9-26 08:59:04 | 显示全部楼层
感谢楼主的好帖,学习了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-22 11:34:52 | 显示全部楼层
糖伯虎 发表于 2012-9-25 22:53 9 u* L4 b( Z9 K  }* o
经测试后可用,感谢楼主告知我不知道的方法,原来还是用自己设计的block来解决这一问题。

. h' i: ]( s* g1 u4 q7 }唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?
$ t  B# K/ h+ P5 T  C( ^7 A0 P
! r# c1 ]% G; T+ y照着做没反应诶
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-22 12:28:23 | 显示全部楼层
pyruvate 发表于 2012-10-22 11:34 , {8 m4 ]2 Y. u9 Z
唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?! [0 }% W9 [; S8 _- r3 g% m
...
7 ], t' y* z# P( b6 s! y
是的,文本名字有要对
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-23 13:18:21 | 显示全部楼层
糖伯虎 发表于 2012-10-22 12:28
; \) `5 T  [9 O/ {- g是的,文本名字有要对

- t; |) B: P5 J) n5 A哈哈,我搞定了
7 ~% ~( @2 T, s' Z1 @原来是我文件夹名字写错了
" e* `2 t" B5 s+ @5 T  n
& L8 A/ u0 n! b$ FData,我总记得Date......
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2017-9-22 08:41 , Processed in 0.103980 second(s), 20 queries .

Powered by Discuz! X3.4

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

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