2 3節程式的選擇結構

2022-08-22 14:51:05 字數 3873 閱讀 3645

教學過程

匯入:演示求乙個數的絕對值這道題的程式,讓學生明白通過程式可以解決數學中的問題,也給學生展示完整的程式**,這道程式的功能就是靠這些**來控制的,引起學生的注意,激發他們的求知慾。

一演示上述的程式,並把程式**中的各行**的作用解釋一遍,順便把程式的執行流程說明一下,編寫的程式與設計的演算法是一致的。

程式2-3

private sub command1_click定義名為command1_click()的事件過程

dim a as single定義求絕對值的數a為單精度實型

a=inputbox(「r=」,」請輸入半徑」) 『輸入a的值

if a>=0 then如果a>=0

print 「y=」;a輸出a的值

else

print 「y=」;-a輸出-a的值

end if

end sub過程結束

二條件語句

在解決問題的過程中,常常需要對事物進行判斷和選擇,如上題中,求乙個數a的絕對值,如果a>=0,則這個數的絕對值為a,否則為-a。在程式設計中,如何實現判斷和選擇呢?在上述**中,有乙個用if開頭的語句,這就是條件語句。

(一)條件語句的基本格式是:

if 條件 then 語句組1 else 語句組2

或if 條件 then

語句組1

else

語句組2

end if

其中,條件是乙個邏輯表示式,語句組是一組vb的語句。

(二)條件執行語句的執行過程

條件語句的執行過程是:當條件成立時,執行then後面的語句組1,否則執行語句組2,條件語句的執行流程圖如下圖所示。

在條件語句的基本格式中有時可以省略else和語句組2,這時條件語句的執行過程是當條件成立時,執行then後面的語句組1,否則退出條件語句,執行下面的語句。

(三)關係表示式

在程式2-3中,程式的第三行是乙個條件語句,其中的條件a>=0表示式,一般稱為關係表示式,關係表示式是用關係運算子連線起來的式子。

關係運算符號有:

當關係表式成立時其值為真(ture),當表示式不成立時其值則為假(false);關係表示式的值既不是數值型量,也不是字元型量,而是一種新的數量型別——邏輯型。邏輯型只有兩個可能的值:假(false)和真(ture)。

關係表示式的值定義如下:

(1)對數值型的資料比較,是按照數值的大小來進行比較。如13>6的值為真。

(2)對其它型別資料的比較,則按照其序號進行比較。如"d">"b"其值為假。2 (四)邏輯表示式

在實際問題中,對於一些複雜的條件,還需要幾個關係表示式組合起來才能表示。例如,條件2 not(非)取運算元相反的值。即當運算元為假時,結果為真;當運算元為真時,結果為假。

and(與)當兩個運算元都為真時,結果才為真。

or(或)當兩個運算元都為假時,結果才為假。

(五)邏輯運算的順序

(1)當條件中只有邏輯運算子時,運算的順序為not、and、or

(2)當條件中既有算術運算子,又有關係運算子和邏輯運算子時,運算順序是:算術運算子,關係運算子,邏輯運算子

例如:a+b>c+d and a>=5 or not c>0 or d<0

當a=5,b=7,c=2,d=1時,運算結果是真。

三、 練習

四、 練習

問題1:某商場為了對蘋果進行**,規定購買2千克以上可以在原價每千克1.5的基礎上打8折。請設計乙個程式計算購買x千克蘋果的應付款。

(1) 分析問題

設買蘋果的重量為x千克,應付款為y元,如果x>=2,則y=1.5*x*0.8,否則y=1.5*x。

(2)設計演算法

① 輸入x的值

② 如果x>=2,則y=1.5*x*0.8

③ 否則y=1.5*x

④ 輸出y的值

(3)編寫程式

private sub command1_click()

dim x as single

x=inputbox(「請輸入購買蘋果的重量」)

if x>=2 then

y=1.5*x*0.8

else

y=1.5*x

end if

print 「應付款」;y;「元」

(4)調式程式

五、 多重選擇語句

問題2:輸入乙個成績,如果90分以上,則輸出「優秀」;80-89,則輸出「良好」;70-79,則輸出「中等」;60-69,則輸出「及格」;60分以下則輸出「不及格」,請編寫程式。

