找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 11658|回复: 6

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

[复制链接]
发表于 2012-9-24 22:02:15 | 显示全部楼层 |阅读模式
新版Math Block.jpg NXT-G數學運算的過去  p# R! G! {. Y4 }$ P7 O% c/ `
- y% |1 ^5 K6 N5 e- G8 d" K- x
; |, |3 @$ i$ ?8 F
當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,
! i' J( u; S4 V( x: J( T& H5 E) R( Y7 f0 R
雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,$ L7 O6 |9 m) {
1 l* ]4 F! m6 {: _* ?
但還是讓大家非常不習慣,特別是當除法需要保留小數時。
* h9 r  D2 m& N+ N  c2 y& b# k4 `; F* V3 |7 H+ E' ^
後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。3 s0 I6 J3 b" o& p6 V9 g
* ~0 y0 Q( o8 j' }
這時反倒有一些狀況需要整數運算,但是卻無法使用。
) `5 Y$ E- B0 J$ o/ G6 r  I& p& T! Z( p
例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,  |* j6 s% Q/ A. J2 x% Q; J
+ @( y$ J2 N/ G9 Z- q5 a
如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,# ^0 b8 x$ X2 e' U* }
3 ~9 S  L$ y# X% C0 S0 g" v' A6 f
但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。8 a4 \3 d" r: V0 M

. ~& t* k6 \; h: w4 ]) [
" V. u; B5 m! {) ?舊版整數數學運算
( Y9 i4 R% h  g  _) F+ D, K- S) L: L

1 g: b) [; ~8 B8 C" M其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。
/ `, t3 }4 E# _. R: W  e/ W- K; I* V- W) r
為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。
& D6 P1 ^( n# Z& p* @& _$ Y. [# g( `- ~) v: L2 N  @
如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。; ?. c4 a6 {' i; T7 N- g* e( T- v  ?
0 x: u% \' C& j# X9 S; j7 ?& P% s

& F1 H: ?, m8 H. Q
/ J% f5 t* ^4 g- `  c# |
7 M$ H* e# b# I2 {( y2 T( K1 B剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。! v) w3 {7 y$ [' E5 T$ T
. ^3 ~: u: G; t7 P: j$ F
新增命令方塊後的命令面板如下:) i) h  N1 f3 M& z9 k1 ?4 H

! R# m5 @# p. o: H. K) T# _4 A- I
& \0 e( [. ~: f$ O8 M0 C4 ~' K$ z8 `9 ^# ^5 n- R
請使用檔案總管開啟NXT-G軟體目錄,# b  j3 \* n8 R+ k% V
8 N: C  ^% {% _) u( {
C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry
  w% p" \; [' O4 m' u2 ]  x
# t* T! e3 B- `; Y在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』
  C; u! i, l4 z, \2 B5 x8 n5 K2 }0 d0 T3 G) Y& |3 _. ^
根據Team Hassenplug的說明,你還可以新增其他命令方塊,
5 s2 ^  \3 _; [/ T! @
: g9 ?1 u$ }, B& Y, \" I7 n可以新增的命令方塊列表在下面目錄中:
: _5 @) Z, p+ V& V( ]& }  n5 N/ _0 m4 B
C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\
+ w" }0 C! D3 A' q) X. J
9 D' Q% P8 a/ }2 k$ u: C(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊)3 z' e+ _4 d' s  P9 T6 N& ?7 M

  g% u+ L3 l" N! e+ n/ ?6 K8 q% u# ?3 m% ~4 M$ P
使用測試結果* M( N! S1 e+ G1 v) C" b! G
) H8 c. b. k* k( A/ G- h
探奇寫了一個程式測試使用結果,
% B- g: V. c0 B1 n
  _9 S: D( a( Z3 \! |5 T0 \上半部使用新版的數學運算,100/3=33.333
, w* Q8 s, e0 R& G
- I1 W; t* e, X" J/ l下半部使用舊版數學運算,100/3=33
! T% A% y% I) [0 T  W. D& L  j9 c7 L  ]( m, Q

+ y! Y1 p/ C! _6 ?' m. o- D+ J: u" s- d) ^8 f% D
有整數運算需求的讀友不妨試試。
Math Block.jpg
數學測試程式.jpg
舊版Math Block.jpg
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-23 13:40:00 | 显示全部楼层
pyruvate 发表于 2012-10-23 13:18
+ G, l, d5 m7 E$ |8 ~- b- @哈哈,我搞定了
1 _# f0 L- u6 M原来是我文件夹名字写错了
$ i5 L2 m% G/ \2 M4 q$ E3 Y- j
data,数据+ ?/ L( b6 r  t) [& Q4 O
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 0 o5 v! B* l6 r9 L8 ^- i% k$ p
经测试后可用,感谢楼主告知我不知道的方法,原来还是用自己设计的block来解决这一问题。

2 b/ J# z0 ]! N8 L唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?
8 g; t( Y5 p: ^$ V) r# ]7 u( O: s* K+ y+ R
照着做没反应诶
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-22 12:28:23 | 显示全部楼层
pyruvate 发表于 2012-10-22 11:34
1 ^- ?' h. J0 ?5 Z" T+ s唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?- f  c& Y7 B: g- G* n* {' J
...

$ v" ~% `* F$ u- i" b) R是的,文本名字有要对
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-23 13:18:21 | 显示全部楼层
糖伯虎 发表于 2012-10-22 12:28
0 T0 Y0 J) C- e. B2 w/ e是的,文本名字有要对

) V  u% U( |; G/ M8 g- q哈哈,我搞定了
; g: |% B4 |5 q8 C2 g3 d% V原来是我文件夹名字写错了
& L1 d, C# h3 O6 d. Y' ^
; \# Q  V. b% o5 C" BData,我总记得Date......
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-13 16:42 , Processed in 0.373320 second(s), 21 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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