




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
VB概§1VB特可視化的設(shè)計平 象的設(shè)計方(對象的性質(zhì)(對象的動作(對象的響應(yīng)它構(gòu)成對象的三個要素。事件驅(qū)動的編程機集成化的開發(fā)環(huán)結(jié)構(gòu)化的設(shè)計語§4VB序設(shè)VB應(yīng)用程序的開發(fā)有三個步驟設(shè)計應(yīng)用程序界面設(shè)置對象的屬編寫事件驅(qū)動代執(zhí)行“文件/保存工程”命(第一次保存文件)系統(tǒng)先打開“文件另存為”框,保存窗體文件(或標(biāo)準(zhǔn)模塊文件,然后再打開“工程另存為”框,保存工程文件。保存修改后的工程文選擇“文件/(保存與工程有關(guān)的修改過的窗體文件或標(biāo)準(zhǔn)模塊文件。字符串“Iama"計算機數(shù)值常整型1234(十進(jìn)制12345678(十進(jìn)制單精度數(shù):有三種形式,12.34,123123.45E-&精度$符串型2.號常格式:Const功能:定義一個符號常量來表示表達(dá)式的值類型決定。ConstPI=變1.變量變量名不能是保留VB變量名不區(qū)分字母大小寫2.量的類用類型說明在變量的尾部加上類型說明&精度$符串型在時,可以省略類型說明符。定義變量時其類型格式:Dim變量名As類型“類型”可為基本數(shù)據(jù)類型或用戶自定義的類型Boolean(布爾型)Long(長整型)Single(單精度型)Double(雙精度型)String(字符串型)Variant(變體型)Dimstr1AsString,countryAsString*20DimiAsInteger,sumAsSingle定義變量后,數(shù)值型變量的初值為變長字符串的初值是長度為定長字符串的初值的長度等于定義值3.變體類型變量例如:DimsumAsVariantDimsum運算符與表達(dá)1.術(shù)運算符(8):取負(fù)(-乘法、浮點除法(*)取模加法、減法(整除:被除數(shù)和除數(shù)為整數(shù),結(jié)果為整31.7\32\6果取模(求余)運算:結(jié)果為整數(shù)除法的余數(shù)31.77Mod5.88(四舍五入32Mod6數(shù)為3Mod6余數(shù)為字符串表達(dá)字符串運算符&str1&2008&奧運會2008運"2008"奧運2008Print123"567結(jié)果Printabc"567錯:類型不匹配常用函數(shù)數(shù)學(xué)函返回x的絕對求不大于x的最大整Int(7.8)結(jié)果為7,Int(-7.8)結(jié)果為-把x小數(shù)四舍五入,轉(zhuǎn)換為整數(shù)計算ex,e自然數(shù)x的自然對x的平方返回0~1的隨機數(shù)字符串函返回字符串長取字符串左邊n個字取字符串右邊n個字從位置p開始,取n個字符,如n省略,取到最數(shù)值轉(zhuǎn)字符字符串轉(zhuǎn)數(shù)返回字符串首字母ASCIIASCII碼轉(zhuǎn)字反正切函數(shù)Atn(x)的返回值單位為弧度。度轉(zhuǎn)換為弧度:1°3.14159/180l生0~n間的隨機數(shù)(不含0n)l生0~n間的隨機整數(shù)(含0,不含n)l生a~b間的隨機整數(shù)(含a,不含b)Int(b-l生a~b間的隨機整數(shù)(含ab)Int(b-順序結(jié)結(jié)構(gòu)化程序三種基本結(jié)構(gòu)順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)1值語變量=表達(dá)式DimNumAsNum=8.899賦給Num,四舍五人3據(jù)輸方法1:用文本例:DimmAsIntegerm=Val(Text1.Text)方法2:用Inputbox()函例:m=Val(InputBox("enter4出數(shù)方法1:用文本框或Text1=n方法2:用例:Label1.Captionn方法3:用Print法例:Printn方法4:輸出到列表框例:List1.AddItemn方法5:輸出到文件例:Open"abc.dat"ForOutputAs1Write#1,n【例】交換變量a、b用中間變量t作暫存單元,必須與交換的變量同類型t=a:a=b:b=3.2Click事Load事Load是把窗體裝入工作區(qū)事Form_Load()啟動程序時對屬性和變量進(jìn)行初始化。UnLoad事滿足條件為“真用“True”表示關(guān)系運算符(6種優(yōu)先級相同,運算從左到右關(guān)系表達(dá)apply按ASCII碼逐字符進(jìn)行比較“applyapple果為邏輯表達(dá)邏輯運算符NotAnd優(yōu)先級(Not(Anda<=xAndx<=選擇結(jié)單行If語If件Then句組1Else語句組語句組:各語句間需用分隔塊結(jié)構(gòu)If語If條件EndIf例:計算分段函1+x(x≥0)1-2xIfx>=0ThenEndIf用單行IfIfx>=0Theny=1+xElsey=1-或Ifx>=0Theny=1+xIfx<0Theny=1-2*xIf條件1Then語句塊1ElseIf件2語句塊ElseIf件3語句塊EndIf注意:ElseIf間不能有空格【例】學(xué)生成績判定PrivateSubx=Val(InputBox("輸入學(xué)生成績:"))Ifx>=90ThenPrint“優(yōu)”ElseIfx>=80ThenPrint“良”ElseIfx>=70ThenPrint“中”ElseIfx>60ThenPrint“及格”Print及格EndIfEnd2.4IIfIIf是單行If句的簡單版變量IIf(條件,True分,F(xiàn)alse分)注意:IIf數(shù)中的三個參數(shù)都不能省略。1+x(x≥0)1-2xPrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)Text2.Text=yEndSub4整除,但不能被100IfxMod4000Theny$="是閏年"ElseIfxMod40AndxMod1000Theny$="是閏年"y$是閏年End也xVal(InputBox("輸入年份IfxMod40andxMod1000orxMod4000Theny$="是閏年"y$是閏年"EndIf4.SelectCase句SelectCase試表達(dá)Case件語句塊Case件語句塊CaseElse語句塊n+1EndSelect則執(zhí)行CaseElse的語句塊。注意條件常量表測試范圍:10to20,“a”toz”比較范圍:Is<10(不能為邏輯表達(dá)式【例】學(xué)生成績PrivateSubxVal(InputBox("輸入考試SelectCase90y$80y$70y$60y$="及格"Case0To59y$及格Casey$入錯誤"EndSelectForm1.Print成績x,等級y$EndSub循環(huán)結(jié)For-Next循常用于循環(huán)次數(shù)已知For環(huán)變量值To值Step長][ExitFor]Next環(huán)【例】計算n!PrivateSubnVal(InputBox("輸入一個自然數(shù)"))Term=1Fori=1TonTerm=Term*iNextiPrintn;"!=";TermEndSub【例】計算246100值PrivateSubCommand1_Click()Sum=0Forx=2To100Step2Sum=Sum+xNextForm1.Print"Sum=";SumEndSub【例】計算12310!PrivateSubCommand1_Click()T=S=Fork=1To10T=T*kS=S+NextkPrintSEndWhile-Wend循適合處理循環(huán)次數(shù)未知的循While功能:當(dāng)條件為真時執(zhí)行循【例】計算1+2+3+……+100PrivateSubCommand1_Click()DimnAsInteger,sAsIntegernWhilen<=100Lable1.Caption=“1+2++3+……+100=”&EndDo-Loop循[ExitLoopWhile|Until件]Do[While|Until條件][ExitDoWhile當(dāng)“條件”為True行循環(huán)體。Until條件——“條件”為False行循環(huán)體。格式1先循環(huán),后判斷至少執(zhí)行一次循環(huán)格式2先判斷,后循環(huán)如條件不滿足,則一次循環(huán)也不執(zhí)行nDowhilen<=100nDoUntiln>100【例】將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制PrivateSubDimmAsm=InputBox("enterm:")a$=""Whilem<>0r=mMod2a$=r&a$m=m\2Printa$EndSuba$a$&r列表框的方AddItem方法:用于在列表框中一個列表項。AddItem目字符串[,索引值如省略索引值,則在列表框的最后新列表項PrivateSubCommand1_Click()List1.AddItemText1.TextEndSub必須完整嵌套,不得交叉ExitFor句和ExitDo句只能退出當(dāng)前層循環(huán)。Forn=1toPrintn;”IfnMod10=0ThenPrintNextn顯示10數(shù)據(jù)換行不定方程求解PrivateSubCommand1_Click()DimxAsIntegerDimyAsInteger,zAsIntegerPrint"公雞","母雞","小雞"Forx=0To20Fory=0To33z=100-x-If5*x+3*y+z/3=100ThenPrintx,y,zEndIfNextyNextEnd求最大公約數(shù)和最小公輾轉(zhuǎn)相除法【例】計算最大公約數(shù)和最小公倍數(shù)PrivateSubCommand1_Click()DimmAsInteger,nAsIntegerDimuAsInteger,vAsm=n=Ifm>nThenu=m:v=nu=n:v=mEndIfr=uModvu=vv=LoopUntilr=Print最大公約數(shù)Print最小公倍數(shù)m*nuEndSub或r=uModvDoWhiler<>0u=vv=r=uModvPrint最大公約數(shù)v【例】判n是否為素數(shù)PrivateSubCommand1_Click()DimnAsInteger,iAsIntegernVal(InputBox("輸入正整數(shù)"))Fori=2Ton-1IfnModi=0ThenExitForNextiIfin1ThenPrintn是質(zhì)數(shù)"Printn不是質(zhì)數(shù)"EndIfEnd例100~200之間素數(shù),并寫入順序文件PrivateSubOpen“shusu.dat”ForOutputAsForn=101To200step2S=1‘是Fori=2ToInt(Sqr(n))IfnModi=0ThenS=0不是ExitForEndIfNextIIfs=1ThenWrite#1,nNextnclose#1EndSubList1.AddItemn數(shù)組6.1態(tài)數(shù)編譯時分配空間定義:Dimb(3,4)As例:Dimb(3,2to4,1to3AsInteger共分配4×3×3=36元素,共72ByteOption語句格式:OptionBase例OptionBaseDima(10)AsInteger,x(5,5)As過程中用ReDim語句定義帶下標(biāo)的數(shù)組時不指定數(shù)組的維DimTest()AsIntegerDimnAsIntegerSubvalue:ReDimTest(n)End數(shù)組元素的組名(下標(biāo))運行前對數(shù)組進(jìn)行初始化格式:數(shù)組變量名=Array(值表說明:數(shù)組下標(biāo)下界缺省為0,只能對一維數(shù)組初始DimaAsAsVariant注意:下標(biāo)從0~6【例】一維數(shù)組元素賦初值OptionBasePrivateSubDimaAsa=Array(1,2,3,4,5,6,Fori=1To7Printa(i);NextiEnd運行結(jié)果123456數(shù)組輸入/輸二維數(shù)組采重循環(huán)【例】一維數(shù)組的輸入和輸Fori=1Toa(i)=InputBox("Enterdata:")Nexti【例】二維數(shù)組的輸入和輸124578Fori1ToForj1Toa(i,=InputBox("enterNextNextFori1ToForj1ToPrinta(i,j);"";NextjNext【例】用Rnd產(chǎn)生100~100之間隨機Fori=1Toa(i)=Int(100*NextType自定義類型名元素名1As元素名2As元素名nAsEnd一般在標(biāo)準(zhǔn)模塊中定義,默認(rèn)為Public如在窗體模塊的“”段定義,則必須加上Private,自定義類型中的元素可以為數(shù)組PrivateTypestudentnumAsString*8nameAsString*8totalAsIntegeraverageAsIntegerEndType自定義類型變量的Dim量名As定義類型名DimstudAs形式:變量名.元素名自定義類型數(shù)組的和使用:Dimst(5)AsStudent記錄數(shù)組元素.成員【例】輸入5個學(xué)生的學(xué)號、、和3門課的成績,利用自定義類型數(shù)組,PrivateTypestudentnoAsString*6nameAsString*6s1AsSingles2AsSingles3AstotalAsSingleaverAsSingleEndTypePrivateSubDima(1To5)Asstudent,tAsOpen“stud.dat”ForOutputAsOpenstud.datForRandomAs#2Len=Len(t)開隨機文n=Fori=1Tona(i).total=a(i).s1+a(i).s2+a(i).s3a(i).aver=a(i).total/3NextFori=1Ton-1Forj=i+1ToIfa(i).aver<a(j).averThent=a(i)a(i)=a(j)a(j)=tEndIfNextjNextPrint"學(xué)號語文數(shù)總分平均分"Fori=1TonPrintTab(2);a(i).no;Tab(10);a(i).name;Tab(18);a(i).s1;"Printa(i).s2;"";a(i).s3;"";a(i).total;""; Put#2,i,a(i)入隨機文NextiEnd入文件一行一個記錄交換兩個記錄數(shù)組元素的值,則該記錄數(shù)組元素的所有成員都將交換6.7用算法1.最大值和最小【例】找10個數(shù)中的最大值與最小值Fori=1ToIfa(i)>MaxThenMax=a(i)Ifa(i)<MinThenMin=a(i)Nexti6.7.2降序:從大到比較交換Fori=1Ton-1Forj=i+1TonIfa(i)>a(j)Thent=a(i)a(i)=a(j)a(j)=tEndIfNextjNext選擇法排Fori=1Ton-1p=iForj=i+1ToIfa(p)>a(j)Thenp=jNextjt=a(i)a(i)=a(p)a(p)=tNexti冒泡法排特點:相鄰的兩個元素進(jìn)行Fori=1Ton-1Forj=1Ton-Ifa(j)>a(j+1)Thent=a(j)a(j)=a(j+1)a(j+1)=tEndIfNextjNexti順序查從一組數(shù)據(jù)中,按順序地查找指定的數(shù)【例】用順序查詢法在下列數(shù)據(jù)中查找關(guān)鍵字kVal(InputBox("輸入要查詢的數(shù)"))p=1Whilek<>a(p)Andp<np=p+1Ifk=a(p)Printk;"befound,on";p;"thposition."Printk;"hasnotbefound."EndIf2半查只能對有序數(shù)列進(jìn)行查詢【例】用折半查詢法查找關(guān)鍵字值66-123,-OptionBasePrivateSubDimaAsa=Array(-123,-10,5,8,30,56,59,66,90,n=Print數(shù)組a的10數(shù)為:"ForEachiiInaPrintii;"";NextiikVal(InputBox("輸入要查Print要查詢的數(shù)klow=1hig=nfind=-1Whilelow<=higAndfind=-1m=(low+hig)\2Ifk=a(m)find=Printk;"hasbefound,on";m;"thposition."Ifk<a(m)Thenhig=m-1low=m+1EndIfEndIfIffind=-1Printk;"hasnotbefound."EndIfEnd注意:若數(shù)據(jù)按降序排Ifk<a(m)Thenlow=m+1hig=m-1EndIfPrivateSubOpen“stud.dat”ForOutputAsDimno(1To16)AsStringDima(1To16)AsSingleFori=1To16no(i)=InputBox("輸入運動員:")a(i)Val(InputBox("輸入運動員成績:"))NextiFori=1To15k=iForj=i+1ToIfa(k)>a(j)Thenk=jNextjt=no(i)no(i)=no(k)no(k)=tt=a(i)a(i)=a(k)a(k)=tEndIfNextPrint"名次運動員運動員成績"Fori=1To5Printi,no(i),NextiEnd函數(shù)過程的定Function過程名(形參表As型函數(shù)過程名=表達(dá)EndSub程序過程名EndCall程序過程名(實參表編寫函數(shù)過程計算PrivateSubCommand1_Click()n=Val(Text1.Text)Text2.Text=fact(n)EndFunctionfact(n)f=1Fori=1Tonf=f*iNextifact=fEnd【例】子程序過程計算n!PrivateSubCommand1_Click()n=Val(Text1.Text)Callfact(n,f)Text2.Text=fEndSubPrivateSubfact(n,f)f=1Fori=2Tonf=f*iNextiEndSub計算若干值,只能用Sub程。7.3數(shù)傳1傳值方參:變形參前加關(guān)鍵字ByVal例:Subfact(ByValn)2址方式或形參前加ByRef例:Subfact(ByRefn)VB認(rèn)方式為傳址方式從過程中,返回計算結(jié)果,必須采用傳址方式PrivateSubForm_Click()n=100m=Callabc(n,m)Printn,mEndPublicSubabc(ByValx,y)t=xx=y=tPrintx,yEndSub輸出:200100變量的作用作用域指變量能被某一過程識別的范圍1.全局變在標(biāo)準(zhǔn)模塊的通用段用Public變PublicxAsInteger,yAsSingle用Private或Dim變作用域:在它的整個模塊的所有過程有效。PrivatexAsInteger,yAs或DimxAsInteger,yAsSingle在過程中定義的作用域:為其所在的過程隨過程的調(diào)用而分配單元,過程執(zhí)行結(jié)束,所占用的單元被。靜態(tài)變量用Static的局部變量,在過程調(diào)用結(jié)束后保留值【例】動態(tài)變量、靜態(tài)變量和模塊級變量的作用DimcAsPrivateSubForm_Click()a=1:b=2:c=3Print"a","b","c"Fori=1To3CalltestNextiPrint"A","B","Printa,b,cEndSubSubStatica=a+b=b+c=c+1Printa,b,cEndSub數(shù)據(jù)文1序文件的打格式:Open文件名For方式AsOutput—順序?qū)懭敕綄戫樞蛭募Z句(建立文件格式:Write#文件號,輸出項PrivateSubForm_Click()DimnoAsLong,namAsStringDimscoreAsSingleOpend:\chengji1.dat"ForOutputAs2no=InputBox("輸入學(xué)號:")Whileno<>nam=InputBox$("輸入學(xué)生:")scoreInputBox("輸入學(xué)生成績:")Write#2,no,nam,scorenoInputB
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 股份轉(zhuǎn)讓合同書(版)
- PVC管材供應(yīng)合同
- 合同預(yù)付款擔(dān)保方式的發(fā)展趨勢
- 中介公司租房合同樣本
- 污水處理基本工藝流程
- 2024年04月江蘇鹽城市東臺市衛(wèi)生健康委員會校園招聘事業(yè)單位人員93人筆試歷年專業(yè)考點(難、易錯點)附帶答案詳解
- 礦山安全生產(chǎn)事故警示教育考核試卷
- 法律服務(wù)在反壟斷與反不正當(dāng)競爭中的作用考核試卷
- 科學(xué)安全生產(chǎn)培訓(xùn)
- 砼結(jié)構(gòu)構(gòu)件的預(yù)制件設(shè)計創(chuàng)新考核試卷
- 農(nóng)行反洗錢與制裁合規(guī)知識競賽考試題庫大全-下(判斷題)
- 24.1.4-圓周角-第1課時說課課件-
- (正式版)SH∕T 3507-2024 石油化工鋼結(jié)構(gòu)工程施工及驗收規(guī)范
- 土石壩設(shè)計計算書
- 重慶市兩江新區(qū)2023-2024學(xué)年七年級下學(xué)期期末考試語文試題
- 思念女聲三部合唱簡譜
- 福建省廈門市第一中學(xué)2022-2023學(xué)年八下期中考試數(shù)學(xué)試卷(解析版)
- SGT756變壓器技術(shù)說明書
- 中國痔病診療指南(2020版)
- 神經(jīng)病學(xué)(第8版)第六章-周圍神經(jīng)疾病
- 國際標(biāo)準(zhǔn)《風(fēng)險管理指南》(ISO31000)的中文版
評論
0/150
提交評論