1 / 28

程式語言 -Visual Basic

程式語言 -Visual Basic. 重覆結構. 重覆結構. 重覆結構俗稱迴圈( Loop ) 主要功能:重複執行指定動作,達到累積運算效果 可分為 計次迴圈:程式會依指定次數重複執行 條件迴圈:當符合條件時,重複執行指定程式. 計次迴圈 For……Next. 語法 For 計次變數 = 初始值 To 終止值 [Step 間隔值 ] 程式區段 Next 計次變數 剛開始執行迴圈時,會將初始值指定給計次變數 當計次變數值介於初始值和終止值,則執行 程式區段 ,然後遇到 Next ,將計次變數加上間隔值,再重新回到 For… 執行

zwi
Download Presentation

程式語言 -Visual Basic

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 程式語言-Visual Basic 重覆結構

  2. 重覆結構 • 重覆結構俗稱迴圈(Loop) • 主要功能:重複執行指定動作,達到累積運算效果 • 可分為 • 計次迴圈:程式會依指定次數重複執行 • 條件迴圈:當符合條件時,重複執行指定程式

  3. 計次迴圈 For……Next • 語法For 計次變數=初始值 To 終止值 [Step 間隔值]程式區段Next 計次變數 • 剛開始執行迴圈時,會將初始值指定給計次變數 • 當計次變數值介於初始值和終止值,則執行程式區段,然後遇到Next,將計次變數加上間隔值,再重新回到For…執行 • 若計次變數超過終止值,則跳離迴圈

  4. 計次迴圈注意事項 • [Step 間隔值] 表示可省略,則預設間隔值為1 • Next 計次變數 也可簡寫成Next • 間隔值可以為正數,也可以為負數,但須注意要讓計次變數最終可以超過終止值,否則將行成無窮迴圈 • 間隔值為正數時,終止值要大於初始值 • 間隔值為負數時,終止值要小於初始值

  5. For 迴圈流程圖

  6. 範例1 • 計算1到100的總和Private Sub Button1_Click(ByVal …. Dim i, s As Integer For i = 1 To 100 s = s + i Next i Label1.Text = s End Sub

  7. 練習1 • 請設計計算1到100的奇數和的程式

  8. 練習2 • 請設計一程式,由使用者輸入一數字,然後計算出1到該數字的偶數和,若輸入數字為錯誤(小於1),則顯示錯誤訊息

  9. 格式化輸出 • vbNewLine、vbCrLf常數 • vbNewLine與vbCrLf是VB提供用來進行強迫換行的字元常數 • 當程式執行到vbNewLine與vbCrLf時,便會將插入點移至下一行的最前面,進行換行 測試: TextBox1.Text=“GoodMorning!” & vbNewLine & “早安!”

  10. vbTab常數 vbTab的作用就相當於文書處理軟體中的Tab 可用來進行編排時的定位設定 當執行到vbTab時,便會將插入點移至下一個定位點顯示,每個定位點間可以容納8個字元。 測試 TextBox1.Text=“漢堡”&vbTab & “薯條” & vbTab & “可樂”

  11. 範例2 Private Sub Form1_Load(ByVal sender As ……… Dim i, j As Integer Dim a As String For i = 1 To 4 For j = 1 To 5 a &= “*” Next a &= vbNewLine Next MsgBox(a) End Sub 利用For 迴圈印出下圖 ***** ***** ***** *****

  12. 練習3 請改寫範例2成為下列圖案 * ** *** ****

  13. 練習4 請改寫範例2成為下列圖案 * ** *** ****

  14. 練習5 請改寫範例2成為下列圖案 * *** ***** *******

  15. 練習6 請利用for 迴圈印出下列之九九乘法表 1*1=1 2*1=2 3*1=3 ………….9*1=9 1*2=2 2*2=4 3*2=6 ………….9*2=18 | | | | 1*9=9 2*9=18 3*9=27 ………….9*9=81

  16. 練習7 請將練習6之九九乘法表改為九宮格式 1*1=1 2*1=2 3*1=3 | | | 1*9=0 2*9=18 3*9=27 4*1=4 5*1=5 6*1=6 | | | 4*9=36 5*9=45 6*9=54 7*1=7 8*1=8 9*1=9 | | | 7*9=63 8*9=72 9*9=81

  17. 條件迴圈 • 前測迴圈 Do [While | Until ] 條件式 程式區段Loop • 後測迴圈:至少執行一次 Do 程式區段 Loop [While | Until] 條件式 While 條件 True 程式區段 False Loop Loop之後的程式

  18. 範例3-計算2的N次方 • Private Sub Button1_Click(ByVal …. Dim i, p ,N As Integer i=1 : p=1 N=Val(TextBox1.Text) Do While i <= N p = p * 2 i = i + 1 Loop Label1.Text=“2的” & N & “次方等於” & pEnd Sub

  19. 範例4-模擬四星彩開獎 Private Sub Button1_Click(ByVal …… Dim N, i As Integer N = 0 i = 1 Randomize() Do While i <= 4 N = Int(Rnd() * 10) Select Case i Case 1 : TextBox1.Text = N Case 2 : TextBox2.Text = N Case 3 : TextBox3.Text = N Case 4 : TextBox4.Text = N End Select i = i + 1 Loop End Sub

  20. 練習8 • 請利用Do …Loop Until迴圈設計猜數字遊戲 • 請使用輸入函數InputBox()要求使用者輸入數字 • 亂數產生一1~100之間的數字 a • 若輸入的數字大於產生的亂數,使用輸出函數MsgBox()顯示「太大了」,反之則顯示「太小了」,若一樣則顯示「答對了」。並顯示共猜了幾次 • InputBox()簡單用法: • 存放資料之變數=InputBox(“說明文字”) • 例 a = InputBox(“請輸入一個數字”)

  21. 範例5 利用輾轉相除法,計算兩數之最大公因數 說明:輾轉相除法就的原理就是(a,b)=(b,r) r為a除以b的餘數。當a能夠被b除盡 即r為0時,b即為最大公因數 舉例:(48,33)=>(33,15)=>(15,3)=>(3,0)

  22. Dim a, b, r As Integer a = Val(TextBox1.Text) b = Val(TextBox2.Text) Do While b > 0 r = a Mod b a = b b = r Debug.Print("a=" & a & "b=" & b) Loop Label3.Text = "最大公因數為" & a *Debug.Print為及時運算視窗偵錯用指令

  23. 陣列的使用 • 「陣列」的基本原理是來自數學中的「矩陣」。 • 所謂「陣列」就是一群資料型別相同的變數,在主記憶體中能擁有連續存放空間的集合。 • 例如:我們想記錄50位學生的成績,便宣告一個score(49)的整數陣列,其中score是陣列名稱。此時在主記憶體中會保留50個連續位置來存放score(0)~score(49)等陣列元素,我們可以利用來存放50位同學成績。

  24. 「陣列」中每個元素相當於一個變數,在「陣列」中存取變數只需要指定索引指標就可以。通常為方便程式處理,會以座號當作陣列的索引指標,但因為索引指標是由0開始,所以要記得減1。「陣列」中每個元素相當於一個變數,在「陣列」中存取變數只需要指定索引指標就可以。通常為方便程式處理,會以座號當作陣列的索引指標,但因為索引指標是由0開始,所以要記得減1。 • 由於陣列的索引指標也可以使用變數當索引指標(如score(x)),因此配合計數For廻圈,不但可以免除為大量變數命名的困擾,而且使得程式碼的撰寫將更簡潔而有效率。

  25. 陣列宣告 • 語法:Dim arrayname(index1 [, index2 […..]]) As type • 功能:宣告一維(二維…)陣列並指定陣列所存取的資料型別 • 說明 • arrayname:代表陣列名稱,其命名方式和識別字命名一樣。 • index:為索引指標。可為常數、變數或運算式等,只有一個index時稱為「一維陣列」;若有二個index時稱為「二維陣列」;以此類推…。 • index範圍由0 ~ index為止。譬如:Dim a(5) As Integer,可定義出a(0)、a(1)、a(2)、a(3)、a(4)、a(5)共6個元素。

  26. 練習9 • 請設計一大樂透開獎程式 • 規則: • 從1~49中選出6個號碼及1個特別號 • 號碼不得重複

  27. 練習10 設計一程式,計算兩數值之最小公倍數

More Related