如果這道題使用if語句來編寫程式的話,程式如下:

程式2-4

private sub command_click()

x=inputbox(「請輸入乙個分數」)

if x>=90 then print」優秀」

if x>=80 and x<89 then print」良好」

if x>=70 and x<79 then print」中等」

if x>=60 and x<69 then print」及格」

if x <60 then print」不及格」

end sub

在程式2-4中,使用了5個if語句來處理5種情況。這樣的程式在可讀性和效率方面都是比較差的,如果再多一些情況,它的缺陷就會暴露得更加明顯,如何處理這個問題呢?

(一)多重選擇語句格式

在vb語言中,設定了乙個處理多種情況的語句,稱為多重選擇語句,它的基本格式為:

select case 表示式

case 表示式列表1

語句組1

case 表示式列表2

…… case else

語句組n+1

end select

其中(1)表示式和表示式列表可以是數值型或字元型,表示式列表還可以是多個用逗號分開的表示式。

(2) 表示式列表與表示式的型別必須相同。

(3) 表示式列表又稱值域,它有如下三種形式:

① 表示式1,表示式2,……

② 表示式1 to表示式2

③ is關係表示式

(二)多重選擇語句的執行過程

多重選擇語句的執行過程是:

當表示式的值為表示式列表1時,執行語句組1;

當表示式的值為表示式列表2時,執行語句組2;

…… 當表示式的值為表示式列表n時,執行語句組n;

當表示式的值不是上述值時,執行語句組n+1;

有了多重選擇語句,對於多種情況的選擇問題,就可以利用它來解決。運用多重選擇語句編寫問題2的程式如下:

private sub command_click()

x=inputbox(「請輸入學生成績」)

select case x

case is>=90

print」優秀」

case 80 to 89

print」良好」

case 70 to 79

print」中等」

case 60 to 69

print」及格」

case else

print」不及格」

end select

end sub

(三)練習

問題3:我們把字元作如下的分類:大寫字母:a…z;小寫字母:a…z;數字:0…9;其它字元。編寫程式,根據上述分類的方法,輸入乙個字元,報告該字元所屬的型別。

六、小結

與順序結構相比較,選擇結構就是程式的執行不再完全按照語句的順序執行,而是根據某種條件是否成立來決定程式執行的走向,它進一步體現了計算機的智慧型特點。

在vb語言中,選擇結構通過if語句和select case語句這兩個條件語句來實現,運用條件語句的關鍵是條件的表示,如果能夠正確地表達條件,就可以簡化程式,在多重選擇的情況下,使用select case語句,可以使程式更直觀,更準確地描述出分支的走向。

五、 課外拓展

問題4:編乙個程式,輸入三個數,輸出其中的最大數。

23節程式的選擇結構

一 教學目標 1 知識與技能 理解程式選擇結構中的條件選擇語句的執行流程,掌握條件選擇語句和多種選擇語句的使用方法,能夠編寫簡單的選擇結構的程式,以解決生活中的一些計算問題。2 方法與過程 本節從簡單的問題入手,通過一道求乙個數的絕對值的題目,讓學生明白條件選取擇語句的執行流程及使用方法。通過一道輸...

23程式的選擇結構

一 教學目標 1 知識與技能 理解程式選擇結構中的條件選擇語句的執行流程,掌握條件選擇語句和多種選擇語句的使用方法,能夠編寫簡單的選擇結構的程式,以解決生活中的一些計算問題。2 方法與過程 本節從簡單的問題入手,通過一道求乙個數的絕對值的題目,讓學生明白條件選取擇語句的執行流程及使用方法。通過一道輸...

2 3程式的選擇結構

一 教學目標 1 知識與技能 理解程式選擇結構中的條件選擇語句的執行流程,掌握條件選擇語句和多種選擇語句的使用方法,能夠編寫簡單的選擇結構的程式,以解決生活中的一些計算問題。2 方法與過程 本節從簡單的問題入手,通過一道求乙個數的絕對值的題目,讓學生明白條件選取擇語句的執行流程及使用方法。通過一道輸...