Page 7 - eFC10810_程式語言與設計(下)_課本PDF
P. 7

5                           5  練功直播

                         練功直播
                         練功直播   請參考上述程式範例,完成下列的挑戰!
                                                    6-5
                                                       學習社團
                      5                             6-5  學習社團           5
                                                                        重複結構
                     重複結構   挑戰  將數值範圍改為 1 ~ 100,若終極密碼為 66,則使用循序搜尋法和二分搜  在既有基礎上,藉由修改部分程式,
                          尋法搜尋時,其資料搜尋的過程分別為何?請先用紙筆列出其結果,再修改       1. 利用氣泡排序法排列 N 筆資料的順序,最多做幾次的排序循環?
                          上述程式執行驗證。
                                                     (A) N/2 次 (B) N 次 (C) N-1 次 (D) N+1 次。
                          (以下為搜尋 80 的結果)
                                                 使學生習得更深入的語法,了解程式

                                                      2. 利用氣泡排序法,將以下數列資料 30,50,20,60,40 依遞減順序排列,請問在
                       參考結果                          第一次循環結束後,此數列應是下列哪一個?
                                                     (A) 30,50,60,40,20   (B) 50,30,60,40,20
                                                     (C) 20,30,40,50,60   (D) 30,40,50,60,20。
                                                 指令的各類用法。

                                                      3. 下列哪一組資料適用二分搜尋法?
                                                     (A) 1,3,6,2,7,10,9,30
                                                             (B) -3,-7,10,11,18,20
                                                     (C) -1,-2,-3,0,1,2,3   (D) -6,-5,0,1,8,10,60。
                                                       4. 對下列 7 筆已排序的資料 (2, 13, 27, 32, 44, 58, 67),以二分搜尋法找尋關
                      6                              鍵值為 58 的資料,總共要作幾次比較?      6
                      陣列                                                陣列
                                                     (A) 2 (B) 3 (C) 4 (D) 6。
                                                    5. Z 先生、X 小姐、W 小姐及 Y 先生四人是 "Who is the leader?" 影片的主要演員,
                                                   為了避免爭排名,製片公司決定按姓名順序由小到大來排列,請參考本節的內容,
                                                   使用氣泡排序法完成下表的全部過程及結果。
                                                    比較次數  資料排列情形  是否交換  說明
                                                     1   Z   X   W   Y  是  Z 比 X 大,需交換位置
                                                     …
                      7                                                 7     6
                      函式                            6. 夢想家旅行社年 終推出戳戳樂尋寶活動,100 元可以戳一個洞,在編號 1 ~  函式
                     與副程式                                               與副程式
                                                   1000 的格子中藏有日本豪華五日行的大獎。小明用循序搜尋的方式,而小華則採取 學習社團
                                                                     7-3
                                                                     7-3
                                                                       學習社團
                                                                 5                            5. 設計一個旅行團費計算程式。      5 5
                                                   二分搜尋的方法,若獎品放在 758 號的格子內,二人各須花費多少錢才能順利得到
                                                                重複結構                                              重複結構
                                                                                                                  重複結構
                                                   大獎?                                       動作要求:
                                                                       1. 若一 VB 程式片段如下,則呼叫 F(6) 會得到結果為?      ‧ 讓使用者輸入旅行人數(大人及小孩分開輸入)。
                                                                     (A) 54 (B) 66 (C) 36 (D) 72。  ‧ 團費:大人28000元/人,小孩 20000元/人,人數4位(含)以上,每人折1000元。
                                                                                             ‧ 按計算功能鈕,輸出計算的團費。
                                                                     Function F(X) As Integer
                                                                                             (提示:團費請使用 Function 函數)
                                                                       F = X ^ 2 + 2 * X + 6
                      8                                                 8
                     綜合應用                                            End Function 綜合應用      參考結果
                                                                 6       2. 若一 VB 程式片段如下,則呼叫 F(3,5) 會得到結果為?       6
                                                                 陣列                                               陣列
                                                                     (A) 48 (B) -48 (C) 36 (D) -33。
                     146                                                 147
                                                                     Function F(ByVal x, ByVal y) As Integer
                                                                       F = (x ^ 2 - y ^ 2) * 3
                                                                                                                  6
                    FC10810-CH06.indd   146-147                      End Function                                 陣列
                                                                        2019/4/23   上午 05:00:09
                                                                       3. 若一 VB 程式片段如下,則呼叫 F(3,1,1) 會得到結果為?
                                                                     (A) 20 (B) 50 (C) 64 (D) 120。
                                                                     Function F(ByVal x, ByVal y, ByVal z) As Integer
                                                                       F = (x + y * 2 + z * 3) ^ 2
                                                                     End Function
                                                                 7       4. 若一 VB 程式片段如下,則呼叫 A(B(2, 3)) 會得到結果為?      7 7
                                                                 函式                                               函式 函式
                                                                與副程式                                              與副程式
                                                                                                                  與副程式
                                                                     (A) 24 (B) 30 (C) 33 (D) 75。
                        6  學習社團                                      Function A(ByVal x As Integer) As Integer
                                                                       A = x * 3
                                                                     End Function
                                                                     Function B(ByVal x As Integer, ByVal y As Integer) As
                                                                     Integer
                       每節末設有「學習社團」,供學生                          綜合應用 8    B = x + y ^ 2                           8 8 綜合應用
                                                                                                                  綜合應用
                                                                     End Function
                                                                190                                               191
                       運用所學自我評量。
                         學習目標回顧 7                             學習目標回顧         7  學習目標回顧
                        6-1   1. 陣列(Array)是一群相同型態資料的集合,儲存於記憶體連續位置,只需   2. 二維陣列初始值:
                          要宣告一個變數名稱即可使用。           (1) 初始值設定語法:             每章末設有統整性的重點整理,協
                          2. 陣列可分為一維陣列和多維陣列,一維陣列註標值只有 1 個,註標值超過 2  陣列初始值設定語法
                          個時,便稱為多維陣列。
                        6-2   1. 一維陣列宣告:            Dim 陣列名稱 ( ) As 資料型態 = { 陣列初始值串列 }
                                                   (2) 宣告一個包含初始值的二維陣列,例如:      助學生掌握學習重點,便於進行完
                      5   (1) 宣告語法:                                    5
                     重複結構                          Dim B( , ) As Integer = {{2, 4, 6, 8}, {10, 12, 14, 16}, {18, 20, 22, 24}}  重複結構
                              一維陣列宣告語法
                                                           欄
                           Dim 陣列名稱 ( 最大註標值 ) As 資料型態
                                                      B(0,0) = 2  B(0,1) = 4  B(0,2) = 6  B(0,3) = 8
                          (2) 宣告一個陣列 A(n),其註標值從 0 開始編號,最大註標值為 n,包含陣         整有效的複習。
                          列元素為 A(0) ~ A(n),此陣列共有 (n+1) 個陣列元素。  列  B(1,0) = 10  B(1,1) = 12  B(1,2) = 14  B(1,3) = 16
                                                      B(2,0) = 18  B(2,1) = 20  B(2,2) = 22  B(2,3) = 24
                          (3) 陣列宣告後,若使用範圍之外的註標值會出現錯誤訊息。
                          2. 一維陣列初始值:              (3) 宣告陣列並同時設定初始值時,不可指定最大註標值,陣列大小由初始
                      6   (1) 初始值設定語法:             值個數決定。              6
                      陣列                                               陣列
                              陣列初始值設定語法            3. 「For Each-Next」迴圈:
                           Dim 陣列名稱 ( ) As 資料型態 = { 陣列初始值串列 }  (1) For Each-Next 語法:
                          (2) 宣告一個包含初始值的一維陣列,例如:       For Each-Next 語法
                          Dim A( ) As Integer = {5, 7, 9, 11, 13, 15}  For Each 變數 In 陣列
                           A(0) = 5  A(1) = 7  A(2) = 9  A(3) = 11 A(4) = 13 A(5) = 15      程式敘述
                                                    Next
                          (3) 宣告陣列並同時設定初始值時,不可指定最大註標值,陣列大小由初始  (2) For Each Next 可以利用迴圈取得從陣列第一個元素到最後一個元素的所
                      7   值個數決定。                   有資料,和 For Next 的差異是 For Each Next 可以在不確定陣列大小時  7
                      函式                                               函式
                     與副程式  6-3   1. 二維陣列宣告:        使用。                 與副程式
                          (1) 宣告語法:              6-4   1. 清單控制項:可列出所有選項供使用者點選做為資料輸入的方式,Visual
                                                   Basic 常用的清單控制項有:清單方塊、下拉式清單方塊和核取清單方塊三種。
                                                                        成果粉絲專頁
                               二維陣列宣告語法                         核取式清單方塊  CH7 成果粉絲專頁  8
                                                                    CH7
                           Dim 陣列名稱 ( 列的最大註標值 1, 欄的最大註標值 2) As   名稱  清單方塊   下拉式清單方塊   (CheckedListBox)
                                                      (ListBox)
                                                           (ComboBox)
                           資料型態                          使用下拉式選單顯示 類似 ListBox,但每個項
                                                                  選擇題
                          (2) 宣告二維陣列 B(m, n),此陣列共有 (m+1)×(n+1) 個陣列元素。  作用 顯示所有的清單項目  清單項目  目前面都有一個核取方塊       6. 執行下列 VB 程式,c+d 的運算結果為何?
                                                                       8
                      8   (3) 陣列的維度可以是三維、四維…,陣列宣告格式以二維的概念類推。    重複結構 5       1. Int(Rnd*6)+1 所產生的亂數值的範圍為?      (A) 5634 (B) 90 (C) 9 (D) 18。  5 重複結構
                                                                       綜合應用
                     綜合應用                          實例                (A) 0 到 6 (B) 1 到 6 (C) 1 到 7 (D) 0到7。  A = "a1234": B = "b5678"
                                                                                               c = Val(Mid$(B, 2, 2))
                                                                       2. 執行下列 VB 程式片斷後的結果為何?
                                                                                               d = Val(Strings.Right$(A, 2))
                                                                     (A) 產生 10
                      148                                              149 個 10 到 42 的整數亂數  (B) 產生 10 個 10 到 33 的整數亂數
                                                                     (C) 產生 10 個 10 到 52 的整數亂數  (D) 產生 10 個 20 到 42 的整數亂數。       7. 執行下列 VB 程式,變數 B 的結果為何?
                                                                     For I = 1 To 10          (A) 5 (B) 2 (C) 6 (D) 3。
                                                                 6     a = Int(33 * Rnd(10)) + 10  Sub Main()    6
                                                                 陣列                                              陣列
                                                                     Next I                      Dim A, B, C As Integer
                                                                       3. 執行下列 VB 程式後,變數 Y$ 的結果為何?        A = 2 : B = 3 : C = 5
                                                                     (A) "34" (B) "56" (C) "45" (D) "23"。    Call Cal(A, B - 1)
                                                                                               End Sub
                                                                     X$ = "12345"
                                                                                               Sub Cal(X, Y)
                                                                     Y$ = Mid$(X$, 4, 2)
                                                                                                 X = 5 : Y = 6
                                                                       4. 執行 VB 敘述 Mid$("Future-will-be-always-on-my-side", 8, 6) 的結果為?
                                                                                               End Sub
                                                                     (A) will-b (B) -will-be (C) e-will (D) be-always。
                                                                       5. 利用下列 VB 程式輸出下列結果,則程式空格中應填入什麼內容?           8. 執行下列 VB 程式,輸出之資料為何?
                                                                     (A) Strings.Left(a$, 5-x)   (B) Strings.Right$(a$, x)      (A) 3 4 3 5 (B) 3 5 3 4 (C) 3 5 4 4 (D) 3 4 3 4。
                                                                     (C) Strings.Left(a$, x+1)   (D) Strings.Right$(a$,5-x)。  Sub Main()  7
                                                                 7
                     8  成果粉絲專頁                                  與副程式 函式  執行結果  Sub Main()        Dim X, Y As Integer  函式 與副程式
                                                                            Dim a As String
                                                                                                 X = 3 : Y = 4
                                                                     54321
                                                                     4321    Dim x As Integer    Call f((X), Y)
                                                                     321    x = 0 : a$ = “54321"    Debug.Print(X & Y)
                                                                                               End Sub
                    每章末還有「成果粉絲專頁」,以章                                 21 1    Do                Sub f(ByRef a, ByRef b)
                                                                              Console.WriteLine(    )
                                                                              x = x + 1          Debug.Print(a & b)
                                                                 8                                               8
                                                                綜合應用        Loop While x <= 5    a = a + 1       綜合應用
                    為範圍提供進一步的整合練習。                                        End Sub                b = b + 1
                                                                                               End Sub
                                                                214                                              215
          '$        ᇜኬͦ@/FX JOEE
   2   3   4   5   6   7   8   9   10   11   12