課程名稱:程式設計 授課老師:________

Slides:



Advertisements
Similar presentations
計算機程式及實習 Computer Program Design and Experiment) 期末報告 ppt 南台科技大學機械工程系 姓名 : 蔡中銘 學號 :4A 授課老師 : 謝慶存大帥哥.
Advertisements

1 程式語言 Visual Basic 循序結構、選擇結構 黃瀧輝 老師 Long Hwai,Huang.
Visual Basic 程序设计 第四讲.
第 1 章 公共基础知识 第 2 章 Visual Basic程序开发环境 第 3 章 对象及其操作 第 4 章 数据类型及其运算
計算機程式及實習 期末報告 題目:超級猜一猜
計算機概論 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 演算法與流程圖 4-3 視窗程式語言設計 4-4 資料結構.
計算機程式及實習 期末報告 題目:商店結帳系統
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
第四章 控制结构.
赋值语句与输入、输出语句.
程式語言(I)- Visual Basic 6.0 第 9 章 結構化程式設計
高中信息技术新课程探讨 算法与程序设计教学实践与探讨 江苏省新海高级中学  张丽.
南台科技大學 機械工程系 車輛一甲 學號:4A 學生:黃信成 老師:謝慶存
Access数据库程序设计 总复习.
Visual Basic 2005學習範本 第5章 選擇結構.
課程名稱:程式設計 授課老師:________
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
Visual Basic 期中報告 組長:沈亞臻 組員:蔣佳育 張庭茹
算法和程序设计 第4课 分支结构的算法设计 •.
第五章 数组.
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
Visual Basic程序设计.
BLANK overview.
程式語言Visual Basic 變數的可視範圍
Chapter 1 複習.
CH11.
Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制.
課程名稱:程式設計 授課老師:________
第6章 数 组 6.1 一维数组 6.2 控件数组 6.3 二维数组.
第二章 Visual Basic语言基础.
数组 第 6 章.
第5章 数组 Visual Basic程序设计.
程式語言 -Visual Basic 變數、常數與資料型態.
遠東科技大學資訊工程系 王善揚 可嵌入物件題庫系統 設計與開發 遠東科技大學資訊工程系 王善揚
程式語言 I – VISUAL BASIC 選擇結構語法與應用 Chapter 7 認知
課程名稱:資料庫系統 授課老師:李春雄 博士
Visual Basic 程序设计教程 机械工业出版社同名教材 配套电子教案 2003 年 6月.
ASP动态网页设计实用教程 主讲教师: 开课单位:.
初识Visual Basic.
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
Access VBA程序设计 本章重点 Access Basic编程语言 运算符、函数与表达式 Access Basic语句 模块的使用
第4章 程序控制结构与算法基础.
計算機程式 廖文淵 Department of Computer Science and Engineering
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
Visual Basic 程序设计教程 机械工业出版社同名教材 配套电子教案 2003 年 6月.
第4章 基本的控制结构 4.1 顺序结构 4.2 选择结构程序设计 4.3 循环结构 4.4 综合实例 退出.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
機器人-Robot Nobody 機器人.
第12章 VBA模块设计.
新觀念的 VB6 教本 第 6 章 資料型別.
Ch03 基本輸出入介面設計 視窗程式設計 授課教師:王大瑾.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
題目:南台飲料店結帳系統 南台科技大學 機械工程系 車輛一甲 學號:4A
菜单、状态栏和工具栏 菜单 状态栏 工具栏 编写代码 创建用户界面 Debug and Deploy 使用 Visual
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
江西财经大学信息管理学院 《数据库应用》课程组2007
第六章 選擇結構 (應用:核取方塊、選項按鈕、框架)
小结 郭清溥.
Ch04 VB.NET的流程控制 網頁程式設計.
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作 南台科技大學 機械工程系 題目:南台電影城結帳系統 班級 : 車輛一甲 學號 : 4A 授教學生: 阮偉倫 授課老師: 謝慶存.
程序基础 2019/4/25.
第二章、第三章错题分析.
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作
选择结构设计 第 4 章 程序流程有三种最基本的控制结构,即顺序结构、选择结构和循环结构。
第四章 控制结构 1、顺序控制结构 2、选择结构 3、循环结构.
程式設計 Visual Basic簡介 週次:4 建國技術學院 資管系 饒瑞佶 2003年10月18日.
算法与Visual Basic程序基础(二)
程序调试与错误处理.
Presentation transcript:

課程名稱:程式設計 授課老師:________ 第 四 章 選擇結構 課程名稱:程式設計 授課老師:________ 2017/3/9

