Download presentation
Presentation is loading. Please wait.
1
流程控制、陣列 台南市聖功女子高級中學 毛全良
2
前言 教案 探討
3
前言 主題 主要內容 說明 參考節數 三、流程控制 1.選擇敘述 1-1選擇敘述功能與用途 1-2單一條件選擇敘述 1-3多重條件選擇敘述
8-14 2.重複敘述 2-1重複敘述功能與用途 2-2計數式重複敘述使用方法 2-3條件式重複敘述使用方法 2-4重複敘述中斷方法※
4
主題 主要內容 說明 參考節數 四、陣列 1.一維陣列 1-1一維陣列功能與用途 1-2一維陣列記憶體配置方式 2-8 2.多維陣列※ 2-1多維陣列功能與用途 2-2多維陣列記憶體配置方式
5
「基礎程式設計」 教學重點 (三)流程控制 本主題重點為介紹程式語言之選擇與重複敘述等流程控制結構,並培養學生具備正確使用流程控制語法的能力。各子題教學重點分述如下:
6
(三)流程控制 1-1選擇敘述功能與用途:說明選擇敘述的功能,及其在程式設計中的使用時機。
1-2單一條件選擇敘述:舉例說明如何正確地使用單一選擇敘述。 1-3多重條件選擇敘述:舉例說明如何正確地使用雙重、多重條件選擇敘述、以及巢狀選擇敘述。
7
2-1重複敘述功能與用途:說明重複敘述的功能,及其在程式設計中的使用時機。
2-2計數式重複敘述使用方法:舉例說明如何正確地使用計數式重複敘述。 2-3條件式重複敘述使用方法:舉例說明如何正確地使用條件式重複敘述。 2-4重複敘述中斷方法:舉例說明如何正確地中斷重複敘述的執行。
8
(五)陣列 本主題主要在介紹陣列,以培養學生在程式設計中運用陣列的能力。授課重點除了說明陣列的用途與使用方法外,應進一步引導學生瞭解陣列與基本資料型態的關係,以及陣列在電腦內部記憶體的配置方式,並教導學生如何利用迴圈及陣列的搭配來設計演算法。各子題教學重點分述如下:
9
(五)陣列 1-1一維陣列功能與用途:舉例並說明一維陣列的功能,及其在程式設計中的使用時機。
1-2一維陣列記憶體配置方式:說明一維陣列的內部記憶體配置方式。 2-1多維陣列功能與用途:舉例並說明多維陣列的功能,及其在程式設計中的使用時機。 2-2多維陣列記憶體配置方式:說明多維陣列的內部記憶體配置方式。
10
二、教學方法 (一)本課程之教學應以「做中學」為重點,並鼓勵學生進行自主性、探索式的學習。 (二)教學活動之設計宜強調分組合作解決問題。
(三)教學單元目標之設定應重視學生的個別差異。對於學習能力較佳的學生,應鼓勵其自行進行專題研究;對於學習能力較弱的學生則應適度調整其學習內容。
11
(四)教師應於每學期上課前確定學校可提供教學所需之軟、硬體設備,並應使用合法授權之軟體進行教學。教師亦可視實際需要在教學中使用適當之自由軟體。
(五)對於視障、肢障或有其他特殊需求之學生,應設法協調學校或社福單位提供電腦操作輔具。
12
教案 流程控制、陣列
13
單元摘要 以猜數字遊戲複習選擇敘述,並加強亂數函數及亂數種子之使用,藉由猜數字遊戲流程分析來說明重複敘述功能與用途。
以有限制次數的猜數字遊戲來說明,計數式重複敘述及其可能遇到的問題。 以無限制的猜數字遊戲來說明,條件式重複敘述使用方法。
14
單元摘要 以九九乘法表來練習問題的分析、流程圖的繪製,並建立巢狀迴圈運用的觀念。 以賓果遊戲練習重複敘述,說明陣列功能的功能與用途。
以發撲克牌練習,來整合流程控制及陣列觀念。
15
學習目標 能夠分析程式的流程與結構化邏輯概念。 能夠撰寫、閱讀、修改程式,並且進行程式的測試、執行與除錯。
培養學生具備正確使用流程控制語法的能力。 培養學生在程式設計中運用陣列的能力,並建立正確觀念。
16
教學活動計畫 (一)猜數字遊戲 (二)有限制次數的猜數字遊戲 (三)無限制次數的猜數字遊戲 (四)九九乘法表 (五)賓果遊戲 (六)實作評量
17
(一)猜數字遊戲 1.教師以猜數字遊戲和學生互動,以引起學生注意。 2.教師告知學生,設計所需之元件及程式,並請學生練習。
3.教師以問答方式詢問學生每一行指令意義,以瞭解學生對於選擇敘述的熟悉度。
18
(一)猜數字遊戲 4.教師講述程式每一指令的意義,並強調亂數函數及亂數種子的用法,及複習選擇敘述的用法。
5.引導學生畫出流程圖,並請學生討論要如何才能猜數字,以引導出重複敘述的觀念及功能。
19
Dim a, b As Integer Randomize() b = Int(Rnd() * 100) + 1 a = Val(TextBox1.Text) If a = b Then MsgBox(“猜對了” & b) ElseIf a > b Then MsgBox(“太大” & b) Else MsgBox("太小" & b) End If
20
4-1.亂數函數 RND()會產生0到1之間的隨機亂數 4-2.亂數種子 Randomize()使用於亂數函數RND()之前,預設以系統時間當作亂數產生器的種子,用以避免每一次亂數所產生的數是一樣的 4-3.取整數函數 Int()能將一數值取整數並傳回 4-4.訊息視窗函數 MsgBox(訊息文字,格式碼,標題)顯示訊息,讓使用者程式互動
21
3.選擇敘述 If 條件式 Then 敘述區段 End If 敘述區段1 Else 敘述區段2
22
If 條件式1 Then 敘述區段1 ElseIf 條件式2 Then 敘述區段2 ElseIf 條件式3 Then 敘述區段3 ElseIf 條件式N Then 敘述區段N Else 敘述區段N+1 End If
23
(二)有限制次數的 猜數字遊戲 1.教師以問答方式幫學生複習並加強計數式重複敘述的觀念及功能。
(二)有限制次數的 猜數字遊戲 1.教師以問答方式幫學生複習並加強計數式重複敘述的觀念及功能。 2.以只能猜三次的猜數字遊戲程式來講解計數式重複敘述的使用方法。 3.請學生實作練習。
24
(二)有限制次數的 猜數字遊戲 4.請學生二人一組互相玩對方所設計出的猜數字遊戲,並測試對方程式是否有問題。
(二)有限制次數的 猜數字遊戲 4.請學生二人一組互相玩對方所設計出的猜數字遊戲,並測試對方程式是否有問題。 5.教師詢問學生是否有人於三次內猜對,並請學生討論如何才能讓使用者猜對為止,引導出條件式重複敘述的觀念。 6.教師講述條件式重複敘述的使用方法及觀念。
25
Dim a, b, i As Integer Randomize() b = Int(Rnd()
Dim a, b, i As Integer Randomize() b = Int(Rnd() * 100) + 1 For i = 1 To 3 Step 1 a = Val(InputBox("請猜一個小於100的正整數", "猜數字遊戲")) If a = b Then MsgBox("猜對了" ) Exit For ElseIf a > b Then MsgBox("太大") Else MsgBox("太小" ) End If Next End Sub
26
4-1.文字轉數字函數 Val(Str)會將Str字串轉換成數值資料 4-2.輸入函數 InputBox(提示訊息,標題,預設值),是讓使用者輸入資料的對話視窗
27
3.重複敘述 For 迴圈控制變數=初值 To 終止值 Step 改變量 敘述區段 Next Do While 條件式(成立則執行迴圈)
Loop
28
Do 敘述區段 Loop While 條件式(成立則執行迴圈) Do Until 條件式(成立則離開迴圈) Loop Loop Until 條件式(成立則離開迴圈)
29
(三)無限制次數的 猜數字遊戲 1.教師以問答方式幫學生複習並加強條件式重複敘述的觀念及功能。
(三)無限制次數的 猜數字遊戲 1.教師以問答方式幫學生複習並加強條件式重複敘述的觀念及功能。 2.以無限制次數的猜數字遊戲程式來講解條件式重複敘述的使用方法。 3.請學生實作練習。
30
(三)無限制次數的 猜數字遊戲 4.請學生二人一組互相玩對方所設計出的猜數字遊戲,並測試對方程式是否有問題,教師詢問學生是否有人都猜不出來。
(三)無限制次數的 猜數字遊戲 4.請學生二人一組互相玩對方所設計出的猜數字遊戲,並測試對方程式是否有問題,教師詢問學生是否有人都猜不出來。 5.請學生討論計數式和條件式重複敘述的優缺點及其適合的應用。 6.教師總結二者的使用方式及其適用性。
31
Dim a, b As Integer Randomize() b = Int(Rnd() * 100) + 1 a = 0 Do a = Val(InputBox("請猜一個小於100的正整數", "猜數字遊戲")) If a = b Then MsgBox(“猜對了”) ElseIf a > b Then MsgBox("太大“) Else MsgBox("太小") End If Loop Until a = b
32
實作 (1)Do While 條件式(成立則執行迴圈) 敘述區段 Loop (2) Do Loop While 條件式(成立則執行迴圈)
(3) Do Until 條件式(成立則離開迴圈)
33
(四)九九乘法表 1.教師請學生上台背誦九九乘法表,並請學生於白板上寫出九九乘法表。 2.請學生觀察九九乘法表之規律性。
3.以一九乘法表請學生練習計數式重複敘述。
34
(四)九九乘法表 4.請學生思考如何由一九乘法表設計為九九乘法表,引導出巢狀重複敘述使用觀念。
5.以九九乘法表配合流程圖來講述巢狀重複敘述,並請學生練習。
35
一九乘法表 Dim i As Integer Label1.Text = "" For i = 1 To 9 Step 1
Label1.Text = Label1.Text & "1*" & Str(i) & "=" & Str(i) & " " Next
36
九九乘法表 Dim i, j As Integer Label1.Text = "" For i = 1 To 9 Step 1 For j = 1 To 9 Label1.Text = Label1.Text & Str(i) & "*" & Str(j) & "=" & str(i * j) & " " Next Label1.Text = Label1.Text & Chr(13)
37
5-1. 數字轉文字函數 str(number)會將number數值資料轉換成字串 5-2.指定字串格式函數 Format(運算式,格式)是將數值或字串依指定的格式轉換成字串;教師可以將程式中的str函數改為Format函數,讓顯示的文字能對齊
38
巢狀重複敘述 For 迴圈控制變數1 = 初值 To 終止值 Step 改變量 敘述區段1
敘述區段2 Next 敘述區段3
39
(五)賓果遊戲 1.教師以設計好的賓果遊戲和學生互動,以引起學生興趣。 2.說明賓果遊戲所需要的元件及程式,並請學生練習。
3.請學生討論遊戲的缺點,如:所產生的數字會重複,以引導出陣列的使用觀念。
40
(五)賓果遊戲 4.教師以加入陣列的賓果遊戲,講解陣列的使用,並請學生實作。 5.請學生兩人一組,互相測試對方所做的賓果遊戲。
41
賓果遊戲程式 Dim b, i As Integer Randomize() Label1.Text = "目前的數字有1~25" For i = 1 To 25 Step 1 b = Int(Rnd() * 25) + 1 MsgBox("數字為:" & (b)) Label1.Text = Label1.Text & Str(b) Next
42
賓果遊戲(不重複數字) Dim b, i As Integer Dim a(25) As Integer Randomize()
Label1.Text = "目前的數字有1~25" For i = 1 To 25 Step 1 a(i) = 0 Next
43
For i = 1 To 25 Step 1 b = Int(Rnd() * 25) + 1 Do While a(b) = 1 Loop a(b) = 1 MsgBox("數字為:" & (b)) Label1.Text = Label1.Text & Str(b) Next
44
4.陣列 陣列是一個具有結構性的資料儲存空間,由元素所構成,將相同資料型態的資料或數值放在一起,並給予一個陣列名稱;是利用索引(Index)與陣列名稱來存取陣列中的元素。
45
4-1. 一維陣列 Dim 陣列名稱(元素個數) As 資料型別 4-2. 二維陣列 1
4-1.一維陣列 Dim 陣列名稱(元素個數) As 資料型別 4-2.二維陣列 1.Dim 陣列名稱(元素1個數,元素2個數) As 資料型別 2. Dim 陣列名稱(元素1個數,元素2個數)
46
(六)實作評量 1.教師以發撲克牌程式設計,要求學生以分組的方式討論並畫出流程圖並繳交。 2.教師以正確的流程圖講解發撲克牌程式的步驟。
3.學生依照教師的流程圖設計程式並繳交。 4.教師講解以正確的發撲克牌程式並對應流程圖講解。
47
探討 重複敘述中斷方法((二)有限制次數的猜數字遊戲) 陣列與基本資料型態的關係 陣列記憶體配置方式 如何利用迴圈及陣列的搭配來設計演算法
48
敬請指教
Similar presentations