找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 14088|回复: 6

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

[复制链接]
发表于 2012-9-24 22:02:15 | 显示全部楼层 |阅读模式
新版Math Block.jpg NXT-G數學運算的過去! r7 Q$ _& l3 K  }# G
9 G' n# v2 s% I- j7 s5 |$ h

/ [% |: i5 _) Z5 N當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,
% r1 }- x  ^4 S  \5 x8 ]" U0 g* X4 w7 M1 r- g/ S/ b# Q) u: H
雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,
" `! E9 W) `9 b9 l( \1 d* ^
+ f7 {0 u* j/ ^) p- W6 @/ H但還是讓大家非常不習慣,特別是當除法需要保留小數時。
6 M" S/ f% e$ J: k# c' ^5 t( N$ b' C  u
後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。- n7 |6 _8 L  C9 r3 t+ E7 a  F9 g

6 \2 r! O4 L) d4 e* @3 W- F) b這時反倒有一些狀況需要整數運算,但是卻無法使用。
) s1 w6 z$ J$ B; h0 G! U, M
* y" J: F6 E3 R/ i例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,! |: F# P2 s' w: p8 ~# g$ e3 W

; U2 X, j. d  K, |% C如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,: r5 ^: h' T) J- T  A5 T  x' a1 A

+ j$ T% r/ X/ W2 j但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。0 j2 b1 C6 L! {: c& }7 A
0 y- [' r0 m. h  G8 l6 G* T

1 p. l; h! j$ b4 s0 f) ^舊版整數數學運算; h6 h( ?- \( ^$ g5 o
. i, q4 ]% J0 G0 X6 o; Y

2 w3 ~- i) `; H% G! p其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。
7 j% ~6 e8 s3 F" h0 f
$ K2 X' Y; p' a9 }$ f3 D為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。( X# B$ Z7 G/ J2 d. I$ ~  J3 D
/ y  P7 T) G' c3 B; ^5 @* V! ]; s
如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。0 \1 ^4 I: D6 `; e) E

1 N3 Y* s1 Q6 l! |6 L9 v
2 j2 q1 C9 Y- ?  Q
0 W* g' c1 @! y# j, D5 a; b! b8 T7 F; K- f+ J; g8 w8 r
剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。
6 h) U0 l$ q: U3 T! o" @
/ m; S5 t$ `% n新增命令方塊後的命令面板如下:
! a7 q; [2 T( }6 R  S0 n
# q6 r/ c$ c/ u5 U. a. W; [8 i5 {. H/ N& |4 M$ j" \6 ~

2 k4 R" O; H6 z請使用檔案總管開啟NXT-G軟體目錄,8 j+ Y; T2 B7 _

, ^& ]* R& v  f3 gC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry# ?5 W) f( d" b# e! b& P

! o3 N& K0 f  k在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』
! C' o$ a9 {. m: f/ u5 G/ G: ~  H7 y$ R) d1 B; A
根據Team Hassenplug的說明,你還可以新增其他命令方塊,
, W+ ]) G9 n' v& i2 G
& ~2 v4 A9 F' c6 {: j1 T可以新增的命令方塊列表在下面目錄中:
1 ?7 Q* a& m  {. B5 s; H5 z
' o6 ?2 |6 \# @& H! y/ lC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\' ^3 h6 X9 r, I
% l# d/ E: g% `5 ]+ z
(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊)
8 o7 C! k1 Q. f2 C: ~! g
1 Y. j3 I. z  v
+ s6 V2 F4 C6 s6 r2 i1 @2 B3 U. r使用測試結果9 G" |/ W  Q7 v/ ~9 G

1 x) L( Q7 O9 |) x9 s探奇寫了一個程式測試使用結果,
" f! T3 r1 ^) m. A7 f1 X  G& g9 l9 R. C" A
上半部使用新版的數學運算,100/3=33.3337 }! X2 V$ h( ], Q: b) n
- R. ^1 G" E% n1 M/ z, M
下半部使用舊版數學運算,100/3=33
0 l# ^6 N$ U4 F* y
1 _$ D8 C4 d+ `: j
: C1 B7 y# m. x& r# |: e0 _* @+ _- F6 t( T& E* n
有整數運算需求的讀友不妨試試。
Math Block.jpg
數學測試程式.jpg
舊版Math Block.jpg
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-23 13:40:00 | 显示全部楼层
pyruvate 发表于 2012-10-23 13:18 , g" B; H0 ~. z8 _
哈哈,我搞定了! y" J( ~* ]2 K% z
原来是我文件夹名字写错了

9 U3 w! x  T5 r1 N$ q" {" n$ h: udata,数据
1 _; S- }* R0 h# odate,日期
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复 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
" i+ r; R3 y0 O. x$ d经测试后可用,感谢楼主告知我不知道的方法,原来还是用自己设计的block来解决这一问题。
. v2 W/ j, ~2 }, V. s% a) L
唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?
* R6 R4 a3 K+ Y/ I$ l: F2 g
8 B5 `) S( [' B: ]' r照着做没反应诶
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-22 12:28:23 | 显示全部楼层
pyruvate 发表于 2012-10-22 11:34 - k& E9 D; t) X* p
唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?' v& S- z! v  j) X  X0 @/ ^
...
# k1 j6 W$ `  l
是的,文本名字有要对
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-23 13:18:21 | 显示全部楼层
糖伯虎 发表于 2012-10-22 12:28
" n$ R  |3 p6 M) E$ ~. b+ l) y是的,文本名字有要对
6 l! o8 q! K1 M3 p/ U
哈哈,我搞定了
' W; q; }5 d! a原来是我文件夹名字写错了- d) o3 V; d4 Z
4 z1 i% B& F/ Y0 e7 ]
Data,我总记得Date......
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-21 04:53 , Processed in 0.465608 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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