找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 11585|回复: 6

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

[复制链接]
发表于 2012-9-24 22:02:15 | 显示全部楼层 |阅读模式
新版Math Block.jpg NXT-G數學運算的過去  b4 M# |2 y" Q* k
( b* c7 q* y% h8 R
. q6 }# E7 J% L% Z4 P
當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,, m: i1 n& b2 m, ]" f% f! m) p' y
) H0 R" [, e5 _/ d% }+ N* c' S
雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,2 _2 Q/ U9 B3 R

/ [$ H# W- p0 Y% E2 v2 q/ I但還是讓大家非常不習慣,特別是當除法需要保留小數時。
/ c% F: Z1 u3 H9 r9 g+ y: o& a. ~. f- {8 X: H+ i0 x: G% E
後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。
0 R! v8 Q# u. e
5 A. c) p) O9 A# `這時反倒有一些狀況需要整數運算,但是卻無法使用。& j8 X2 B9 ~9 ~5 u; S- w

1 ?% @3 U8 r3 O& X0 u1 A. q例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,% W# d. f5 n% Y0 u3 C( g+ z

5 l2 P8 R) W% w: z# |如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,
+ i( M" @) I# {' |  D4 }6 d1 @, ^$ m/ w
但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。
/ x3 m! G% P' }8 V3 T$ N5 s! H8 L! P) N* J
6 I7 W; o( X8 C& w5 X4 Q2 a8 t: p
舊版整數數學運算( u. K; p5 L8 M; T

+ T9 h! _' ]5 L+ Y! Z. k" q
* X/ {& H; m! W+ K其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。" E4 l: e6 L8 r
- f8 c8 V) i6 c& Q" S7 N3 z+ Y" E
為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。4 z# ?. A5 y* A0 ~8 S/ ^- A7 h  n; U
. t- Z, s' \0 v7 X# k
如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。
$ p' L' e$ U5 k. e  t1 _+ e2 H$ s
+ g# u: @2 X: c: T. ^$ M
+ R5 H+ k: W* b8 j  \) D( _& F( i( a1 ?3 O) v& e3 D3 R
# n5 {) n) B: W) S* q; T
剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。1 h# z% d. n( J! x

/ h: [  I5 U5 d; J+ |9 `新增命令方塊後的命令面板如下:$ `) y" `) V, w) ^
" e' `, Q$ a. _$ ^; f; g
) y! y( D# m3 b
: A, t5 |1 w3 a8 S: `0 ?
請使用檔案總管開啟NXT-G軟體目錄,1 q+ L" V' P& i- {% ?

* @  C3 X" q# }3 ]: j! iC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry2 `" B7 x& k" P4 H6 Q8 ^+ a; a

5 R& U+ h" R! ?在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』
' D+ Y" F& g7 ]& D" `) \
0 {  X" q9 o) _  O1 z7 {根據Team Hassenplug的說明,你還可以新增其他命令方塊,
$ ]9 ~0 s, i- }2 A# h, V$ Q* S! H
可以新增的命令方塊列表在下面目錄中:
" v+ \, Y3 B7 T+ X1 V8 j/ L* R( c  H. r; O- N1 t
C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\) y' |+ k% n3 H% P* n

4 V: s/ s7 G& V. ]6 F: e8 Q. j+ f(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊): _5 V" S* _! B7 A6 N( O* P. {7 \% j
# D% e3 }% t( S! j

) @% G; ]$ l0 ?  h使用測試結果& A1 v# O* A- [: R. @, v6 e. N
# q  q( C- }/ g  B& g3 K; R( U
探奇寫了一個程式測試使用結果,
1 e7 a* k3 a4 D7 ^
0 u& O; ]7 `" Z$ v% D7 M& ~上半部使用新版的數學運算,100/3=33.333) U5 ~: `8 ~: m1 R6 {6 U. O; J

! w  i# R! A" m& T$ z; E& E) g: z下半部使用舊版數學運算,100/3=33
% Y6 y  b/ j- o( Y
9 q' l, A/ q, E9 Y$ Q# {
. x5 ~& }: ^+ F( ^/ N1 a
, Z7 }$ b( J2 W) P9 D0 Z有整數運算需求的讀友不妨試試。
Math Block.jpg
數學測試程式.jpg
舊版Math Block.jpg
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-23 13:40:00 | 显示全部楼层
pyruvate 发表于 2012-10-23 13:18
! h# N- W+ V6 n2 x( z# ]哈哈,我搞定了
1 W) B* c  B) w原来是我文件夹名字写错了

2 L% d$ ^( ?' o; E, _data,数据
$ I+ d4 C6 }; G' _6 |: Ndate,日期
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复 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
' R  I: V3 s" o0 e: _9 o+ ?经测试后可用,感谢楼主告知我不知道的方法,原来还是用自己设计的block来解决这一问题。

) f; u2 k9 F) i6 N7 v唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?
; K5 A$ {4 e% _0 y4 K0 n; S( W( I( e2 t4 C
照着做没反应诶
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-22 12:28:23 | 显示全部楼层
pyruvate 发表于 2012-10-22 11:34 3 H; p3 K% C! G& W2 l, g
唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?
& a& R" h4 R2 B: C ...

& Q1 f/ w" H1 R# D# w是的,文本名字有要对
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-23 13:18:21 | 显示全部楼层
糖伯虎 发表于 2012-10-22 12:28
) U- H: r3 Y* n# @3 c是的,文本名字有要对

( g( a; J. m# {哈哈,我搞定了
$ ^+ M0 s% `% v. t! ^原来是我文件夹名字写错了( ^8 n4 [" N3 R
4 e, G( ]6 i9 |1 [: V! Y8 c
Data,我总记得Date......
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-28 20:21 , Processed in 0.340750 second(s), 21 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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