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