2012年11月21日 星期三

Visual Basic, VB 資源

VB真好玩

VB 2010 Express 範例程式

Visual Studio 2010 Express ISO檔 (1.8GB)

請在VB2010 Express下練習編譯執行下列範例

example -01 

Module Module1  '逗號後面表示為註解
    Sub Main()  'VB Console Application (控制台應用程式的主程式開始) 
        Console.WriteLine("Hello Robot!")  '印出字串
        Console.Write("Press any key to accomplish.")  '提示使用者按enter鍵結束
        Console.ReadLine()  '讀取使用者鍵盤輸入  
    End Sub  '(控制台應用程式的主程式結束)  
End Module

example -02  Randomize 函式   Rnd 函式

Module Module1  '逗號後面表示為註解
    Sub Main()  'VB Console Application (控制台應用程式的主程式開始)
        Dim a As Integer  '宣告一個整數integer的變數variable
        Randomize()  ' Randomize 將使用 Timer 函式傳回的值做為新的種子值,來初始化亂數產生器。
        a = CInt(Int((100 * Rnd()) + 1))  '計算, 取 1-100 的亂數
        Console.WriteLine("The Random Number is " & a & ".")  '印出字串
        Console.Write("Press any key to accomplish.")  '提示使用者按enter鍵結束
        Console.ReadLine()  '讀取使用者鍵盤輸入  
    End Sub  '(控制台應用程式的主程式結束)  
End Module

example -03  For...Next 迴圈

Module Module1  '逗號後面表示為註解
    Sub Main()  'VB Console Application (控制台應用程式的主程式開始)
        Dim a As Integer  '宣告一個整數integer的變數variable
        Dim n As Integer
        Randomize()  ' Randomize 將使用 Timer 函式傳回的值做為新的種子值,來初始化亂數產生器。
        For n = 1 To 10 Step 1  'for 迴圈loop , n=1開始, 當n<=10時, 執行 loop 內的指令, 執行完畢 n+1 
            a = CInt(Int((100 * Rnd()) + 1))  '計算, 取 1-100 的亂數
            Console.WriteLine("The Random Number is " & a & ".")  '印出字串
        Next 
        Console.Write("Press any key to accomplish.")  '提示使用者按enter鍵結束
        Console.ReadLine()  '讀取使用者鍵盤輸入  
    End Sub  '(控制台應用程式的主程式結束)  
End Module

example -04  If...Then...Else 條件判斷 

Module Module1  '逗號後面表示為註解
    Sub Main()  'VB Console Application (控制台應用程式的主程式開始)
        Dim a As Integer  '宣告一個整數integer的變數variable
        Dim n As Integer
        Randomize()  ' Randomize 將使用 Timer 函式傳回的值做為新的種子值,來初始化亂數產生器。
        For n = 1 To 10 Step 1  'for 迴圈loop , n=1開始, 當n<=10時, 執行 loop 內的指令, 執行完畢 n+1 
            a = CInt(Int((100 * Rnd()) + 1))  '計算, 取 1-100 的亂數
            Console.WriteLine("The " & n & "th Random Number is " & a & ".")  '印出第n個隨機數的字串
            '//////////////////////////////////////////////////////////////////////////////////////////////////
            '//模擬跟線自走車的演算法  
            '//////////////////////////////////////////////////////////////////////////////////////////////////
            If (a < 45) Then   ' if 條件判斷
                'Console.WriteLine("Light Sensor: " & a & ", Detect: BLACK, Left Power: 80, Right Power: 50 ")
                Console.WriteLine("光感值: " & a & ", 偵測到黑色區域, 左輪Power輸出: 80, 右輪Power輸出: 50 ")
            End If   'if 條件判斷結束

            If (a > 45) Then   ' if 條件判斷
                'Console.WriteLine("Light Sensor: " & a & ", Detect: WHITE, Left Power: 50, Right Power: 80 ")
                Console.WriteLine("光感值: " & a & ", 偵測到白色區域, 左輪Power輸出: 50, 右輪Power輸出: 80 ")
            End If   'if 條件判斷結束

            If (a = 45) Then   'if 條件判斷
                'Console.WriteLine("Light Sensor: " & a & ", Detect: EDGE, Left Power: 80, Right Power: 80 ")
                Console.WriteLine("光感值: " & a & ", 偵測到黑線邊緣, 左輪Power輸出: 80, 右輪Power輸出: 80 ")
            End If   'if 條件判斷結束   
            '//////////////////////////////////////////////////////////////////////////////////////////////////
        Next  'for 迴圈loop 程式碼區塊結束
        Console.Write("Press any key to accomplish.")  '提示使用者按enter鍵結束
        Console.ReadLine()  '讀取使用者鍵盤輸入  
    End Sub  '(控制台應用程式的主程式結束)  