本章學習目標 1.讓讀者瞭解循序結構與選擇結構之不同。 2.讓讀者瞭解選擇結構之種類、語法及適用時機。 2017/3/9

本章內容 4-1.單一選擇結構(IF-Then) 4-2.雙重選擇結構 4-3.多重選擇結構 4-4.巢狀選擇結構 4-5.其他選擇函數 4-6.習題 2017/3/9

選擇結構分類之架構圖 2017/3/9

4-1 單一選擇結構(IF-Then) IF-Then的中文意思就是「如果…就…」。在單一選擇結構中只會執行條件成立時的敘述。一般而言,我們又可以依照敘述的行數區分為兩種: (一)單行敘述 (二)多行敘述 2017/3/9

(一)單行敘述 指當條件式成立之後,所要執行的敘述式只有一行稱之。 【語法1】 If 條件式 Then 敘述1 【語法2】 End If 其中 <條件式>  是一關係運算式 或 邏輯運算式 【注意】單行敘述可省略End If。 【說明】如果「條件式」成立(True),就執行 Then後面的「敘述1」。 如果「條件式」不成立(False),就跳過不執行。 【使用時機】當條件式成立之後,所要執行的敘述式只有一行。 2017/3/9

【流程圖】 流程圖 概念流程圖 2017/3/9

【舉例】只對成績「及格」的學生有興趣。程式碼如下: 第一種寫法 第二種寫法 01 02 03 Dim Score As Integer Score = Val(TextBox1.Text) If Score >= 60 Then MsgBox("通過了") 04 05 If Score >= 60 Then MsgBox("通過了") End If 2017/3/9

(二)多行敘述 指當條件式成立之後,所要執行的敘述式超過一行以上則稱之。 【語法】 If 條件式 Then 敘述1 敘述2 ---- 敘述n End IF 【注意】多行敘述不可以省略End If。 【說明】如果「條件式」成立,就執行 Then後面的「多行敘述」。 【使用時機】當條件式成立之後,所要執行的敘述式是多行。 2017/3/9

【流程圖】 流程圖 概念流程圖 2017/3/9

【舉例】只對成績「不及格」的學生有興趣並且給予鼓勵。程式碼如下: 只有一種寫法 01 02 03 04 05 If Score<60 Then Msgbox(“您必須補考!”) Msgbox(“請再多加油哦!”) Msgbox(“希望補考能夠順利通過!”) End If 2017/3/9

4-2 雙重選擇結構 此種結構是最常被使用的方式,因為大部份的選擇結構的情況可能兩種。例如:判斷及格與不及格、判斷奇數與偶數、判斷男生與女生…等情況,都可以利用此種結構來完成。 2017/3/9

其中<條件式> 是一關係運算式 或 邏輯運算式 【說明】如果「條件式」成立(真),就執行 Then後面的「敘述1」, 【語法】 If 條件式 Then 敘述1 Else 敘述2 End If 其中<條件式>  是一關係運算式 或 邏輯運算式 【說明】如果「條件式」成立(真),就執行 Then後面的「敘述1」, 否則就執行「敘述2」。 【使用時機】當條件只有二種情況。 2017/3/9

【流程圖】 流程圖 概念流程圖 2017/3/9

【實例】依照平均成績來判斷是「及格」與「不及格」兩種情況。 01 02 03 04 05 If Average_Score>=60 Then     MsgBox ("及格") Else     MsgBox ("不及格") End If 2017/3/9

【牛刀小試1】參考第三章的循序結構的例子。請再增加一個功, 即利用「平均成績」來判斷「是否及格」。 程式檔案名稱 ch4.sln 一、表單設計 三、執行結果 2017/3/9

Private Sub Button1_Click(……) Handles Button1.Click 二、程式設計 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 Private Sub Button1_Click(……) Handles Button1.Click Dim A, B As Integer Dim Total As Integer Dim Average As Single A = Val(TextBox1.Text) '將Text1文字方塊的內容轉成數字指定給A變數 B = Val(TextBox2.Text) '將Text2文字方塊的內容轉成數字指定給B變數 Total = A + B '將A與B的值相加後,再指定給Total變數 TextBox3.Text = Total '最後將Total變數的內容,再指定給Text3文字方塊 Average = Total / 2 TextBox4.Text = Average If Average >= 60 Then TextBox5.Text = "及格" Else TextBox5.Text = "不及格" End If End Sub 2017/3/9

【牛刀小試2】利用InputBox輸入身高,如果身高為大於180公分, 則顯示「哇!好高丫」,否則顯示「這才比較正常」。 2017/3/9

