jack800417 發表於 2011-10-14 01:39

請問遞增的判斷寫法

本帖最後由 jack800417 於 2011-10-14 01:42 編輯

我想要寫一個計數的程式
是否為這樣寫法
Peripheral myMotor As MR2x30A @ 0
Peripheral mySonar1 As SonarA @ 1
Peripheral mySonar2 As SonarA @ 2
Peripheral mySonar3 As SonarA @ 3
Dim Status1,Status2,Status3 As Byte '儲存取得的偵測結果狀態
Dim Distance1 ,Distance2,Distance3 As Word '儲存取得的偵測結果
Sub MAIN()
integer i ,a <-----宣告A為整數((還是這兩個整數值可以和Status1,Distance1一起宣告在一起?變成
                                                         Dim Status1,Status2,Status3 ,i,aAs Byte '儲存取得的偵測結果狀態
                                                       Dim Distance1 ,Distance2,Distance3,i,a As Word '儲存取得的偵測結果))


mySonar1.SetFloorLevel(0) '設定離地高度為大於5cm
mySonar1.SetRangingTime(10) '設定等待接收時間為63ms
mySonar1.SetRepeatTime(20) '設定重複偵測週期為200ms
mySonar1.SetRepeatCount(0) '設定重複偵測次數為 0 (無限次)
mySonar1.SetBurstPower(10) '設定發射強度等級為 10
.....
mySonar1.RepeatRanging() '執行重復偵測
.....
mySonar1.EnableRangingFinishEvent() '啟動發射接收完成事件
.....
DO
If Distance1 =22 Then
MyMotor.ForwardAB(400,410)
PAUSE 500
ElseIf Distance2 <22 Then
MyMotor.ForwardAB(400,430)
PAUSE 500
ElseIf Distance1 >22
MyMotor.ForwardAB(430,400)
End If

if Distance3= 20 Then
for(i=3;i<7:i++)<--i初始值為3到7之間,i+1    BASIC 好像不能用i++...一直錯在這個地方
a= i%2      <----------除2
if (a==0) then<------偶數
S_Name()
ElseIf (a==1) then
S_Name1()
End If






jack800417 發表於 2011-10-14 01:43

本帖最後由 jack800417 於 2011-10-14 01:44 編輯

我是想寫成,Distance3感測到時+1然後IF判斷然後跳副程式,我先讓他 i++ 是否可行
這是用C語言去構想而出的

magiccar 發表於 2011-10-14 09:50

For ... Next 的寫法如下:

For i = 3 to 6 Step 1
   a = i Mod 2
   If a = 0 Then
          S_Name1()
   End If
Next


變數宣告部分,把 i,a 加到裡面是可以的。。。
Dim Status1,Status2,Status3 ,i,a As Byte

不過放的位置不同性質也不一樣。。
如果是放在 Sub main() 前,是屬於全域變數,而放在各副程式段的 Sub xxx() 及 End Sub 間,就屬於區域變數了。
指令集用法可以按F1,有詳細的中文說明喔!{:soso_e100:}

jack800417 發表於 2011-10-14 10:08

程式碼的意思是這樣嗎?
For i = 3 to 6 Step 1   <------i=3到6 每次+1(Step是等於C++的i++的意思嗎?
   a = i Mod 2             <------a/2      (Mod是Basic的除式嗎?
   If a = 0 Then
          S_Name1()
   End If
Next

magiccar 發表於 2011-10-14 10:16

Step 1 是C 語言裏 c++ 的意思沒錯,而 Mod 及C 語言的 %,是取餘數的除法喔。
更多指令用法可以在innoBasic Workshop2中按F1,有更詳細的中文說明喔!
頁: [1]
查看完整版本: 請問遞增的判斷寫法