圓創力科技

 找回密碼
 立即註冊

QQ登錄

只需一步,快速開始

查看: 4152|回復: 4

請問遞增的判斷寫法

  [複製鏈接]
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,有更詳細的中文說明喔!
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

QQ|Archiver|手機版|小黑屋|圓創力科技有限公司 IOP Robotic Technology Co.,Ltd Tel: 07-3924582 Fax: 07-3924001

GMT+8, 2024-11-23 21:38 , Processed in 0.027738 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回復 返回頂部 返回列表