補考-大一下vbc語言vb題目_第1頁
補考-大一下vbc語言vb題目_第2頁
補考-大一下vbc語言vb題目_第3頁
補考-大一下vbc語言vb題目_第4頁
補考-大一下vbc語言vb題目_第5頁
已閱讀5頁,還剩20頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

VB概§1VB特可視化的設計平 象的設計方(對象的性質(對象的動作(對象的響應它構成對象的三個要素。事件驅動的編程機集成化的開發環結構化的設計語§4VB序設VB應用程序的開發有三個步驟設計應用程序界面設置對象的屬編寫事件驅動代執行“文件/保存工程”命(第一次保存文件)系統先打開“文件另存為”框,保存窗體文件(或標準模塊文件,然后再打開“工程另存為”框,保存工程文件。保存修改后的工程文選擇“文件/(保存與工程有關的修改過的窗體文件或標準模塊文件。字符串“Iama"計算機數值常整型1234(十進制12345678(十進制單精度數:有三種形式,12.34,123123.45E-&精度$符串型2.號常格式:Const功能:定義一個符號常量來表示表達式的值類型決定。ConstPI=變1.變量變量名不能是保留VB變量名不區分字母大小寫2.量的類用類型說明在變量的尾部加上類型說明&精度$符串型在時,可以省略類型說明符。定義變量時其類型格式:Dim變量名As類型“類型”可為基本數據類型或用戶自定義的類型Boolean(布爾型)Long(長整型)Single(單精度型)Double(雙精度型)String(字符串型)Variant(變體型)Dimstr1AsString,countryAsString*20DimiAsInteger,sumAsSingle定義變量后,數值型變量的初值為變長字符串的初值是長度為定長字符串的初值的長度等于定義值3.變體類型變量例如:DimsumAsVariantDimsum運算符與表達1.術運算符(8):取負(-乘法、浮點除法(*)取模加法、減法(整除:被除數和除數為整數,結果為整31.7\32\6果取模(求余)運算:結果為整數除法的余數31.77Mod5.88(四舍五入32Mod6數為3Mod6余數為字符串表達字符串運算符&str1&2008&奧運會2008運"2008"奧運2008Print123"567結果Printabc"567錯:類型不匹配常用函數數學函返回x的絕對求不大于x的最大整Int(7.8)結果為7,Int(-7.8)結果為-把x小數四舍五入,轉換為整數計算ex,e自然數x的自然對x的平方返回0~1的隨機數字符串函返回字符串長取字符串左邊n個字取字符串右邊n個字從位置p開始,取n個字符,如n省略,取到最數值轉字符字符串轉數返回字符串首字母ASCIIASCII碼轉字反正切函數Atn(x)的返回值單位為弧度。度轉換為弧度:1°3.14159/180l生0~n間的隨機數(不含0n)l生0~n間的隨機整數(含0,不含n)l生a~b間的隨機整數(含a,不含b)Int(b-l生a~b間的隨機整數(含ab)Int(b-順序結結構化程序三種基本結構順序結構、選擇結構和循環結構1值語變量=表達式DimNumAsNum=8.899賦給Num,四舍五人3據輸方法1:用文本例:DimmAsIntegerm=Val(Text1.Text)方法2:用Inputbox()函例:m=Val(InputBox("enter4出數方法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是把窗體裝入工作區事Form_Load()啟動程序時對屬性和變量進行初始化。UnLoad事滿足條件為“真用“True”表示關系運算符(6種優先級相同,運算從左到右關系表達apply按ASCII碼逐字符進行比較“applyapple果為邏輯表達邏輯運算符NotAnd優先級(Not(Anda<=xAndx<=選擇結單行If語If件Then句組1Else語句組語句組:各語句間需用分隔塊結構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間不能有空格【例】學生成績判定PrivateSubx=Val(InputBox("輸入學生成績:"))Ifx>=90ThenPrint“優”ElseIfx>=80ThenPrint“良”ElseIfx>=70ThenPrint“中”ElseIfx>60ThenPrint“及格”Print及格EndIfEnd2.4IIfIIf是單行If句的簡單版變量IIf(條件,True分,False分)注意:IIf數中的三個參數都不能省略。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試表達Case件語句塊Case件語句塊CaseElse語句塊n+1EndSelect則執行CaseElse的語句塊。注意條件常量表測試范圍:10to20,“a”toz”比較范圍:Is<10(不能為邏輯表達式【例】學生成績PrivateSubxVal(InputBox("輸入考試SelectCase90y$80y$70y$60y$="及格"Case0To59y$及格Casey$入錯誤"EndSelectForm1.Print成績x,等級y$EndSub循環結For-Next循常用于循環次數已知For環變量值To值Step長][ExitFor]Next環【例】計算n!PrivateSubnVal(InputBox("輸入一個自然數"))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循適合處理循環次數未知的循While功能:當條件為真時執行循【例】計算1+2+3+……+100PrivateSubCommand1_Click()DimnAsInteger,sAsIntegernWhilen<=100Lable1.Caption=“1+2++3+……+100=”&EndDo-Loop循[ExitLoopWhile|Until件]Do[While|Until條件][ExitDoWhile當“條件”為True行循環體。Until條件——“條件”為False行循環體。格式1先循環,后判斷至少執行一次循環格式2先判斷,后循環如條件不滿足,則一次循環也不執行nDowhilen<=100nDoUntiln>100【例】將十進制數轉換為二進制PrivateSubDimmAsm=InputBox("enterm:")a$=""Whilem<>0r=mMod2a$=r&a$m=m\2Printa$EndSuba$a$&r列表框的方AddItem方法:用于在列表框中一個列表項。AddItem目字符串[,索引值如省略索引值,則在列表框的最后新列表項PrivateSubCommand1_Click()List1.AddItemText1.TextEndSub必須完整嵌套,不得交叉ExitFor句和ExitDo句只能退出當前層循環。Forn=1toPrintn;”IfnMod10=0ThenPrintNextn顯示10數據換行不定方程求解PrivateSubCommand1_Click()DimxAsIntegerDimyAsInteger,zAsIntegerPrint"公雞","母雞","小雞"Forx=0To20Fory=0To33z=100-x-If5*x+3*y+z/3=100ThenPrintx,y,zEndIfNextyNextEnd求最大公約數和最小公輾轉相除法【例】計算最大公約數和最小公倍數PrivateSubCommand1_Click()DimmAsInteger,nAsIntegerDimuAsInteger,vAsm=n=Ifm>nThenu=m:v=nu=n:v=mEndIfr=uModvu=vv=LoopUntilr=Print最大公約數Print最小公倍數m*nuEndSub或r=uModvDoWhiler<>0u=vv=r=uModvPrint最大公約數v【例】判n是否為素數PrivateSubCommand1_Click()DimnAsInteger,iAsIntegernVal(InputBox("輸入正整數"))Fori=2Ton-1IfnModi=0ThenExitForNextiIfin1ThenPrintn是質數"Printn不是質數"EndIfEnd例100~200之間素數,并寫入順序文件PrivateSubOpen“shusu.dat”ForOutputAsForn=101To200step2S=1‘是Fori=2ToInt(Sqr(n))IfnModi=0ThenS=0不是ExitForEndIfNextIIfs=1ThenWrite#1,nNextnclose#1EndSubList1.AddItemn數組6.1態數編譯時分配空間定義:Dimb(3,4)As例:Dimb(3,2to4,1to3AsInteger共分配4×3×3=36元素,共72ByteOption語句格式:OptionBase例OptionBaseDima(10)AsInteger,x(5,5)As過程中用ReDim語句定義帶下標的數組時不指定數組的維DimTest()AsIntegerDimnAsIntegerSubvalue:ReDimTest(n)End數組元素的組名(下標)運行前對數組進行初始化格式:數組變量名=Array(值表說明:數組下標下界缺省為0,只能對一維數組初始DimaAsAsVariant注意:下標從0~6【例】一維數組元素賦初值OptionBasePrivateSubDimaAsa=Array(1,2,3,4,5,6,Fori=1To7Printa(i);NextiEnd運行結果123456數組輸入/輸二維數組采重循環【例】一維數組的輸入和輸Fori=1Toa(i)=InputBox("Enterdata:")Nexti【例】二維數組的輸入和輸124578Fori1ToForj1Toa(i,=InputBox("enterNextNextFori1ToForj1ToPrinta(i,j);"";NextjNext【例】用Rnd產生100~100之間隨機Fori=1Toa(i)=Int(100*NextType自定義類型名元素名1As元素名2As元素名nAsEnd一般在標準模塊中定義,默認為Public如在窗體模塊的“”段定義,則必須加上Private,自定義類型中的元素可以為數組PrivateTypestudentnumAsString*8nameAsString*8totalAsIntegeraverageAsIntegerEndType自定義類型變量的Dim量名As定義類型名DimstudAs形式:變量名.元素名自定義類型數組的和使用:Dimst(5)AsStudent記錄數組元素.成員【例】輸入5個學生的學號、、和3門課的成績,利用自定義類型數組,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"學號語文數總分平均分"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入文件一行一個記錄交換兩個記錄數組元素的值,則該記錄數組元素的所有成員都將交換6.7用算法1.最大值和最小【例】找10個數中的最大值與最小值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冒泡法排特點:相鄰的兩個元素進行Fori=1Ton-1Forj=1Ton-Ifa(j)>a(j+1)Thent=a(j)a(j)=a(j+1)a(j+1)=tEndIfNextjNexti順序查從一組數據中,按順序地查找指定的數【例】用順序查詢法在下列數據中查找關鍵字kVal(InputBox("輸入要查詢的數"))p=1Whilek<>a(p)Andp<np=p+1Ifk=a(p)Printk;"befound,on";p;"thposition."Printk;"hasnotbefound."EndIf2半查只能對有序數列進行查詢【例】用折半查詢法查找關鍵字值66-123,-OptionBasePrivateSubDimaAsa=Array(-123,-10,5,8,30,56,59,66,90,n=Print數組a的10數為:"ForEachiiInaPrintii;"";NextiikVal(InputBox("輸入要查Print要查詢的數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注意:若數據按降序排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函數過程的定Function過程名(形參表As型函數過程名=表達EndSub程序過程名EndCall程序過程名(實參表編寫函數過程計算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數傳1傳值方參:變形參前加關鍵字ByVal例:Subfact(ByValn)2址方式或形參前加ByRef例:Subfact(ByRefn)VB認方式為傳址方式從過程中,返回計算結果,必須采用傳址方式PrivateSubForm_Click()n=100m=Callabc(n,m)Printn,mEndPublicSubabc(ByValx,y)t=xx=y=tPrintx,yEndSub輸出:200100變量的作用作用域指變量能被某一過程識別的范圍1.全局變在標準模塊的通用段用Public變PublicxAsInteger,yAsSingle用Private或Dim變作用域:在它的整個模塊的所有過程有效。PrivatexAsInteger,yAs或DimxAsInteger,yAsSingle在過程中定義的作用域:為其所在的過程隨過程的調用而分配單元,過程執行結束,所占用的單元被。靜態變量用Static的局部變量,在過程調用結束后保留值【例】動態變量、靜態變量和模塊級變量的作用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數據文1序文件的打格式:Open文件名For方式AsOutput—順序寫入方寫順序文件語句(建立文件格式:Write#文件號,輸出項PrivateSubForm_Click()DimnoAsLong,namAsStringDimscoreAsSingleOpend:\chengji1.dat"ForOutputAs2no=InputBox("輸入學號:")Whileno<>nam=InputBox$("輸入學生:")scoreInputBox("輸入學生成績:")Write#2,no,nam,scorenoInputB

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論