End Module

example -05

Module Module1  '逗號後面表示為註解
    Sub Main()  'VB Console Application (控制台應用程式的主程式開始)
        Dim a As Integer  '宣告一個整數integer的變數variable
        Dim b, loops As Integer
        Dim n As Integer
        Randomize()  ' Randomize 將使用 Timer 函式傳回的值做為新的種子值,來初始化亂數產生器。
        '模擬光感測器讀值30次
        loops = 0  '紀錄自走車完成迴圈數--變數歸零
        For n = 1 To 30 Step 1  'for 迴圈loop , n=1開始, 當n<=30時, 執行 loop 內的指令, 執行完畢 n+1 
            a = CInt(Int((100 * Rnd()) + 1))  '計算, 取 1-100 的亂數
            Console.WriteLine("The " & n & "th Random Number is " & a & ".")  '印出第n個隨機數的字串
            '//////////////////////////////////////////////////////////////////////////////////////////////////
            '//模擬跟線自走車的演算法  
            '//////////////////////////////////////////////////////////////////////////////////////////////////
            If (n Mod 5 = 0) Then   'n除以5的餘數等於0, n 為 5 的倍數
                b = 30   '表示第二顆感測器看到黑色起跑線
            Else
                b = 60   '表示第二顆感測器看到白色區域 (奔跑中), n 不為 5 的倍數 
            End If
            If (b < 45) Then  '表示第二顆感測器看到黑色起跑線
                loops = loops + 1  '紀錄自走車完成迴圈數--變數+1更新
                Console.WriteLine("Run " & loops & "th Loop..")
            End If
            If (loops >= 5) Then '表示自走車已完成5圈
                Console.WriteLine("Five-loop Task Completed!")
                Exit For
            End If
            If (a < 45) Then   ' if 條件判斷
                'Console.WriteLine("Light Sensor: " & a & ", Detect: BLACK, Left Power: 80, Right Power: 50 ")
                Console.WriteLine("光感值: " & a & ", 偵測到黑色區域, 左輪Power輸出: 80, 右輪Power輸出: 50 ")
            End If   'if 條件判斷結束

            If (a > 45) Then   ' if 條件判斷
                'Console.WriteLine("Light Sensor: " & a & ", Detect: WHITE, Left Power: 50, Right Power: 80 ")
                Console.WriteLine("光感值: " & a & ", 偵測到白色區域, 左輪Power輸出: 50, 右輪Power輸出: 80 ")
            End If   'if 條件判斷結束

            If (a = 45) Then   'if 條件判斷
                'Console.WriteLine("Light Sensor: " & a & ", Detect: EDGE, Left Power: 80, Right Power: 80 ")
                Console.WriteLine("光感值: " & a & ", 偵測到黑線邊緣, 左輪Power輸出: 80, 右輪Power輸出: 80 ")
            End If   'if 條件判斷結束   
            '//////////////////////////////////////////////////////////////////////////////////////////////////
        Next  'for 迴圈loop 程式碼區塊結束
        Console.Write("Press any key to accomplish.")  '提示使用者按enter鍵結束
        Console.ReadLine()  '讀取使用者鍵盤輸入  
    End Sub  '(控制台應用程式的主程式結束)  
End Module

機器人跟線與數線的設計 http://dyu0001.blogspot.com/2011/11/blog-post_09.html 流程圖