找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 10963|回复: 6

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

[复制链接]
发表于 2012-9-24 22:02:15 | 显示全部楼层 |阅读模式
新版Math Block.jpg NXT-G數學運算的過去2 N2 s' Z6 [: o  J2 n
* A: W% F1 A+ Z5 [9 g9 V, R: F- U
; u3 {! E$ S  }9 v  B( M
當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,( v# G6 Q8 T! @( {

, X( Z4 }& H. S( D6 r1 E" R雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,3 I5 l( B( j* K7 D" M0 h

( \7 Q2 w; w$ w: R3 G但還是讓大家非常不習慣,特別是當除法需要保留小數時。3 s1 @2 h6 U5 \6 m4 |

, [9 D2 N( i, ]  Q後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。: i* `2 R! j5 C4 g2 D
1 t, T) l7 t0 p+ w) O7 r
這時反倒有一些狀況需要整數運算,但是卻無法使用。' M5 _2 i& U3 w, |4 ~  X% `/ j

; r( i( Y7 u* N8 c# `2 U" M# s+ K2 ]例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,
) b: h& N' X* i3 }0 K; o, X" {9 B2 M8 r- H) q9 S* g- N
如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,4 e) V4 @0 p0 r. ]& v
0 W! `/ H9 F5 w' Y& g0 R6 [3 `
但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。
+ J( M8 S4 d. Y: [; P6 ]
3 x) |: o: u9 `  n* r  ]
* Q2 T& z5 A+ k  J" |$ z舊版整數數學運算
% [/ S# ^! f. A- F; P" n/ S# B( d  i" I
# i% V3 o+ a# t. o6 M8 b/ l0 k
其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。
) b0 m, X8 o5 _/ {
* R1 z- W5 ^! y  ?# D+ w為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。
7 `* r* v3 X8 ^( H5 `5 L+ ?' x" u' ~* T, u, E
如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。+ M4 `. X8 E7 N8 h- p5 y+ |  j% J
0 g& G2 r7 Z* t
( T! u1 W- v1 |
* q% B0 `, ^+ @

1 G) h8 k& ~! o! J; x+ ]! n$ e. W& u剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。7 w) y6 ]! Q1 C4 A
; G# r' m; o8 |. @& k  i
新增命令方塊後的命令面板如下:
9 u5 U  [% b: d" g0 }+ @0 y$ _2 |4 d
" _( L  ]( H6 \
) H" O8 E# ^5 D" }! k& m5 R) M/ S- n$ j& t% W
請使用檔案總管開啟NXT-G軟體目錄,$ V- J) X* p) P, N6 R

- `1 g" A; d7 j3 w& O+ Z6 GC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry
8 R+ Y8 a2 v3 X% ^, S/ F, p
$ n; p" B% S8 \在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』
' T/ z% Q$ U2 p+ Z6 j4 u3 ^
2 A7 J  k3 N! k9 ]+ c根據Team Hassenplug的說明,你還可以新增其他命令方塊,4 n8 d& E: j* E& P- H( v

2 O: m' B+ Q9 k9 N0 M( ~; a) p可以新增的命令方塊列表在下面目錄中:
. [/ O0 ^0 B4 ~. K. k9 P: h' o
7 P' T+ y" u/ {" A- ~C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\
5 R) {4 U9 k6 c% U5 C' {+ q: y& ~* H0 \' z$ O6 S
(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊)
% [/ Y. I! ]. d4 V$ @- T' X0 \6 u
' d$ F+ M9 c& A% u4 ~( v
& ?7 x/ o$ A: T; h使用測試結果
! l- Y+ G4 O2 }9 ~) Y! M4 Z; H4 O3 f3 C7 D/ A/ g. `+ _0 x
探奇寫了一個程式測試使用結果,
  w  Z4 Z( F) i  w+ k6 D5 l$ p+ x' U# X5 S
上半部使用新版的數學運算,100/3=33.333
: b7 ?* J  s& V# P7 Y% J% c2 Y& V- C# {0 H$ w# H3 B4 f
下半部使用舊版數學運算,100/3=33
! F/ w7 v% H+ d- s, F4 w+ a+ K0 ]0 M+ S' Q# T& `
( }# V8 w3 b& n! k! v1 c$ F8 @$ h8 z

( y/ P: p) J  R有整數運算需求的讀友不妨試試。
Math Block.jpg
數學測試程式.jpg
舊版Math Block.jpg
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-23 13:40:00 | 显示全部楼层
pyruvate 发表于 2012-10-23 13:18 3 Z+ f8 p: H5 i/ `1 z
哈哈,我搞定了' r( G: v: K/ C# v' A# ?1 H
原来是我文件夹名字写错了

0 u. e6 T, ^, v( E, {6 Xdata,数据0 b+ j: v, x! `/ |. `
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
8 |' {- V# k0 K经测试后可用,感谢楼主告知我不知道的方法,原来还是用自己设计的block来解决这一问题。

# `- O4 l0 x. ^$ }  E唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?
5 j8 S) G, E, [% D0 I" @/ @3 Y$ I$ f" G9 q3 g) ]$ e
照着做没反应诶
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-22 12:28:23 | 显示全部楼层
pyruvate 发表于 2012-10-22 11:34
+ M: B! G# C; M" u' X. l4 G唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?
$ \/ I& z% x5 p ...
- {3 m' }9 u& X" r5 d
是的,文本名字有要对
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-23 13:18:21 | 显示全部楼层
糖伯虎 发表于 2012-10-22 12:28
( J0 K. u. ~6 t9 z: R是的,文本名字有要对
4 _& y! [; a. Y; \( ?
哈哈,我搞定了' v% J- H* N/ t$ r3 _9 E
原来是我文件夹名字写错了
/ v2 I. j6 K* g. t. w
& _/ M9 `# ^& H: f! ^9 N9 \Data,我总记得Date......
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-11 21:04 , Processed in 0.113704 second(s), 23 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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