Private Sub Button1_Click(……) Handles Button1.Click Dim x As Integer 程式檔案名稱 ch4-2B.sln 01 02 03 04 05 06 07 08 09 Private Sub Button1_Click(……) Handles Button1.Click Dim x As Integer x = Val(InputBox("請輸入身高")) If x > 180 Then MsgBox("哇!好高丫") Else MsgBox("這才比較正常") End If End Sub 2017/3/9

【牛刀小試3】 如果A為偶數,則顯示「A為偶數」, 否則顯示「A為奇數」。 2017/3/9

Private Sub Button1_Click(……) Handles Button1.Click Dim A As Integer 程式檔案名稱 ch4.sln 01 02 03 04 05 06 07 08 09 Private Sub Button1_Click(……) Handles Button1.Click Dim A As Integer A = Val(Textbox1.text) If A Mod 2 = 0 Then MsgBox("偶數") Else MsgBox("奇數") End If End Sub 2017/3/9

【牛刀小試4】請將下列求絕對值的流程圖,撰寫成程式碼。 2017/3/9

Private Sub Button1_Click(……) Handles Button1.Click Dim A As Integer 程式檔案名稱 ch4-2D.sln 01 02 03 04 05 06 07 08 09 10 Private Sub Button1_Click(……) Handles Button1.Click Dim A As Integer A = Val(TextBox1.Text) If A >= 0 Then MsgBox("A=" & A) Else A = (-1) * A End If End Sub 2017/3/9

4-3 多重選擇結構 1. 逐一比對結構If/Then/ElseIf 2. 逐一比對結構Select Case 在日常生活中,我們所面臨的決策可能不只一種情況,也有可能兩種情況,甚至兩種以上的不同情況。在前面已經介紹過兩種情況的結構,但是,如果我們所面對的情況有兩種以上時,則必須要使用多重選擇結構。常見的有兩種結構: 1. 逐一比對結構If/Then/ElseIf 2. 逐一比對結構Select Case 2017/3/9

4-3.1 逐一比對結構If/Then/ElseIf 此種結構是雙重結構的改良版,它可以使用於多種選擇情況。 【語法】 If 條件式1 Then 敘述區塊1 ElseIf 條件式2 Then 敘述區塊2 ‧‧‧‧‧‧ ElseIf 條件式n Then 敘述區塊n Else 敘述區塊n+1 End IF 【說明】 如果「條件式1」不成立,就繼續往下判斷「條件式2」,依樣畫葫蘆的判斷下去,直到所有的條件式判斷完為止,否則就執行「敘述區塊n+1」。 【使用時機】當條件式有兩種以上時。 2017/3/9

【流程圖】 流程圖 概念流程圖 2017/3/9

【實例】計算兩科成績的平均,並且依平均成績來分等第。 條件: (1)60分以下為:E等 (2)60~69分為:D等 (3)70~79分為:C等 (4) 80~89分為:B等 (5) 90(含)分以上為:A等 2017/3/9

2017/3/9

4-3.2 逐一比對結構Select Case If/Then/ElseIf與Select Case結構具有相同的功能,但如果條件很多時,使用If/Then/ElseIf結構就很容易混亂了。因此,當程式中的條件式(Condition)超過兩個以上時,最好使用Select Case結構,它可以使程式較為精簡且可讀性較高。 2017/3/9

當(資料與運算式)的值,符合條件式1時,則執行敘述1,符合條件式2時,則執行敘述2,如果所有的條件式都不能符合時,則執行敘述N+1。 【語法】 Select Case 資料或運算式 Case 條件式1 敘述1 Case 條件式2 敘述2 ………………. Case 條件式N 敘述N Case Else 敘述N+1 End Select 【說明1】 當(資料與運算式)的值,符合條件式1時,則執行敘述1,符合條件式2時,則執行敘述2,如果所有的條件式都不能符合時,則執行敘述N+1。 在使用上Select---Case必需要與End Select 成對 2017/3/9 30

在「資料或運算式」中,我們可以放置數字和字串兩種類型的資料,而「條件式」則有下列三種表示方式,如表4-1所示: 【說明2】 在「資料或運算式」中,我們可以放置數字和字串兩種類型的資料,而「條件式」則有下列三種表示方式,如表4-1所示: 表4-1 Select Case結構的三種表示方式 條件型式 條件值 範例 單一或數個不連續的常數 運算式 1, 3, A 固定範圍的常數 運算式 TO 運算式 1 TO 10 IS關係運算子常數 IS 關係運算式 IS <60 2017/3/9

