找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 13680|回复: 6

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

[复制链接]
发表于 2012-9-24 22:02:15 | 显示全部楼层 |阅读模式
新版Math Block.jpg NXT-G數學運算的過去9 S- l2 k+ S0 n+ a( ]) X  r; i3 A

! K( g) ?6 O. \% R( r' X5 h
3 r8 q% A  I6 g: ]: T4 a0 H當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,
- N6 C# X, \, _3 c/ I5 M0 a9 e
2 L) n, g9 B$ r  p% z  E/ G) R雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,
" g0 W% R2 |" f: k9 Q; d1 m% v/ H3 d; S1 [8 G+ |3 [, N
但還是讓大家非常不習慣,特別是當除法需要保留小數時。4 o# m4 ^' b. t, L% g
/ b* f5 Z+ {  Z3 Z& H5 w* K0 W6 q
後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。
7 A* b( h  e  A7 g7 n6 M
  ?/ q& M' q) e這時反倒有一些狀況需要整數運算,但是卻無法使用。
2 J8 O4 {% t* ?6 q: t$ l$ [$ V3 d$ a! L4 m; S' f7 I% i
例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,
% H9 y2 F5 e. M3 E1 v0 }* u6 [
5 H: `. a; y3 u* _如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,+ v+ ~5 O2 d' e* P+ Z4 U+ M
- f0 w- L8 |9 T9 m8 p
但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。4 K" t0 j7 R. o" S& K: `. A& h. c

  g8 t7 d4 O6 w( P, t7 {$ V9 ]( a5 ]' W+ H' N+ l8 @  E# _" W
舊版整數數學運算3 Z- d9 `3 L: M- m  o0 a" u1 R
+ y8 U$ s$ e$ I% h; A$ F! F
3 w: L' j  m" Z; \" ~+ P
其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。
) n0 o# q+ r. s! U3 t" E. ^+ ^1 F  F( E0 E6 \. K
為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。
; y2 m. W) t, r' I3 Y* J; [* h! Z+ B- |; F4 R8 N
如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。+ c7 J, [4 N6 j# K

6 B+ V/ I/ h0 ]; Y, s9 l& F9 C. h, z' |4 s& v; F( X0 ^9 f
; m4 r7 y' W2 u5 }3 f$ D5 ^
- j$ }8 f# a2 G3 W, b6 T
剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。
5 S6 x; C) ]- H, N1 p4 l& P0 W' i5 t1 W" \/ V6 w+ I" I
新增命令方塊後的命令面板如下:
# o" e; W( f2 c+ A- r+ ~# j% V
# H$ W  O* y7 p& `" R+ R7 e/ n5 `* H( z0 G4 ]
- B  L* K9 e2 a( D6 Q
請使用檔案總管開啟NXT-G軟體目錄,
- J; E2 J; F& d
# ]5 x  V. R7 _) G$ o8 jC:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry
4 R6 D( F( d- e1 |
; r1 m- ^. @+ d# S5 d在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』
% _4 q: ?3 ~7 U1 Z. W6 s! D0 D- K8 _$ e1 b
根據Team Hassenplug的說明,你還可以新增其他命令方塊,
" n# P: c& j- e
7 R  N, R; g0 h* _可以新增的命令方塊列表在下面目錄中:
4 z6 L( F0 o: T$ A1 e; J+ }5 C; p: D# B. R6 A/ i4 `- e
C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\
. V: w7 c$ _# H, v: X* @5 y2 p) @+ X& |0 w/ u! B7 Q4 J
(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊)+ B. i! i: ]% P

6 w  M- _: a0 e" ~5 W  D. R$ n; u/ y+ n+ l) I/ H& ~
使用測試結果
" [) A7 p# L8 A! |- g4 V+ Z& A
7 ~! _5 a. H# N' n* X0 t探奇寫了一個程式測試使用結果,
1 J- P1 c0 Z+ e3 d, ]1 `
5 F( |: y' [9 O5 J上半部使用新版的數學運算,100/3=33.333
- F( H2 N8 R2 J* E/ K5 ~$ }1 B: E8 M) d* \
下半部使用舊版數學運算,100/3=33& |  [* u5 s5 G( M) m, d
2 z$ K  D# a! _, B8 z

  `3 z- ^- E( j# Z" ?
% H7 z/ e' v! o/ f5 T7 [有整數運算需求的讀友不妨試試。
Math Block.jpg
數學測試程式.jpg
舊版Math Block.jpg
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-10-23 13:40:00 | 显示全部楼层
pyruvate 发表于 2012-10-23 13:18 2 c! E/ g8 P8 y: G8 n* k$ Y6 q1 U
哈哈,我搞定了
9 x  D8 e# o, k4 ~原来是我文件夹名字写错了

' P& A% b) S( S1 Qdata,数据6 e) j, Z+ l* B1 z
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 ) c; s; c9 B+ i7 [. A
经测试后可用,感谢楼主告知我不知道的方法,原来还是用自己设计的block来解决这一问题。

6 v! K3 a3 _) P& M% m7 z唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?6 V' \- U8 J! J
' n5 I* G  H7 z# H$ y( I3 U1 [1 D
照着做没反应诶
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-22 12:28:23 | 显示全部楼层
pyruvate 发表于 2012-10-22 11:34 0 s- M7 T1 X5 T2 ?: S! e
唐大,直接这个目录中增加一个文件夹和一个空白文本文件,打开程序就可以看到原来旧版的计算模块了么?7 L2 s* u- B6 Z. l  N  t( s2 ^
...
# f7 x" I' l  m+ ~9 Q+ W
是的,文本名字有要对
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-10-23 13:18:21 | 显示全部楼层
糖伯虎 发表于 2012-10-22 12:28
9 C) k3 R! H/ ^# Y/ X8 V9 F是的,文本名字有要对
  k& Y- D( U4 I3 y) S
哈哈,我搞定了
1 ]1 b- @; [5 @. ~/ N原来是我文件夹名字写错了
- {/ R3 K* y0 p' S) {6 i" K
/ o5 k; i) r1 O1 C! C% qData,我总记得Date......
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-12 19:25 , Processed in 0.155605 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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