找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 11572|回复: 6

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

[复制链接]
发表于 2012-9-24 22:02:15 | 显示全部楼层 |阅读模式
新版Math Block.jpg NXT-G數學運算的過去
3 e  o% Y. d/ F. g. S9 v
  }9 P3 I4 W4 c5 H3 j; {& Y- y, r  K: j2 z. s8 U, _
當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,% j" t0 ~2 K  B4 y' [$ p
2 o0 n2 q5 Q# u; y+ _; b
雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,
: ]: G# {: p3 A- h# O8 g. [- I: g6 q1 T9 ^
但還是讓大家非常不習慣,特別是當除法需要保留小數時。
' k$ J+ a) `1 X8 }$ |5 }- b. E. Y3 q
5 R" o* D4 T$ v$ ~) g後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。
/ }0 h- T' c6 u0 D2 K# e5 O$ T$ Y) d# E4 y' I4 [& r8 U
這時反倒有一些狀況需要整數運算,但是卻無法使用。
0 O( \& l3 P4 D0 s2 E3 H) O! G* [; L& W0 d
例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,0 U7 A2 R  Z: d' j9 ~& q* M4 f

7 q  V0 V" F8 T: x: n5 ~如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,9 [, [% o& u& h
9 S0 L% L) o4 T3 s2 |* T
但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。
- p/ j! Y2 W" s: q% ?0 o, _( ]/ e, s4 ^# A/ |+ m

" R% F; @; q1 q) g, g9 _7 ]6 l# P舊版整數數學運算
* g; B0 {* y. G. r6 C' k$ J5 h! b' `: Y+ Q3 X7 T; r% [* n# ?

( I2 q$ ~" R/ d; Q/ u/ _其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。
+ D5 \$ U8 s9 T' C  Q6 T# i5 K. F4 ^& c$ D2 b8 b
為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。  b  {+ O, j0 D2 E/ R
0 u/ [7 B* O' D" c+ X( R
如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。: u( f( g0 {( ?
1 B# ~5 L; Q# @. L

+ V* ^; D  k% a( r& [# c1 |
* ?  Z; W1 J1 B: A9 |
! A0 J) g: f, H剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。
3 ~0 {7 h1 Z1 Y9 O0 S  ?  y% J8 z; K* U; T* g4 ~
新增命令方塊後的命令面板如下:) t" F+ ~! N. ]
2 I! o& l3 C5 i
* ]0 }$ Z# v# q9 S. @+ k

' r) L* i7 h- Y- O; O請使用檔案總管開啟NXT-G軟體目錄,% U/ v' C7 B5 o9 J  T6 O
" Z7 f4 t* W$ N( U
C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry
8 E! n; h; h( [+ o7 V: c* f0 k4 B6 p! W! l+ `9 z" O
在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』
9 S8 m# X7 `- c, e6 O' R4 b% i$ a; M! u; ]  D' ~* J
根據Team Hassenplug的說明,你還可以新增其他命令方塊,8 G; `: _! G: P1 J

5 w. K$ {9 B2 k4 d1 m# A# [. [可以新增的命令方塊列表在下面目錄中:
, Y/ m3 Z$ A# I# }: G3 ~
" k" e4 \4 `! o& x  NC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\; J8 o5 e2 g* h! C( C

# X: e) n: ]: j: y& g3 ](我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊)% _: R9 l1 @' B( J5 }. e
+ a5 E1 A: q& L0 i" ]; n

. n2 B) B2 C3 z( L+ l使用測試結果
3 F7 ~( D" N6 X+ [5 C
% ?/ v* T  s$ G9 ?5 R, A探奇寫了一個程式測試使用結果,
% A3 C7 b6 H% t* k( ]# k/ ?' P+ M  K& M4 t! v
上半部使用新版的數學運算,100/3=33.333) G+ s5 F3 c. {- g: T$ D: h/ P  z

1 g5 o8 e" M1 S下半部使用舊版數學運算,100/3=33
" i! ~5 X1 |  }+ P% n* c: d
/ T- \  F/ g& x; V  _ 1 F1 q/ C% H9 o8 r

5 z3 }% B0 d; v有整數運算需求的讀友不妨試試。
Math Block.jpg
數學測試程式.jpg
舊版Math Block.jpg
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-23 13:40:00 | 显示全部楼层
pyruvate 发表于 2012-10-23 13:18 6 S! ~4 M, C% P, H* k
哈哈,我搞定了
/ r9 z5 }* y2 F" D: Q4 t原来是我文件夹名字写错了
. s  {9 n+ U2 c) X2 H- _3 p& i6 j
data,数据* I: t7 s( {$ I  m
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
* D: K5 D$ p! Z* f6 b, x经测试后可用,感谢楼主告知我不知道的方法,原来还是用自己设计的block来解决这一问题。

8 v3 |( U. y/ I  i) M; R唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?
" `  S, Y2 @9 u! {4 r$ p  A( Q. z* K1 ^  L6 N& D+ l$ |
照着做没反应诶
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-22 12:28:23 | 显示全部楼层
pyruvate 发表于 2012-10-22 11:34
- g) [! f2 r2 u唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?
8 T! M1 x* A+ J  \; d, x/ F ...
( P2 ?5 {  P' x! k
是的,文本名字有要对
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-23 13:18:21 | 显示全部楼层
糖伯虎 发表于 2012-10-22 12:28
! a. T' ~- U. w! ^9 J" q( N/ M是的,文本名字有要对
7 x$ L7 u! D; K+ n( X
哈哈,我搞定了- R- D# v) W5 F6 r3 I2 f/ K2 w
原来是我文件夹名字写错了
" w% W4 x8 N$ C0 J- [7 y7 {6 r
( A) z, a) X4 b1 Y+ cData,我总记得Date......
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-18 10:18 , Processed in 0.150783 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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