




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
選擇與分支24.1.1 選擇與分支
例如,一元二次方程的系數(shù)a、b、c,求該方程的根34.1.2 條件與判斷在計(jì)算機(jī)程序語(yǔ)言中,使用條件表達(dá)式來(lái)描述條件。例1,有一分段函數(shù)如下,要求根據(jù)輸入的x,計(jì)算并輸出y的值。4例1的分段函數(shù)的4個(gè)條件分析共有4個(gè)與x相關(guān)的條件,這些條件按照關(guān)系表達(dá)式或邏輯表達(dá)式的格式可分別描述如下:x<0x>=0andx<10x>=10andx<100x>100分析: 一般來(lái)說(shuō),對(duì)于有n種可能的情況,只需要做n-1次判斷就夠了。5例2,題目描述根據(jù)輸入的三個(gè)正數(shù)a、b、c,確定以它們?yōu)檫吥芊駱?gòu)成三角形如果能構(gòu)成三角形,再判斷是等邊三角形、直角三角形、等腰三角形、等腰直角三角形還是普通三角形6例2,解決方案:(1)如果a≤0或b≤0或c≤0,則輸入出錯(cuò)(邊長(zhǎng)必須大于零);否則轉(zhuǎn)下一步。(2)如果a+b≤c或b+c≤a或c+a≤b,則不能構(gòu)成三角形(可以直接給出結(jié)果并結(jié)束程序);否則轉(zhuǎn)下一步。(3)如果a=b并且b=c,則構(gòu)成等邊三角形;否則轉(zhuǎn)下一步。7例2,解決方案:(4)如果a=b或b=c或c=a,則(嵌套)進(jìn)一步判斷是否有兩邊平方和等于第三邊的平方,如果有,則構(gòu)成等腰直角三角形;否則僅構(gòu)成等腰三角形;如果沒(méi)有任何兩邊相等,則轉(zhuǎn)下一步(5)如果有兩邊平方和等于第三邊的平方,則構(gòu)成直角三角形,否則(即以上都不是)是普通三角形。8多種情況的判斷順序首先應(yīng)該排除不合理的情況,然后根據(jù)可能性從大到小排列各種條件,將對(duì)多發(fā)情況的判斷放在前面,而將對(duì)極少發(fā)生的情況的判斷放在后面。9條件表達(dá)式的構(gòu)成在構(gòu)成條件表達(dá)式時(shí),即關(guān)系表達(dá)式或邏輯表達(dá)式等,可以使用常量變量標(biāo)準(zhǔn)函數(shù)自定義函數(shù)過(guò)程104.1.3 分支結(jié)構(gòu)基本特點(diǎn)根據(jù)條件控制某個(gè)程序段執(zhí)行或不執(zhí)行。分支結(jié)構(gòu)一般分為兩種:只有一個(gè)條件的簡(jiǎn)單分支結(jié)構(gòu)具有多個(gè)條件的分支結(jié)構(gòu)111只有一個(gè)條件的簡(jiǎn)單分支結(jié)構(gòu)S1S2C是否S1C是否圖4.1只有一個(gè)條件的簡(jiǎn)單分支結(jié)構(gòu)(a)(b)122具有多個(gè)條件的分支結(jié)構(gòu)S1SnC1是否S2是否S3是否圖4.2具有多個(gè)條件的分支結(jié)構(gòu)……C2C313每個(gè)分支中的程序段每個(gè)分支中的程序段S,可以是簡(jiǎn)單語(yǔ)句,類似于賦值語(yǔ)句分支結(jié)構(gòu)的復(fù)雜語(yǔ)句若在程序段S中出現(xiàn)了新的分支結(jié)構(gòu),這時(shí)就形成了分支結(jié)構(gòu)的嵌套
循環(huán)結(jié)構(gòu)的復(fù)雜語(yǔ)句144.2 分支語(yǔ)句4.2.1IF語(yǔ)句4.2.2SELECTCASE語(yǔ)句
154.2.1 IF語(yǔ)句1)單行結(jié)構(gòu)條件語(yǔ)句語(yǔ)法格式為:If<條件表達(dá)式>Then<語(yǔ)句1>[Else<語(yǔ)句2>]2)多行結(jié)構(gòu)條件語(yǔ)句語(yǔ)法格式為:If<條件表達(dá)式>Then<語(yǔ)句序列1>[Else <語(yǔ)句序列2>]EndIf16IF語(yǔ)句3)ELSEIF結(jié)構(gòu)條件語(yǔ)句語(yǔ)法格式為:If<條件表達(dá)式1>Then<語(yǔ)句序列1>ElseIf<條件表達(dá)式2>Then<語(yǔ)句序列2>…[Else<語(yǔ)句序列n>EndIf17【例4.1】題目:輸入x,根據(jù)一下公式,計(jì)算y的值。18解題:程序流程圖和窗體布局圖4.3例4.1程序流程圖圖4.4例4.1的運(yùn)行界面19Command1的Click事件代碼編寫Command1(即caption為“計(jì)算”的按鈕)的Click事件過(guò)程如下:PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)
Ifx>=0Theny=1+xElsey=1-2*xLabel2.Caption="函數(shù)值y等于:"+Str(y)EndSub20【例4.2】任意輸入三個(gè)數(shù),將它們按從小到大的順序打印輸出。圖4.5例4.2程序流程圖21圖4.6例4.2的運(yùn)行界面布局22命令按鈕Command1的Click事件過(guò)程代碼PrivateSubCommand1_Click()DimaAsSingle,bAsSingle,cAsSingleDimminAsSingle,secAsSingleDimmaxAsSinglea=Val(Text1.Text)b=Val(Text2.Text)c=Val(Text3.Text)Ifa>bThenmax=amin=bElsemax=bmin=aEndIf23命令按鈕Command1的Click事件過(guò)程代碼續(xù):Ifc>maxThensec=maxmax=cElse
Ifc<minThensec=minmin=cElsesec=c'c是中間數(shù)
EndIfEndIfLabel2.Caption=
"從小到大是:"+Str(min)+","+Str(sec)+","+Str(max)EndSub24【例4.3】題目:根據(jù)2008年3月1日起執(zhí)行的我國(guó)個(gè)人所得稅法的規(guī)定,工資、薪金所得個(gè)人所得稅按表4.1所列個(gè)人所得稅稅率表計(jì)算。試編寫程序,輸入一個(gè)人的月收入,輸出其應(yīng)繳個(gè)人所得稅。25表4.1個(gè)人所得稅稅率表級(jí)數(shù)全月應(yīng)納稅所得額稅率(%)速算扣除數(shù)1不超過(guò)500元的502超過(guò)500元至2000元的部分10253超過(guò)2000元至5000元的部分151254超過(guò)5000元至20000元的部分203755超過(guò)20000元至40000元的部分2513756超過(guò)40000元至60000元的部分3033757超過(guò)60000元至80000元的部分3563758超過(guò)80000元至100000元的部分40103759超過(guò)100000元的部分451537526分析1根據(jù)規(guī)定,納稅人每月取得工資收入后,先減去個(gè)人承擔(dān)的基本養(yǎng)老保險(xiǎn)金、醫(yī)療保險(xiǎn)金、失業(yè)保險(xiǎn)金,以及按省級(jí)政府規(guī)定標(biāo)準(zhǔn)繳納的住房公積金,再減去免征額2000元,余額為應(yīng)納稅所得額,對(duì)應(yīng)納稅所得額按5%至45%的九級(jí)超額累進(jìn)稅率計(jì)算繳納個(gè)人所得稅。計(jì)算公式如下:應(yīng)納個(gè)人所得稅稅額=應(yīng)納稅所得額×適用稅率-速算扣除數(shù)27分析2例如,王某當(dāng)月取得工資收入9000元,當(dāng)月個(gè)人承擔(dān)住房公積金、基本養(yǎng)老保險(xiǎn)金、醫(yī)療保險(xiǎn)金、失業(yè)保險(xiǎn)金共計(jì)1000元,免征額為2000元,則王某當(dāng)月應(yīng)納稅所得額=9000-1000-2000=6000元,應(yīng)納個(gè)人所得稅稅額=6000×20%-375=825元。28圖4.7例4.3的運(yùn)行界面29命令按鈕的Click事件過(guò)程代碼如下:PrivateSubCommand1_Click()
DimysrAsDouble,yljAsDouble,ylbxjAsDoubleDimsybxjAsDouble,zfgjjAsDouble,slAsDoubleDimsskcsAsDouble,sdsseAsDoubleysr=Val(Text1.Text)ylj=Val(Text2.Text)ylbxj=Val(Text3.Text)sybxj=Val(Text4.Text)zfgjj=Val(Text5.Text)ysr=ysr-ylj-ylbxj-sybxj-zfgjj-200030Ifysr<=500Thensl=5sskcs=0ElseIfysr<=2000Thensl=10sskcs=25ElseIfysr<=5000Thensl=15sskcs=125ElseIfysr<=20000Thensl=20sskcs=37531ElseIfysr<=40000Thensl=25sskcs=1375ElseIfysr<=60000Thensl=30sskcs=3375ElseIfysr<=80000Thensl=35sskcs=637532ElseIfysr<=100000Thensl=40sskcs=10375Elsesl=45sskcs=15375EndIfsdsse=ysr*sl/100-sskcsLabel4.Caption=Str(sl)Label5.Caption=Str(sdsse)EndSub33IIF函數(shù)其格式為:IIF(<條件表達(dá)式>,<A>,<B>)用于 實(shí)現(xiàn)簡(jiǎn)單雙分支計(jì)算問(wèn)題例如:Ifx>0Theny=1Elsey=-1可以表達(dá)成y=IIF(x>0,1,-1)344.2.2 SELECTCASE語(yǔ)句SelectCase<被測(cè)試表達(dá)式>Case<表達(dá)式1><語(yǔ)句序列1>Case<表達(dá)式2><語(yǔ)句序列2>……[CaseElse<其他語(yǔ)句序列>]EndSelect35在該語(yǔ)句中,<被測(cè)試表達(dá)式>可以是數(shù)值表達(dá)式、字符串表達(dá)式、邏輯表達(dá)式,或者日期表達(dá)式。每個(gè)Case部分的<表達(dá)式>均用來(lái)描述被測(cè)試表達(dá)式的取值情況,可以是以下幾種格式:<表達(dá)式>[,<表達(dá)式>][,…]。逐個(gè)列舉可能的取值。例如:Case1,3,5,7,表示被測(cè)試表達(dá)式的取值為1、3、5、7這四種情況。<表達(dá)式1>To<表達(dá)式2>。用來(lái)指定一個(gè)可能的取值范圍。例如,當(dāng)被測(cè)試表達(dá)式為一字符串表達(dá)式時(shí),Case"a"To"f",表示其可能的取值為6個(gè)小寫字母。Is<關(guān)系運(yùn)算符><表達(dá)式>。用來(lái)指定一個(gè)可能的取值關(guān)系,例如:CaseIs<#1/1/2001#,用于判斷日期是否在2001年1月1日前。36【例4.4】某商場(chǎng)為了促銷,開(kāi)展了根據(jù)每位顧客一次購(gòu)物情況給予打折的優(yōu)惠活動(dòng),具體優(yōu)惠辦法如下:(1)在1000元以上者,按八折優(yōu)惠;(2)在500元以上,但不足1000元者,按八五折優(yōu)惠;(3)在300元以上,但不足500元者,按九折優(yōu)惠;(4)在100元以上,但不足300元者,按九五折優(yōu)惠;(5)不足100元者,沒(méi)有優(yōu)惠。設(shè)購(gòu)物款數(shù)為a元,優(yōu)惠價(jià)為b元,優(yōu)惠付款公式為:37圖4.8例4.4的運(yùn)行結(jié)果38PrivateSubCommand1_Click()DimaAsSingle,bAsSinglea=Val(Text1.Text)SelectCaseaCaseIs>=1000b=0.8*aCaseIs>=500b=0.85*aCaseIs>=300b=0.9*aCaseIs>=100b=0.95*aCaseElseb=aEndSelectLabel2.Caption="優(yōu)惠價(jià)為:"+Str(b)EndSub394.3 選擇性控件4.3.1 單選按鈕(OptionButton)4.3.2 復(fù)選框(CheckBox)4.3.3 選項(xiàng)卡(SSTab)404.3.1 單選按鈕(OptionButton)單選按鈕對(duì)于單選按鈕而言,不管當(dāng)前的狀態(tài)是選中還是未選中,只要單擊就變成選中狀態(tài)。圖4.9單選按鈕的狀態(tài)41單選按鈕的常用屬性和事件Caption屬性其值為與單選按鈕同時(shí)顯示的標(biāo)題,主要用來(lái)告訴用戶該單選按鈕的意義??梢岳脝芜x按鈕的Alignment屬性設(shè)置標(biāo)題顯示在單選按鈕的右方或左方。Value屬性Value屬性是邏輯型值,其值可以是True或False。參見(jiàn)圖4.9中左面的兩個(gè)單選按鈕。True:表示選中,運(yùn)行時(shí)該單選按鈕的圓圈中出現(xiàn)一個(gè)黑點(diǎn)。False:表示未選中。該值為設(shè)計(jì)時(shí)的默認(rèn)值。如果需要的話,也可以改變其默認(rèn)值。Click事件對(duì)用鼠標(biāo)左鍵點(diǎn)擊單選按鈕時(shí),該事件發(fā)生,并將觸發(fā)該按鈕相應(yīng)的單擊事件過(guò)程。42【例4.5】設(shè)計(jì)一個(gè)如圖4.10所示的程序,單擊對(duì)應(yīng)的復(fù)選框和單選按鈕能夠修改文本框中的字體和字號(hào)。圖4.10例4.5的運(yùn)行界面43PrivateSubCommand1_Click()Ifsong.ValueThendisp.FontName="宋體"Ifhei.ValueThendisp.FontName="黑體"Ifkai.ValueThendisp.FontName="楷體_GB2312"Ifs8.ValueThendisp.FontSize=8Ifs16.ValueThendisp.FontSize=16Ifs32.ValueThendisp.FontSize=32EndSub44可以分別為每個(gè)單選按鈕的Click事件編寫過(guò)程代碼來(lái)即時(shí)改變顯示設(shè)置。例如:?jiǎn)芜x按鈕Song的Click事件過(guò)程代碼如下:PrivateSubSong_Click()Disp.FontName="宋體"EndSub單選按鈕S16的Click事件過(guò)程代碼如下:PrivateSubS16_Click()Disp.FontSize=16EndSub454.3.2 復(fù)選框(CheckBox)復(fù)選框使用復(fù)選框時(shí),每單擊一次將切換一次復(fù)選框的狀態(tài),即選中時(shí)單擊將切換到未選中狀態(tài),未選中時(shí)單擊將切換到選中狀態(tài)。46復(fù)選框的常用屬性和事件如下:Caption屬性其值為與復(fù)選框同時(shí)顯示的標(biāo)題,主要用來(lái)告訴用戶該選項(xiàng)的意義。可以利用復(fù)選框的Alignment屬性設(shè)置標(biāo)題顯示在復(fù)選框的右方或左方。Value屬性復(fù)選框Value屬性為一整型值,可以是以下三個(gè)值之一:0(默認(rèn)值):表示未復(fù)選,處于這種狀態(tài)的復(fù)選框在運(yùn)行時(shí)復(fù)選框前沒(méi)有“√”標(biāo)志。1:表示選中,執(zhí)行時(shí)復(fù)選框呈現(xiàn)“√”標(biāo)志。2:表示灰色,復(fù)選框呈現(xiàn)“√”標(biāo)志,但以灰色顯示。通常使用的復(fù)選框Value屬性為0或1。Click事件對(duì)用鼠標(biāo)左鍵點(diǎn)擊復(fù)選框時(shí),該事件發(fā)生,并將觸發(fā)該按鈕相應(yīng)的單擊事件過(guò)程。47選擇類控件的常用事件和方法復(fù)選框和單選按鈕的常用事件為Click。它們的方法很少使用。Click事件:當(dāng)用戶在一個(gè)復(fù)選框或單選按鈕上單擊鼠標(biāo)時(shí)發(fā)生。注意:對(duì)于復(fù)選框而言,在代碼中將其Value屬性設(shè)置為0或1將引發(fā)復(fù)選框的Click事件,對(duì)于單選按鈕而言,將其Value屬性設(shè)置為True同樣引發(fā)單選按鈕的Click事件。48框架功能可以按控件功能或布局對(duì)控件進(jìn)行分組??蚣艿淖饔弥饕菂^(qū)分一個(gè)控件組,也就是讓用戶可以容易地區(qū)分窗體中的各個(gè)選項(xiàng)。一組單選按鈕最多只有一個(gè)被選中,每個(gè)框架控件將其中的單選鈕分成一組,這時(shí)每組中的單選鈕能選中一個(gè)??蚣茉趯?shí)際運(yùn)用中往往和其他控件一起使用。在框架中加入組成員必須先在窗體中建立一個(gè)框架,再在它的上面建立其所屬控件,這時(shí)這些控件的容器就不再是窗體而是框架。但是,如果將建立在窗體上的控件直接拖動(dòng)到框架上,這些控件并不能成為框架的組成員,也就是說(shuō),這時(shí)這些控件的容器仍是窗體。要想將建立在窗體或其他容器中的控件對(duì)象加入到某個(gè)框架中,可以將需要移動(dòng)的控件剪切,然后激活框架后在框架上進(jìn)行粘貼即可。很少對(duì)框架控件進(jìn)行編程,最常用屬性只有Caption,。49【例4.6】選擇若干課程,顯示所選項(xiàng)數(shù)。圖4.11例4.6的程序界面50命令按鈕的Click事件過(guò)程代碼如下:PrivateSubCommand1_Click()DimnAsIntegern=0IfCheck1.Value=1Thenn=n+1IfCheck2.Value=1Thenn=n+1IfCheck3.Value=1Thenn=n+1IfCheck4.Value=1Thenn=n+1
Label2.Caption="共選中了"+Str(n)+"項(xiàng)"EndSub51【例??】設(shè)計(jì)一個(gè)如圖10.14所示的程序,單擊對(duì)應(yīng)的復(fù)選框和單選按鈕能夠修改文本框中的字體和字型。⑴設(shè)計(jì)如圖10.14所示界面,窗體上布局一個(gè)名為Text1的文本框、一個(gè)名為cmdClose的命令按鈕、三個(gè)Name屬性分別為optFontS、optFontH、optFontK的單選按鈕、三個(gè)Name屬性分別為chkBold、chkItalic、chkUnderLine的復(fù)選框。圖10.14復(fù)選框與單選按鈕示例52⑵設(shè)計(jì)如下的事件過(guò)程PrivateSubcmdClose_Click()EndEndSubPrivateSubForm_Load()Text1.Text="安徽財(cái)經(jīng)大學(xué)"Text1.FontSize=24optFontS.Caption="宋體"optFontH.Caption="黑體"optFontK.Caption="楷體"chkBold.Caption="粗體"chkItalic.Caption="斜體"chkUnderline.Caption="下劃線"optFontK.Value=True'將引發(fā)optFontk的單擊事件
chkItalic.Value=1'將引發(fā)chkItalic的單擊事件EndSub53PrivateSuboptFontK_Click()'注意要和系統(tǒng)提供的字體名一致
Text1.FontName="楷體_GB2312"EndSubPrivateSuboptFontH_Click()Text1.FontName="黑體"EndSubPrivateSuboptFontS_Click()Text1.FontName="宋體"EndSub54PrivateSubchkItalic_Click()Text1.FontItalic=chkItalic.Value=1EndSubPrivateSubchkUnderline_Click()Text1.FontUnderline=chkUnderline.Value=1EndSubPrivateSubchkBold_Click()Text1.FontBold=chkBold.Value=1EndSub55【例??】在上例中增加字號(hào)控制。⑴在窗體上放置三個(gè)框架控件,并將這三個(gè)框架的Caption屬性分別設(shè)置為“字體”、“字號(hào)”和“字型”,并如圖10.15所示將對(duì)應(yīng)的控件進(jìn)行分組且放倒對(duì)應(yīng)的框架中;三個(gè)字號(hào)單選鈕控件的Name屬性分別為:optFontSize8、optFontSize16、optFontSize24。⑵添加如下事件過(guò)程:PrivateSuboptFontSize16_Click()Text1.FontSize=16EndSub圖10.15框架示例PrivateSuboptFontSize24_Click()Text1.FontSize=24EndSubPrivateSuboptFontSize8_Click()Text1.FontSize=8EndSub564.3.3 選項(xiàng)卡(SSTab)采用如下方法進(jìn)行添加:選擇“工程”菜單中的“部件”命令,彈出“部件”對(duì)話框。在對(duì)話框中單擊“控件”選項(xiàng)卡,從中選擇所需的控件文件。例如,選中“MicrosoftTabbedDialogControl6.0”、“MSWindowsCommonControls6.0”。點(diǎn)擊“應(yīng)用”按鈕,這時(shí)窗體左側(cè)的工具箱中出現(xiàn)了一些新的控件。點(diǎn)擊“關(guān)閉”按鈕,可結(jié)束添加新部件。57圖4.12添加新控件58圖4.13添加了新控件的工具箱圖4.14選項(xiàng)卡的形狀和選項(xiàng)卡位置59SSTab控件常用的屬性如下:1)Tabs屬性。返回或設(shè)置SSTab控件上的選項(xiàng)卡總數(shù)。設(shè)計(jì)時(shí),默認(rèn)的選項(xiàng)卡數(shù)為3,可以根據(jù)需要增加或減少。2)Style屬性。用以返回或設(shè)置SSTab控件上的選項(xiàng)卡樣式。其值為0時(shí),樣式為ssStyleTabbedDialog,參見(jiàn)圖4.14中上方左面的形狀;其值為1時(shí),樣式為ssStylePropertyPage,參見(jiàn)圖4.14中上方右面的形狀。60SSTab控件常用的屬性如下:3)TabCaption(tab)屬性。返回或者設(shè)置SSTab控件的每個(gè)選項(xiàng)卡的標(biāo)題,使用時(shí)括號(hào)中的tab為對(duì)應(yīng)的選項(xiàng)卡號(hào)。選項(xiàng)卡的編號(hào)從0開(kāi)始,依次遞增。4)Tab屬性。返回或設(shè)置SSTab控件的當(dāng)前選項(xiàng)卡,當(dāng)前選項(xiàng)卡移動(dòng)到前面并成為活動(dòng)選項(xiàng)卡。使用是將Tab屬性設(shè)置為某個(gè)選項(xiàng)卡的編號(hào)即可。61SSTab控件常用的屬性如下:5)TabOrientation屬性。返回或設(shè)置SSTab控件上的選項(xiàng)卡的位置。其值為0時(shí),選項(xiàng)卡出現(xiàn)在控件頂端;為1時(shí),選項(xiàng)卡出現(xiàn)在控件底部;為2時(shí),選項(xiàng)卡出現(xiàn)在控件左邊;為3時(shí),選項(xiàng)卡出現(xiàn)在控件右邊。參見(jiàn)圖4.14。62【例4.7】利用選項(xiàng)卡實(shí)現(xiàn)對(duì)文本的字體、字型和字號(hào)控制進(jìn)行控制。圖4.15例4.7的運(yùn)行界面圖4.16各選項(xiàng)卡的控件布局63界面說(shuō)明Disp文本框中的文本用于進(jìn)行字體、字號(hào)和字型設(shè)置,單擊Close命令按鈕將結(jié)束程序。另外放置一個(gè)名為SSTab1的選項(xiàng)卡,其Tabs屬性為3,Style屬性為0。三個(gè)頁(yè)面的Caption屬性分別為“字體”、“字型”和“字號(hào)”,在字體頁(yè)面上放置三個(gè)Name屬性分別為Song、LiShu、YouYuan的單選按鈕;字型頁(yè)面上放置三個(gè)Name屬性分別為Cu、Xie、XiaHua的復(fù)選框;字號(hào)頁(yè)面上放置三個(gè)Name屬性分別為S8、S16、S32的單選按鈕。每個(gè)選項(xiàng)卡布局如圖4.16所示。64“設(shè)置”按鈕的Click事件過(guò)程代碼如下:PrivateSubCommand1_Click()Ifsong.ValueThenDisp.FontName="宋體"IfLiShu.ValueThenDisp.FontName="隸書"IfYouYuan.ValueThenDisp.FontName="幼圓"IfS8.ValueThenDisp.FontSize=8IfS16.ValueThenDisp.FontSize=16IfS32.ValueThenDisp.FontSize=32Disp.FontBold=Cu.Value=1Disp.FontItalic=Xie.Value=1Disp.FontUnderline=XiaHua.Value=1EndSub654.4 程序設(shè)計(jì)舉例【例4.8】求一元二次方程ax2+bx+c=0的根?!纠?.9】輸入一個(gè)年份和月份,輸出該月的天數(shù)?!纠?.10】給定三角形的三條邊長(zhǎng),計(jì)算三角形的面積。【例4.11】輸入一個(gè)字符,判斷所屬分類。66【例4.8】求一元二次方程ax2+bx+c=0的根。圖4.17求一元二次方程根的流程圖67圖4.18例4.8程序界面68Command1的Click事件過(guò)程代碼如下:PrivateSubCommand1_Click()DimaAsSingle,bAsSingle,cAsSingle,dAsSingleDimoutsAsString,x1AsSingle,x2AsSinglea=Val(Text1.Text)b=Val(Text2.Text)c=Val(Text3.Text)Ifa=0Then'不是一元二次方程
outs="輸入出錯(cuò),不是一元二次方程!"Else'是一元二次方程
d=b*b-4*a*c69SelectCased'判斷d的取值情況
CaseIs>0'有兩個(gè)不相等的實(shí)根
x1=(-b+Sqr(d))/(2*a)x2=(-b-Sqr(d))/(2*a)outs="方程有兩個(gè)實(shí)根:"+Chr$(13)_+Str(x1)+Chr$(13)+Str(x2)CaseIs<0'沒(méi)有實(shí)根
outs="方程沒(méi)有實(shí)數(shù)根!"CaseElse'有兩個(gè)相等的實(shí)根
x1=-b/(2*a)outs="方程有兩個(gè)相等實(shí)根:"+_Chr$(13)+Str$(x1)EndSelectEndIfLabel2.Caption=outsEndSub70【例4.9】輸入一個(gè)年份和月份,輸出該月的天數(shù)。圖4.19例4.9的運(yùn)行界面71PrivateSubCommand1_Click()
DimyearAsInteger,monthAsInteger,dayAsIntegeryear=Val(Text1.Text)month=Val(Text2.Text)SelectCasemonthCase1,3,5,7,8,10,12day=31Case4,6,9,11day=30Case2IfyearMod400=0OryearMod100<>0And_yearMod4=0Then‘if與then在同一行
day=29Elseday=28EndIfEndSelectLabel2.Caption=Str(year)+"年"+Str(month)+"月有"+Str(day)+"天"EndSub72【例4.10】給定三角形的三條邊長(zhǎng),計(jì)算三角形的面積。圖4.20例4.10的運(yùn)行界面73PrivateSubcmdOk_Click()DimxAsInteger
DimaAsSingle,bAsSingle,cAsSingle,pAsSinglea=Val(txtA.Text)b=Val(txtB.Text)c=Val(txtC.Text)Ifa<=0Orb<=0Orc<=0Then'邊長(zhǎng)非正數(shù)
x=MsgBox("輸入出錯(cuò)",vbOKOnly,"提示信息")ElseIfa+b<=cOrb+c<=aOrc+a<=bThen'兩邊之和不大于第三邊
x=MsgBox("輸入的邊長(zhǎng)不滿足三角形條件",_vbOKOnly,"提示信息")Else'輸入正確74p=(a+b+c)/2s=Sqr(p*(p-a)*(p-b)*(p-c))
'海倫公式計(jì)算三角形面積
x=MsgBox("三角形的面積為:"+Str(s),_
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大數(shù)據(jù)營(yíng)銷策略咨詢合同
- 農(nóng)業(yè)產(chǎn)業(yè)園區(qū)投資合作協(xié)議
- 建筑工程玻璃貼膜合同
- 股權(quán)激勵(lì)保密協(xié)議書
- 公關(guān)攝影師聘用合同
- 合伙美容院合同
- 財(cái)產(chǎn)分割離婚協(xié)議
- 工業(yè)互聯(lián)網(wǎng)平臺(tái)建設(shè)與優(yōu)化方案
- 裝修施工安全合同協(xié)議書
- 醫(yī)院大樓裝修工程承包協(xié)議書
- 上海專科層次自主招生考試習(xí)題集②(含答案)
- 某市政道路施工交通疏導(dǎo)方案
- 世界主要國(guó)際組織課件
- 語(yǔ)言學(xué)綱要(新)課件
- 心理評(píng)估與診斷簡(jiǎn)介課件
- 移動(dòng)式壓力容器充裝復(fù)審換證考試重點(diǎn)題庫(kù)(180題)
- 小班安全《湯姆走丟了》PPT課件教案反思微視頻
- 作物栽培學(xué)課件棉花
- 最新小學(xué)二年級(jí)口算及豎式計(jì)算練習(xí)題
- 生產(chǎn)與運(yùn)作管理-陳榮秋
- 金雞冠的公雞繪本課件
評(píng)論
0/150
提交評(píng)論