版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
結構化程序設計與數(shù)組PrivateSubForm_Click()Dims1AsString,s2AsString,iAsIntegers1="你確定要打開計算器程序嗎?"s2="計算器"i=MsgBox(s1,1+32+0,s2)
Ifi=1ThenShell("C:\WINDOWS\system32\calc.exe")Else
EndEndIfEndSub本章重點:掌握IF選擇結構,selectcase結構掌握循環(huán)結構掌握數(shù)組的定義及使用。本章難點:循環(huán)結構數(shù)組的使用3.1三種基本的控制結構順序結構選擇結構循環(huán)結構一個結構化程序以及它的每一個結構,應具有的特點是:只有一個入口;只有一個出口;沒有死循環(huán),即每一語句都有被執(zhí)行的可能。順序結構DimxAsInteger,yAsInteger,tempAsIntegerx=10y=20temp=xx=yy=tempPrintx,y3.2選擇結構1、語法格式1——單行IF結構IF<條件>THEN<語句1>[ELSE<語句2>]如果<條件>表達式為真,程序執(zhí)行<語句1>,反之為假,程序執(zhí)行<語句2>必須在同一行內寫完。如果太長,需要多行,用續(xù)行符(空格加下劃線)。語句1和語句2不一定只有一句代碼方括號里的內容可以省略3.2選擇結構例3-2輸入x、y,僅當x<y時,交換x,y值,然后輸出x,y的值(Text控件輸入x,y值,采用label控件輸出結果)
例3-1分段函數(shù)的計算,用Inputbox輸入x值,將結果顯示在文本框里。
1-x2x<=5(x-5)1/4x>5f(x)=注意:在單行IF語句中,如果語句1或語句2由多條語句組成,則語句間用冒號(:)連接3.2選擇結構2、語法格式2——塊IF結構If<條件>then<語句1>[Else<語句2>]Endif必須以Endif結束then后面不能跟任何語句Ifx>ythenmax=xelsemax=yEndif
例:請問下列語句是否正確
課堂練習:用IFElse結構實現(xiàn)Ifx<>0Theny=sin(x)+sqr(x*x+1)Elsey=cos(x)-x^3+3*xEndIfIfx<>0Theny=Sin(x)+Sqr(x*x+1)_Elsey=Cos(x)-x^3+3*x11思考題:程序界面如下圖所示:輸入一學生成績,評定其等級。方法是:90~100分為“優(yōu)秀”,80~89分為“良好”,70~79分為“中等”,60~69分為“及格”,60分以下“不合格”。對塊IF結構進行變化,延伸為多分支結構格式如下:
If<表達式1>Then<語句塊1>ElseIf<表達式2>Then<語句塊2>… [Else
語句塊n+1]EndIf不管有幾個分支,依次判斷,當某條件滿足,執(zhí)行相應的語句塊,其余分支不再執(zhí)行;若條件都不滿足,且有Else子句,則執(zhí)行該語句塊,否則什么也不執(zhí)行。表達式1表達式2表達式nFTElseIf
多分支結構
語句塊n語句塊n+1
語句塊2
語句塊1else…TifEndIfF14例:顯示對應的五級制成績,哪些正確,哪些錯誤?PrivateSubCommand1_Click()DimmarkAsSinglemark=Val(Text1.Text)Ifmark>=90ThenText2.Text="優(yōu)"ElseIfmark>=80ThenText2.Text="良"ElseIfmark>=70ThenText2.Text="中"ElseIfmark>=60ThenText2.Text="及格"ElseText2.Text="不及格"EndIfEndSubPrivateSubCommand1_Click()DimmarkAsSinglemark=Val(Text1.Text)Ifmark<60ThenText2.Text="不及格"ElseIfmark<70ThenText2.Text="及格"ElseIfmark<80ThenText2.Text="中"ElseIfmark<90ThenText2.Text="良"ElseText2.Text="優(yōu)"EndIfEndSubPrivateSubCommand1_Click()DimmarkAsSinglemark=Val(Text1.Text)Ifmark>=60ThenText2.Text="及格"ElseIfmark>=70ThenText2.Text="中"ElseIfmark>=80ThenText2.Text="良"ElseIfmark>=90ThenText2.Text="優(yōu)"ElseText2.Text="不及格"EndIfEndSub選擇結構的嵌套If語句的嵌套是指If或Else后面的語句塊中又包含If語句。形式如下:
If<表達式1>ThenIf<表達式11>Then…EndIf else [If<表達式111>Then……else]EndIf例:判斷一元二次方程ax2+bx+c=0根的方式的程序
Dima!,b!,c!,delta!,X1!,X2!,x!a=Val(Text1.Text)b=Val(Text2.Text)c=Val(Text3.Text)
If
________Thendelta=b^2-4*a*c
If_________ThenX1=(-b+Sqr(delta))/(2*a)X2=(-b-Sqr(delta))/(2*a)Print"X1=";X1Print"X2=";X2
ElseIfdelta=0ThenPrint"X1=X2=";-b/(2*a)
ElsePrint"方程有兩個虛根"
EndIf提示:①當a<>0是,有兩個根。
設delta=b2-4ac
當delta>0時,有兩個不同的實根。
當delta=0時,有兩個相同的實根。
當delta<0時,有兩個不同的虛根。
②當a=0時如果b<>0時,有一個根。
如果b=0方程無意義。
Else
If
______Thenx=-c/bPrint"X=";x
ElsePrint"方程無意義"
EndIf
EndIfa<>0delta>0b<>03.2.2情況選擇結構Selectcase<測試表達式>case<表達式列表1>[<語句塊1>]case<表達式列表2>[<語句塊2>]…………….[caseelse> [<語句塊n+1>]]Endselect<表達式列表>為下列四種形式之一:單個表達式(單值)如"A"
一組枚舉表達式(用逗號分隔)如:2,4,6
表達式1To表達式2
如:60To100Is關系運算符表達式如:Is<60<測試表達式>為數(shù)值表達式或字符串表達式根據測試表達式的不同取值決定執(zhí)行哪一個分支例:用SelectCase語句求學生的成績等級
Test_select1
Test_select2思考題:判斷某一點的坐標在第幾象限IF選擇結構與SelectCase選擇結構的區(qū)別:Selectcase單變量多分支,if單分支或多分支;多變量時只能用if結構。例3.6輸入年月,輸出該月的天數(shù),注意需要考慮閏年閏年的判斷?Ymod4=0andymod100<>0orymod400=0
n%=val(text1.text) IfnMod2=0Then Printn/2 ElseIfnMod3=0Then Printn/3 ElseIfn/5=0Then Printn/5 Else Printn EndIf
文本框中輸入:15 結果:
5練習1PrivateSubForm_Click()DimstrCAsString*1strC=InputBox("請輸入數(shù)據")SelectCasestrCCase"a"To"z","A"To"Z"Form1.PrintstrC+"IsAlphaCharacter"Case"0"To"9"Form1.PrintstrC+"IsNumeralCharacter"CaseElseForm1.PrintstrC+"IsOtherCharacter"EndSelectEndSub設輸入的數(shù)據分別為“W”,“8”和“?”時,單擊窗體后,窗體上顯示的內容分別是什么?練習23.3循環(huán)結構計算機為什么能夠大大提高人們的工作效率?一個很重要的原因就是它能夠不知疲倦地進行循環(huán)運算,而且結果精確。在實際工作中,常遇到一些操作過程不太復雜,但又需要反復進行相同處理的問題,比如,統(tǒng)計本單位所有人員的工資,求全班同學各科的平均成績等等。這些問題的解決邏輯上并不復雜,但如果單純用順序結構來處理,那將得到一個非常乏味且冗長的程序。例如,計算1~100所有整數(shù)的和,如果用順序結構來解決這個問題:1+2+3+4+5+…+100s=0s=s+1s=s+2s=s+3……s=s+100不難看出,程序的絕大部分是在反復做兩件事情,一個就是把變化了的值賦值給s,另外一件事就是把值賦值給s后立即加1。要想方便地解決這類問題,最好的辦法就是用循環(huán)語句。所謂循環(huán)就是重復地執(zhí)行一組語句。i=1s=0dowhilei<=100s=s+ii=i+1loop用循環(huán)語句解決上面的問題,程序非常簡短:
求解:1~100之間所有整數(shù)的和。PrivateSubForm_Click()DimsAsInteger,iAsIntegeri=1s=0DoWhilei<=100s=s+ii=i+1LoopPrintsEndSub
通過上面的對比可知,循環(huán)結構非常適合于解決處理的過程相同、處理的數(shù)據相關,但處理的具體值不同的問題。我們把能夠處理這類問題的語句稱為循環(huán)語句。
VB提供了三種不同風格的循環(huán)語句,它們分別是:(1)For…Next語句;(2)While…Wend語句。
(3)Do…Loop語句;
我們將對這3種循環(huán)語句逐一介紹。For<循環(huán)變量>=<初值>to<終值>[Step步長]<循環(huán)體>Next[循環(huán)變量]語法格式:3.3.1For…..Next語句(一般用于循環(huán)次數(shù)已知)給循環(huán)變量賦初值判斷循環(huán)變量是否在終值內循環(huán)體循環(huán)變量加步長TF注意:1、循環(huán)變量是數(shù)值型變量2、步長:用于決定循環(huán)變量每次增加的數(shù)值。分三種情況>0初值<終值<0初值>終值=0死循環(huán)步長若循環(huán)變量取值不合理,則不執(zhí)行循環(huán)體;步長缺省值為1。例:用for/next語句求1到100整數(shù)的和3、循環(huán)體中可以出現(xiàn)語句“ExitFor”,用于將控制轉移到Next后一語句。Fori=1To9Step2Ifi=5ThenPrinti:ExitForNextiPrint"i="&i循環(huán)次數(shù)例:
Forx=17To1Step-3Printx;NextxPrint"x="&x問題:循環(huán)了幾次?最終的x是多少?判斷下面幾個循環(huán)語句分別循環(huán)了多少次。(1)
s=0Fori=1to10s=s+1Nexti(2)
s=0Fori=1to-2step-1s=s+1Nexti(3)
s=0Fori=1to10step-1s=s+1Nexti10次4次0次例3-8求下列表達式的值:
1-1/2+1/3-1/4+...(-1)^(n-1)*1/n求1~n的和?sum=0Fori=1Ton:sum=sum+i:Nexti求1-2+3-4+5……+n的和?fh=1:sum=0Fori=1Ton:sum=sum+fh*i:fh=-fh:Nexti求1-1/2+1/3-1/4+...(-1)^(n-1)*1/n的和?fh=1:sum=0Fori=1Ton:sum=sum+fh/i:fh=-fh:Nexti例3.9找出一個在1~1000中被7除余5、被5除余3、被3除余2的數(shù)(用Exitfor)PrivateSubForm_Click()DimiAsIntegerFori=1To1000IfiMod7=5AndiMod5=3AndiMod3=2_ThenExitFor
'返回滿足的第一個數(shù)
NextiIfi<=1000ThenPrintiEndSub被7除余5:5,5+7,(5+7)+7,(5+7+7)+7,……Fori=5To1000Step7'返回滿足的第一個數(shù)
IfiMod5=3AndiMod3=2ThenExitFor
Nexti例3-10輸入n個數(shù),輸出其中的最大值PrivateSubCommand1_Click()DimiAsInteger,nAsInteger,xAsSingle,maxAsSinglen=Val(InputBox("請輸入數(shù)據個數(shù):"))Fori=1Tonx=Val(InputBox("請輸入第"&Str(i)&"個數(shù):"))Ifi=1Thenmax=xElseIfx>maxThenmax=xEndIfNextiPrintmaxEndSub思考題:請書寫下列程序運行的結果PrivateSubForm_Click()Fori=5To1Step-0.9Printi;NextiPrintPrint"i=";iEndSub3.3.2while…..wend語句(一般用于循環(huán)次數(shù)未知)語法格式:While<條件><循環(huán)體>Wend例3-12:輸入x,求下列級數(shù)和直至末項小于10-5為止。1+x+x2/2!+x3/3!+x4/4!+…+xn/n!+…當條件為真時執(zhí)行循環(huán)體3.3.3Do/Loop語句(用于控制循環(huán)次數(shù)未知)形式1:
DoWhile<條件>
語句塊
[ExitDo]
語句塊LoopT表達式列表FExitDo語句塊語句塊DoWhilei<=100sum=sum+ii=i+1LoopDimiasinteger,sumasintegeri=1:sum=0先判斷后執(zhí)行FTExitDo語句塊語句塊表達式列表形式2:
Do
語句塊
[ExitDo]
語句塊LoopWhile<條件>Dosum=sum+ii=i+1LoopWhilei<=100Dimiasinteger,sumasintegeri=1:sum=0先執(zhí)行后判斷形式3:DoUntil<條件>
語句塊
[ExitDo]
語句塊Loop表達式列表TFExitDo語句塊語句塊DoUntili>100sum=sum+ii=i+1LoopDimiasinteger,sumasintegeri=1:sum=0條件為False時執(zhí)行循環(huán)體表達式列表FTExitDo語句塊語句塊形式4:
Do
語句塊
[ExitDo]
語句塊LoopUntil<條件>Dosum=sum+ii=i+1LoopUntili>100Dimiasinteger,sumasintegeri=1:sum=0素數(shù)指除了能被1和自身外,不能被其他整數(shù)整除的自然數(shù)。PrivateSubCommand1_Click()DimnAsInteger,iAsInteger,flagAsBooleann=Val(InputBox("請輸入一個整數(shù):"))flag=TrueFori=2Ton-1IfnModi=0Thenflag=False:ExitForNextiIfflagThenPrintn&"是素數(shù)"ElsePrintn&"不是素數(shù)"EndIfEndSub例3-14:判斷輸入的任意正整數(shù)是否為素數(shù)例3-14:判斷輸入的任意正整數(shù)是否為素數(shù)PrivateSubCommand1_Click()DimnAsInteger,iAsIntegern=Val(Text1.Text)Ifn=2Orn=3ThenText2.Text=Text1.Text+"是素數(shù)"ElseFori=2ToSqr(n)IfnModi=0ThenExitForNextiIfi>Sqr(n)Then'與平方根進行比較,超出說明是素數(shù)
Text2.Text=Text1.Text+"是素數(shù)"ElseText2.Text=Text1.Text+"不是素數(shù)"EndIfEndIfEndSub3.4多重循環(huán)單一的循環(huán)結構功能較弱,如果將循環(huán)結構與分支結構進行嵌套,或者多重循環(huán)結構進行嵌套,就能實現(xiàn)復雜的功能。如果在一個循環(huán)內完整地包含另一個循環(huán)結構,則稱為多重循環(huán),或循環(huán)嵌套,嵌套的層數(shù)可以根據需要而定,嵌套一層稱為二重循環(huán),嵌套二層稱為三重循環(huán)。(1)ForI=….…..ForJ=….….NextJ…..NextI(2)ForI=….…..DoWhile/Until….….Loop…..NextI(3)DoWhile….…..ForJ=….….NextJ…..Loop(4)DoWhile/Until….…..DoWhile/Until….….Loop…..
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024水池施工與防洪排澇合同3篇
- 2025年度軍事設施專用柴油供應合同3篇
- 個人承建信息科技項目合同(2024年修訂)
- 2025年度窗簾生產環(huán)保材料研發(fā)與應用合同3篇
- 二零二五年度文化產業(yè)園區(qū)承包經營合同規(guī)范4篇
- 2025年度二零二五餐廳消防疏散指示系統(tǒng)安裝合同3篇
- 二零二五年度大型商場商鋪租賃合同模板(全面升級版)4篇
- 2025年度環(huán)保型鋁合金材料貿易合同3篇
- 二零二四年度醫(yī)療器械臨床試驗生物等效性合同3篇
- 二零二五年度汽車配件居間買賣合同規(guī)范范本4篇
- 2025春夏運動戶外行業(yè)趨勢白皮書
- 《法制宣傳之盜竊罪》課件
- 通信工程單位勞動合同
- 高低壓配電柜產品營銷計劃書
- 租賃車輛退車協(xié)議
- 醫(yī)療護理技術操作規(guī)程規(guī)定
- 盤式制動器中英文對照外文翻譯文獻
- 社會系統(tǒng)研究方法的重要原則
- 重癥醫(yī)學科健康宣教手冊
- 2022版《義務教育英語課程標準》解讀培訓課件
- 五個帶頭方面談心談話范文三篇
評論
0/150
提交評論