找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 11905|回复: 6

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

[复制链接]
发表于 2012-9-24 22:02:15 | 显示全部楼层 |阅读模式
新版Math Block.jpg NXT-G數學運算的過去/ a. F" i7 y$ K0 U9 Z1 }' H5 O  J- j
6 t; r4 d! Q# N9 B1 t
# P" z/ a4 w, c) u4 E4 v
當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,
) z8 k# Q1 O* {6 H$ W( V  _* Q7 D1 }! S# K9 }
雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,, t% A' E8 F) b! f1 U

% m- D2 o  e& h但還是讓大家非常不習慣,特別是當除法需要保留小數時。) X" [$ B- E1 L9 j# d6 B  k' s

% \1 G0 o; h+ U* M5 m; P$ J& _0 Q3 A後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。
  r2 K6 ?7 S/ L
) X$ ~" P0 d& e/ S( k2 W& F; F這時反倒有一些狀況需要整數運算,但是卻無法使用。  h2 W7 b2 f4 [  Q' P4 E8 _, S
" r5 y" q5 D% J  h2 h2 u( E1 M5 B4 H
例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,5 r% M: V8 E/ E% U" W6 x
2 ^" G* l- d+ y4 m! S( T
如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,
5 P  u' h. [# s8 N- N' w- K$ w9 q  X1 U5 p
但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。9 o) H* |) T) E% x/ |  L
$ u9 t7 K! [6 \7 j& [( q

; N& Q" P& @, F! D舊版整數數學運算: ]& l+ a% \; y; |# z

- s5 p' l& ^4 I3 {3 ^/ z' P2 I0 ?0 d5 B3 v* a
其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。
& `# x7 W( v  L  s" a8 [1 S3 X9 O' \& h. Q
為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。1 {: t# R$ `4 g8 {$ F* u: n3 k

- {) s+ O8 s1 z6 N如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。$ m/ v# ^7 a+ C2 t( T$ e

; y5 n4 O' g% \6 s4 r, i1 W6 N* W4 x& h9 `% ]9 g: D* C
8 t- u: q7 p& ]0 m! p$ W

5 `% g7 {% Q  l: V! \/ g, @( w剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。1 v1 V6 }  U4 n4 j# E

! j" J0 `7 E/ _; e  D' U' c新增命令方塊後的命令面板如下:) v3 [/ T5 P9 A5 M6 }9 G: U
+ B4 a7 b* F5 d9 o# N
( G7 Y9 v4 q& x7 C
% G. f7 C8 b% y3 P
請使用檔案總管開啟NXT-G軟體目錄,
9 O. I0 o) O! r; u1 D# H9 x. h. ?
C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry  P1 R7 ^: K) ]

/ U) R& {! j/ ~9 N$ R6 b- `在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』
9 W& M( q: Z) g. \. Q* L- c2 s* ]3 N5 c" Y% i# X9 ?
根據Team Hassenplug的說明,你還可以新增其他命令方塊,
% T- P) r0 n7 Y7 @* [1 z( C7 g' w+ _' e5 v+ J
可以新增的命令方塊列表在下面目錄中:' b8 ]5 r% R% x- q. Y
- P6 }3 S- F! q1 k& a) r1 h- \
C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\
% L/ P2 ]; G! U5 O! _/ G, E) g6 A1 g# L+ d0 F
(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊)  y% p  O; V4 h2 B* C
0 o' k) J. ]( K$ E& ?( H

  c4 _4 q0 _7 a& a5 {# B: V; q使用測試結果
! u  O' d7 M+ g, f/ ?* J3 q2 I! @
6 I! C% C' V; M% g# E( \探奇寫了一個程式測試使用結果,9 J! X+ m5 D& `$ W

7 n; @1 E% C4 I上半部使用新版的數學運算,100/3=33.333
, y% ]4 ?  g# I1 c  e0 h3 i& A: |
3 V/ H# [# {% P% w下半部使用舊版數學運算,100/3=33
8 G$ [; G* x" n0 a  E0 A4 B! V% t( ]+ Y. @6 V

: }  V2 o. z0 q: B, \0 I3 x) \- b3 N- o$ l: S3 N* R+ \; N
有整數運算需求的讀友不妨試試。
Math Block.jpg
數學測試程式.jpg
舊版Math Block.jpg
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-23 13:40:00 | 显示全部楼层
pyruvate 发表于 2012-10-23 13:18
" K$ z/ t( {  [哈哈,我搞定了
; h$ d1 t7 d% X6 V! L4 N" y# d原来是我文件夹名字写错了

" `. I2 M" w0 O" A7 C& _0 edata,数据2 }0 \, n0 R. Q+ ?& }0 m) n. t3 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
% Z: d6 k/ I( n1 T7 X) w( H( f经测试后可用,感谢楼主告知我不知道的方法,原来还是用自己设计的block来解决这一问题。

6 b3 ^. `/ H" f0 c3 c唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?" j% y: r5 @. ], I

) U/ t9 K( g9 I2 R照着做没反应诶
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-22 12:28:23 | 显示全部楼层
pyruvate 发表于 2012-10-22 11:34
4 p$ \! m9 C; A( x; K/ u7 m唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?
) s5 o, k# P- ^8 r ...
3 _2 ?  g* ^. y8 N  N
是的,文本名字有要对
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-23 13:18:21 | 显示全部楼层
糖伯虎 发表于 2012-10-22 12:28 ; T( E7 X! e: [- S" p5 H4 ]
是的,文本名字有要对

$ n, u0 P  f+ N) x4 E哈哈,我搞定了
; v3 O( G$ ?0 I原来是我文件夹名字写错了6 c# f$ a. b9 j; `1 @5 x* P

" k7 G; k8 w- N/ v* y( sData,我总记得Date......
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-17 00:19 , Processed in 0.259335 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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