找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 11280|回复: 6

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

[复制链接]
发表于 2012-9-24 22:02:15 | 显示全部楼层 |阅读模式
新版Math Block.jpg NXT-G數學運算的過去- @2 [; a* G' G" ]1 Q' Q/ N! @

9 z' p0 w7 q1 A
0 H, a$ H$ z& l  _* \當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,
3 I+ P: }. @) F2 j
" b3 M  w, }* W7 U5 E9 l6 W雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,# l2 x+ k* o0 H( L5 o

) Q) Y7 H8 u1 K( [但還是讓大家非常不習慣,特別是當除法需要保留小數時。" q. Y' p' _" Z. ~! Q+ j4 |

7 B$ p. s1 \; }/ @. U後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。- G, r" n& n- I$ j$ c8 Y: R

& m# B# r, W- W; B# J$ c這時反倒有一些狀況需要整數運算,但是卻無法使用。* c( E& o- f. s' x& r6 Q/ }
* Q  G# a8 Q; H9 }7 y
例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,: H# e; r( _' [
: @3 V2 n  Z& X- y5 [$ z/ c
如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,  ~# m) S$ Z) {, D. f
0 P( R7 F' Y' J# E* x6 N4 I0 H
但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。$ ?: C* v7 K0 z6 u6 F( }# P' t& q
. O0 x7 ^; G7 V% g$ {
2 ^! G5 k$ `% ?4 J; N  j( O2 x& l
舊版整數數學運算# i- L7 u0 T2 p0 u7 M: B6 G$ [4 g4 A
; w6 U8 ]7 F) w  }) b! p
$ ]: K. }8 h" i% w
其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。
" H" Y$ k' `+ B+ |- C' e( ?  t) L; Q3 C4 i4 J
為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。: ~3 X+ x7 n, U) Q: a3 X

( j2 O. H* z4 H! r9 E如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。
$ M' m+ N* j& G5 g0 i% @
, p) ^$ E# d3 _) c6 i" l: G' \* _% ~/ u6 b( z+ t* }' Y+ U

0 [" m7 r# X9 t( k3 s0 d; `7 Z, ~7 e5 l
剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。
1 q) p! P. T0 Y7 r4 O* T8 J6 G' K! D5 h1 b* m
新增命令方塊後的命令面板如下:# a! c9 C9 M, e" q% J( w
# |0 P! v) @3 i, b4 E$ O( y4 F
$ F9 B% j& @; p" S9 I3 {

! v- ~0 a6 o* t! t( S. ^請使用檔案總管開啟NXT-G軟體目錄,) H0 e* h7 a# k: W% B5 `

! O# w  W! \6 {4 M5 u0 |C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry6 P6 u. ~! p5 L+ [) P
2 t7 |/ [: y) r, m# B5 o3 J
在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』% S/ p" @0 U: g
. T. S3 u+ x8 I0 ^' d% B( u, @' {0 z
根據Team Hassenplug的說明,你還可以新增其他命令方塊,
8 `) X2 V. q" G; s9 D: t
, b' G' M: r6 C2 p; {) w5 F: G. z3 N4 v可以新增的命令方塊列表在下面目錄中:5 D; ]7 O9 p  z2 h2 W

, C8 d: Q& d. M  |" YC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\7 O+ v* T8 J+ n# u, |6 ~

/ ]& X0 L3 u# i/ N& d$ n(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊)
' P# X$ M" @7 `
4 [9 t( {/ J2 @0 ?0 i" c" x5 E- f, ]5 U5 t* k
使用測試結果
+ ~. d0 ^- ~4 v* O4 a& E
8 @/ X7 O$ q$ z# b1 c5 ?探奇寫了一個程式測試使用結果,& y) S/ Y+ B0 z8 `
, q  E' L, X1 c/ }
上半部使用新版的數學運算,100/3=33.3339 r! j! d6 {9 J) z0 m; R
" F8 ]6 H% k3 }6 J
下半部使用舊版數學運算,100/3=335 G$ m+ X1 C# Q: G/ d: k* s$ ]

2 [* \" n' D/ ?: U 2 ]1 c. e2 L  w0 }+ j; \

% Z/ s; G. g! V. J) `5 T4 e有整數運算需求的讀友不妨試試。
Math Block.jpg
數學測試程式.jpg
舊版Math Block.jpg
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-23 13:40:00 | 显示全部楼层
pyruvate 发表于 2012-10-23 13:18
5 X- F  u- M- q哈哈,我搞定了# p2 x, ?+ o! m  ^7 Y: C
原来是我文件夹名字写错了
: w, F2 K, I9 a4 D$ H2 F0 Q
data,数据  j( _( M; @; L) ]/ |2 p0 u  H
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 # F( v. g# `0 k
经测试后可用,感谢楼主告知我不知道的方法,原来还是用自己设计的block来解决这一问题。

  I& Z) V7 S. m: I9 {! K/ _唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?
7 I/ N, C* H3 m! X0 B" r& W  _# x& W9 |  p
照着做没反应诶
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-22 12:28:23 | 显示全部楼层
pyruvate 发表于 2012-10-22 11:34
5 ?( T8 y9 X; f) N* W4 q- Q+ y唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?
: N# h$ M( T4 h* r: {6 x/ n ...
: C' E# h/ I6 I$ u5 U9 E! U) F3 _
是的,文本名字有要对
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-23 13:18:21 | 显示全部楼层
糖伯虎 发表于 2012-10-22 12:28 ' h8 K' O; D: A, u* O
是的,文本名字有要对
2 x/ }/ L' y6 R
哈哈,我搞定了
+ l* v0 G; Z+ w+ P- K原来是我文件夹名字写错了
$ P5 Q+ s' ?( O( [0 B# n0 F
2 ]. u, q3 x7 aData,我总记得Date......
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-16 23:44 , Processed in 1.381467 second(s), 23 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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