(1)單一或數個不連續的常數:只要其中一個常數符合,就算條件成立。 例如: Case 1 Case 1,4,7,9 Case "A" 說明如下: (1)單一或數個不連續的常數:只要其中一個常數符合,就算條件成立。 例如:   Case 1   Case 1,4,7,9   Case "A" (2)固定範圍的常數:只要在範圍內,就算成立。 例如:   Case 1 TO 10   Case "A" TO "E" (3)IS關係運算子常數:只要測試運算式在指定範圍內,就算成立。 例如:   Case IS <10   Case IS >="P" 2017/3/9

【流程圖】 流程圖 概念流程圖 2017/3/9

【實例】將上一題的實例改為利用Select Case結構方式 計算兩科成績的平均,並且依平均成績來分等第條件: 60分以下為:E等 60~69分為:D等 70~79分為:C等 80~89分為:B等 90(含)分以上為:A等 2017/3/9

說明:你是否發現使用Select Case結構較為容易理解, 並且可以增加程式的可讀性。 2017/3/9

請利用If/Then/Elseif與Select Case結構來比較不同的撰寫方式 【牛刀小試1】製作一個電影分級制的程式 條件: 0~5歲為:普通級 6~11歲為:保護級 12~17歲為:輔導級 18歲以上為:限制級 請利用If/Then/Elseif與Select Case結構來比較不同的撰寫方式 2017/3/9

2017/3/9

2017/3/9

4-4 巢狀選擇結構 指在IF外層結構中,又有一個或多個IF的內層結構,則形成了巢狀的判斷式結構稱之。 當外層的條件式1成立時,才能執行內層的條件式2,也因為由外層至內層的多種判斷結構,形成一種巢狀的現象,故稱為巢狀結構。 2017/3/9

【流程圖】 2017/3/9

【實例】利用巢狀IF來判斷成績是否為及格 01 02 03 04 05 06 07 08 09 If average>=80 Then If vb=100 Then Result="你學業成績不錯,VB程式設計更是高手!!!" Else Result="你學業成績不錯" End If Result="你學業成績還需加油!!!" 2017/3/9

【牛刀小試1】 利用巢狀IF來完成下面的條件: 0~59分為:不及格 60~89分為:及格 90(含)以上為:優等生 2017/3/9

【牛刀小試2】將上一題改用Select Case 來完成。 2017/3/9

4-5 其他選擇函數 Visual Basic2010除了提供以上所介紹的選擇結構之外,還提供具有選擇性質的函數: 雙向選擇函數:IIf函數 多向選擇函數:Choose函數、Switch函數 2017/3/9

4-5.1 IIf條件函數 VB的IIf條件函數主要是使用在指定敘述,以條件來指定變數值。 【語法】 【說明】上述指定敘述的“=”號右邊是條件函數,如同一個If/Else 條件,如果條件成立,其傳回值是變數1,就是將變數值指定 成變數1,否則傳回變數2,此時變數值指定成變數2 【舉例】 hour = IIf(hour >= 12, hour-12, hour) 2017/3/9

2017/3/9

4-5.2 多向選擇Choose函數的使用 Choose函數我們可以把它當作「選擇」之概念,它可以依第1個參數的整數值來傳回對應值。 【語法】 Choose(Index,Data1,Data2,Data3,…,DataN) 【說明】 (1)Index可以是常數或變數。 (2)Index的範圍是1<= Index < =N之間。 (3)若Index超出範圍時,則Choose函數將會傳回Null(空的)。 (4)若Index是小數時,則四捨五入變成整數。 (5)Data1,Data2,Data3,…,DataN不一定皆是相同的資料型態。 2017/3/9

上述程式碼依照變數Day_index的整數值,值1傳回第2個參數,即星期日,值2傳回第3個參數,依此類推。 【舉例】 output = Choose(Day_index, "星期日", "星期一", "星期二", "星期三", _ "星期四", "星期五", "星期六") 上述程式碼依照變數Day_index的整數值,值1傳回第2個參數,即星期日,值2傳回第3個參數,依此類推。 2017/3/9

2017/3/9

2017/3/9

4-5.3 多向選擇Switch函數的使用 Switch函數我們可以把它當作「開關」的概念,當使用者按下某一按鈕時,就會執行某一程序。 【語法】 Microsoft.VisualBasic.Switch(Expre1,Data1,Expre2,Data2,…,ExpreN,DataN) 【說明】 (1)當Expre1運算式成立時,則傳回Data1;否則再判斷Expre2,以此類推。 (2)若沒有一個運算式成立時,則傳回Null給Switch。 2017/3/9

2017/3/9

2017/3/9