版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第二章VisualBasic
語言基礎(chǔ)常量、變量、運(yùn)算符和表達(dá)式賦值與注釋語句和一句多行與一行多句基本控制結(jié)構(gòu)常用內(nèi)部函數(shù)輸入與輸出數(shù)組算法舉例2.1.1常量類型:數(shù)值型、字符型、邏輯型、日期型一般常量123,-456.8,“ABC”,“水產(chǎn)學(xué)院”,true,false,#1/3/2004##1MAR2004#,#MARCH1,2004#,&O123,-&HA2符號(hào)常量語法:[Public|Private|Global]Const常數(shù)名[AS數(shù)據(jù)類型]=表達(dá)式表達(dá)式可以是結(jié)果為數(shù)或字符串的表達(dá)式或先前定義過的常量Public或Global說明可在整個(gè)應(yīng)用程序中使用,Private說明只能在該過程中使用。(全局常量)常量名必須以字母開頭,不包含句號(hào)或類型說明符,不能超過255個(gè)字符。例:ConstPI=3.14ConstEasdouble=2.718constN%=782.1常量、變量、運(yùn)算符和表達(dá)式2.1.2變量變量名字母開頭由字母、數(shù)字和下劃線組成不能包含空格、句號(hào)、類型說明符長(zhǎng)度不超過255不能與關(guān)鍵字重名變量類型LLL說明1:字符串類型有定長(zhǎng)和變長(zhǎng),定長(zhǎng)字符串的存儲(chǔ)空間為串長(zhǎng);變長(zhǎng)字符串的存儲(chǔ)空間為10+串長(zhǎng)。RETURN說明2:variant有數(shù)字類型和字符類型之分。數(shù)字類型存儲(chǔ)空間為16;字符串類型為22+串長(zhǎng)。說明3:variant包含3種特定值:Empty,NULL,ErrorEmpty:不同于0、零長(zhǎng)度字符串、Null的特定值。Null:未知的數(shù)據(jù)或丟失的數(shù)據(jù),一般用于數(shù)據(jù)庫Error:已發(fā)生的過程中的錯(cuò)誤狀態(tài)。Variant變量賦值之前具有值Empty。包含NULL的表達(dá)式,計(jì)算結(jié)果總是NULLVariant用于在用戶不能確定變量的數(shù)據(jù)類型時(shí)聲明變量,以便計(jì)算機(jī)為該變量留內(nèi)存空間。變體根據(jù)實(shí)際需要可以為10種任何數(shù)據(jù)類型中的任何一種。PrivateSubForm_Activate()Dimaasvarianta=1Printaa="this"PrintaEndSub輸出結(jié)果為:1thisPrivateSubForm_Activate()DimaAsIntegera=1Printaa="this"PrintaEndSub將出現(xiàn)編譯錯(cuò)誤在變量名后加上“%”或在-32768~32767之間的整數(shù)后加上%都表示該變量為整型,例:
PrivateSubForm_Activate()a%=234.567c=234.567b=234%Printa,b,cEndSub將打印出235234234.567整型和長(zhǎng)整型的區(qū)別:(1)占內(nèi)存空間不同(2)表示數(shù)的范圍不同單精度最多能保留到小數(shù)點(diǎn)后6位有效數(shù)字,雙精度可保留到小數(shù)點(diǎn)后14位(單精度為7位有效數(shù)字,雙精度為15位有效數(shù)字)。單精度的類型說明符為!,雙精度的類型說明符為#。貨幣類型的必要性:為精確表示財(cái)務(wù)帳目。類型說明符為@,它的精度高,規(guī)定精確到小數(shù)點(diǎn)后4位,一般的數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中是以二進(jìn)制進(jìn)行計(jì)算的,計(jì)算有誤差,而貨幣類型是以十進(jìn)制進(jìn)行計(jì)算的,精確度高。另外,單精度只有7位有效數(shù)字,雙精度只有15位有效數(shù)字,表示大數(shù)額的貨幣時(shí)不精確,如:$223555868999234.65,用單精度數(shù)表示為:$2.235559E14,用雙精度數(shù)表示為:223555868999235,用貨幣類型表示為:$223555868999234.65RETURN3.變量說明(1)顯式說明Dim變量名[As數(shù)據(jù)類型][,變量名[As數(shù)據(jù)類型]]……Static變量名[As數(shù)據(jù)類型][,變量名[As數(shù)據(jù)類型]]……Public變量名[As數(shù)據(jù)類型][,變量名[As數(shù)據(jù)類型]]……Private變量名[As數(shù)據(jù)類型][,變量名[As數(shù)據(jù)類型]]……例:DimMynameasstringDimYourNameasString*50
DimobjDbasobject
setobjDb=OpenDatabase(“C:\vb\test.mdb”)說明:Static定義靜態(tài)變量Public定義的變量可以在其他對(duì)象的過程中使用Private定義的是局部變量(2)隱式說明.用類型說明符聲明變量 例:no%聲明no為一個(gè)整型變量
s$聲明s為一個(gè)字符串變量
d#聲明d為一個(gè)雙精度型變量例:no%=90 s$=“hello”d#=3.14159265(3)OptionExplicit作用:為避免寫錯(cuò)變量名而引起麻煩,可以使VB只要遇到未聲明的變量就發(fā)出錯(cuò)誤警告。使用方法:在代碼窗口中加入OptionExplicit語句(代碼窗口的對(duì)象列表中選“通用”,事件列表中選“聲明”)“工具”/“選項(xiàng)”/“編輯器”/選中“要求聲明變量”復(fù)選框,會(huì)自動(dòng)在任何新模塊中插入“OptionExplicit”語句2.1.3運(yùn)算符和表達(dá)式運(yùn)算符算術(shù)運(yùn)算符:+,-,*,/,\,Mod,^關(guān)系運(yùn)算符:>,>=,<,<=,<>,=,IS,Like連接運(yùn)算符:&,+(字符串連接)邏輯運(yùn)算符:and(與),or(或),not(非),Xor(異或),Imp(包含),Eqv(等價(jià))整除運(yùn)算(\)結(jié)果是商的整數(shù)部分,7\2結(jié)果為3.5的整數(shù)部分Mod求兩個(gè)整數(shù)相除以后的余數(shù)。在這兩種運(yùn)算中,如果參加運(yùn)算的是實(shí)數(shù),則先按四舍五入原則將他們變成整數(shù),然后進(jìn)行計(jì)算。
除法運(yùn)算(/):兩個(gè)整型常量或變量進(jìn)行除法運(yùn)算的結(jié)果如果賦給一個(gè)整型量結(jié)果為整型,運(yùn)算結(jié)果與整除運(yùn)算結(jié)果一樣;如果賦給實(shí)型量,結(jié)果為實(shí)型。Is比較兩個(gè)對(duì)象的引用變量Like進(jìn)行字符串匹配比較,*匹配多個(gè)字符;?匹配單個(gè)字符,#匹配單個(gè)數(shù)字,[列表]匹配列表內(nèi)的單個(gè)字符,![列表]匹配列表外的單個(gè)字符,例:s*,s?,s#,[a-f],![a-f]例:s$=“123”slike“12#”slike“12?”slike“12*”S$=“111”slike“1*”snotlike“1?”snotlike“1#”邏輯運(yùn)算符的運(yùn)算結(jié)果:2.運(yùn)算符的優(yōu)先級(jí):其中優(yōu)先級(jí)由高到低運(yùn)算,同級(jí)由左到右有括號(hào)先算括號(hào)內(nèi)。2.2.1賦值語句格式:變量名或?qū)ο?屬性名=表達(dá)式表達(dá)式可以是常量、變量、對(duì)象.屬性名、表達(dá)式左右兩邊類型必須一致,否則強(qiáng)制類型轉(zhuǎn)換字符與數(shù)值不能互相賦值例:Text1.text=“Hello!”DimMynameasstringMyname=“Helen”Dim
MyAgeasintegerMyAge=Myage+12.2賦值與注釋語句和一句多行與一行多句2.2.2注釋語句1.REM注釋格式:REM注釋內(nèi)容2.單引號(hào)‘注釋格式:’注釋內(nèi)容兩種格式都可以占一整行或半行(寫在語句后邊對(duì)語句注釋)前者占半行時(shí)需在語句后加上冒號(hào)編程技巧:程序調(diào)試過程中經(jīng)常把暫時(shí)不用的語句加上注釋而不是刪除。2.2.3一句多行與一行多句1.一句多行在行尾加上“_”表示續(xù)行,即:該行還沒完,此時(shí)不能在后邊加注釋例:Text1.text=text1.text+”hello,”_+”大連水產(chǎn)學(xué)院”2.一行多句語句之間用冒號(hào)分隔。例如:A=8:b=9:c=102.3.1分支結(jié)構(gòu)2.3基本控制結(jié)構(gòu)1.If…Then結(jié)構(gòu)語法:If條件Then
語句組
EndIf 或?qū)懽?if條件then語句(必須是單個(gè)語句的情況)例:Ifa>0Thenb=aElseb=-a
2.If…Then…else結(jié)構(gòu)語法:IfAThen或IfA1Then B B1 Else ElseIfA2Then C B2 EndIf ElseIfA3Then B3 …… Else
Bn EndIfIfa>0then printaEndIfIfa>0Thenb=aElseb=-aEndIf
IfScore<60Thenprint“Fail”
ElseIfScore<70Thenprint“Pass”
ElseIfScore<80Thenprint“Middle”
ElseIfScore<90Thenprint“Good”Elseprint“Excellent”EndIf3SelectCase語句語法:SelectCase<變量>|表達(dá)式
Case<值1> <語句1>
Case<值2> <語句2> ……
Case<值n-1> <語句n-1> CaseElse <語句n>EndSelect例:SelectCasescore
Case5 print“Best”
Case4 print“Better”
Case3 print“Good” CaseElse print“Fail”EndSelect說明:(1)值的形式可以是:具體常數(shù):1,2,3,“A”等連續(xù)的數(shù)據(jù)范圍:1to100,AtoZ滿足某個(gè)條件的表達(dá)式:I>10多個(gè)不同范圍,用逗號(hào)閣開:1,3to5,9(2)SELECTCase結(jié)構(gòu)在開始處計(jì)算表達(dá)式的值,IF…THEN…ELSE結(jié)構(gòu)在每個(gè)elseif處計(jì)算表達(dá)式的值(3)如果不止一個(gè)case子句與表達(dá)式的結(jié)果相同則只執(zhí)行第一個(gè)子句(4)caseelse放在selectcase結(jié)構(gòu)的最后4.嵌套嵌套的if語句中,endif語句自動(dòng)與最靠近的前一個(gè)if語句配對(duì)盡量用縮進(jìn)的方式書寫結(jié)構(gòu)語句和循環(huán)語句1Do循環(huán)無條件循環(huán):
Do
語句組 [exitdo]
語句組
Loop有條件循環(huán):條件為True時(shí)執(zhí)行循環(huán)體, 條件為False時(shí)退出循環(huán)體。
DoWhile<條件> 語句組 [exitdo]
語句組
Loop條件為False時(shí)執(zhí)行循環(huán)體,條件為True時(shí)退出循環(huán)體。DoUntil<條件>
語句組 [exitdo]
語句組Loop2.3.2循環(huán)結(jié)構(gòu)Do
語句組 [exitdo]
語句組LoopUntil<條件>當(dāng)滿足條件時(shí)執(zhí)行循環(huán)體。While<條件>循環(huán)體WendDo
語句組 [exitdo]
語句組LoopWhile<條件>在循環(huán)終止時(shí)測(cè)試循環(huán)條件,循環(huán)無條件執(zhí)行一次:Do循環(huán)的循環(huán)體中必須有使循環(huán)條件變?yōu)閒alse的語句,否則,循環(huán)會(huì)永遠(yuǎn)進(jìn)行下去。即:產(chǎn)生死循環(huán)。例:
c=1DoWhilec<5Printc,c=c+1LoopPrint
c=1DoPrintc,c=c+1LoopWhilec<5Printc=1DoUntilc>25Printc,c=c*3LoopPrint
c=1DoPrintc,c=c*3LoopUntilc>25Print
a=1Whilea<5Printa,a=a+1WendPrint2.For循環(huán)語法:For<循環(huán)控制變量>=<循環(huán)初值>To<循環(huán)終值>[Step<步長(zhǎng)>] [循環(huán)體] [ExitFor]Next<變量>For語句的執(zhí)行步驟:Step1:設(shè)置循環(huán)控制變量為循環(huán)初值Step2:如果步長(zhǎng)為正,判斷循環(huán)控制變量是否大于循環(huán)終值,如果步長(zhǎng)為負(fù),判斷循環(huán)控制變量的值是否小于循環(huán)終值,如果是,退出循環(huán),否則,執(zhí)行循環(huán)體。Step3:循環(huán)控制變量=循環(huán)控制變量+步長(zhǎng)Step4:gotostep2注:步長(zhǎng)可以為負(fù),步長(zhǎng)缺省時(shí)為1Fori=1To5Print"thisisthe",i,"execute"NextiPrintFori=1To5Step2Print"thisisthe",i,"execute"NextiPrintFori=1To5Print"thisisthe",i,"execute"Ifi>=3ThenExitForEndIfNextiSum=0Fori=1To100sum=sum+iNextISum=0ForI=100to1step–1Sum=sum+INextI設(shè)計(jì)一個(gè)搖獎(jiǎng)程序,隨機(jī)生成一個(gè)N位的中獎(jiǎng)號(hào)碼。ConstN=5PrivateSubcmdStart_Click()Dimi,jAsIntegerDimaAsSingleDimStrPrizeAsString
Fori=1ToNj=Int(10*Rnd)
StrPrize=StrPrize&jFora=1To10000Step0.01NextaNumber.Text=StrPrizeNumber.RefreshNextiEndSub3.退出循環(huán)語法:ExitForExitDo說明:Exit語句幾乎總是出現(xiàn)在循環(huán)體內(nèi)的嵌套的if語句例:DimI,sumasintegerSum=0ForI=1to10000 SUM=SUM+1 IFsum>5000thenexitforNexti內(nèi)部函數(shù):VB提供的函數(shù)函數(shù)調(diào)用:函數(shù)名(參數(shù)1,參數(shù)2……)2.4.1算術(shù)函數(shù)VB提供的進(jìn)行算術(shù)運(yùn)算的函數(shù)。2.4常用內(nèi)部函數(shù)2.4.2字符串函數(shù)VB提供的進(jìn)行字符串處理的函數(shù)。2.4常用內(nèi)部函數(shù)例:s$="大連水產(chǎn)學(xué)院AbCd信息工程學(xué)院"
PrintLTrim(s)PrintRTrim(s)PrintTrim(s)PrintLeft(s,5)PrintRight(s,6)PrintMid(s,6,4)PrintLen(s)PrintLCase(s)PrintUCase(s)PrintString(8,"X")PrintLen(Space(5))例:設(shè)計(jì)一個(gè)將輸入的字符串反向顯示的程序PrivateSubcmdStart_Click()Dimstr,strReverseAsStringDimI,nAsInteger
str=txtInput.Text:n=Len(str)Fori=1Ton
strReverse=strReverse&Right(str,1)
str=Left(str,Len(str)-1)Nexti
txtOutput.Text=strReverseEndSub例:譯電文,為了保密,在電文傳輸過程中往往將電文加密,收電文時(shí)再轉(zhuǎn)換回來。比如:按下列規(guī)律譯:A變成E,B變成F,……,W變成A,X變成B,Y變成C,Z變成D。PrivateSubcmdStart_Click()DimSourceStr,SecretStrAsStringDimiAsInteger
SecretStr=""
SourceStr=txtInput.TextFori=1ToLen(SourceStr)c=Mid(SourceStr,i,1)Ifc>="a"Andc<="z"Orc>="A"Andc<="Z"ThenIfc>="W"Andc<="Z"Orc>="w"Andc<="z"Thenc=Chr(Asc(c)+4-26)Elsec=Chr(Asc(c)+4)EndIfEndIf
SecretStr=SecretStr&cNextItxtOutput.Text=SecretStrEndSub2.4.3日期與時(shí)間函數(shù)作用:用于對(duì)日期和時(shí)間進(jìn)行處理的函數(shù)。2.4.4類型轉(zhuǎn)換函數(shù)作用:用于進(jìn)行不同數(shù)據(jù)類型之間轉(zhuǎn)換的函數(shù)。ASCII碼與字符串之間的轉(zhuǎn)換
ASCII碼轉(zhuǎn)換成字符串:chr
如:chr$(13)將ASCII碼13轉(zhuǎn)換成“回車”,chr$(10)將ASCII碼10轉(zhuǎn)換成“換行”。字符串轉(zhuǎn)換成ASCII碼:Asc。例:PrivateSubForm_Click()Cls‘清除窗體DimIAsInteger‘聲明I為整型變量ForI=Asc(“h”)toAsc(“z”)
PrintI‘打印相應(yīng)的ASC值NextIEndSub分析執(zhí)行結(jié)果,然后上機(jī)看執(zhí)行結(jié)果。(2)數(shù)與字符串之間的轉(zhuǎn)換Str$,F(xiàn)ormat$,Val將數(shù)轉(zhuǎn)換成字符串:Str$,這些數(shù)包括實(shí)數(shù)、貨幣、整數(shù)。將數(shù)據(jù)進(jìn)行格式化:Format$,將數(shù)、日期、時(shí)間、字符串按指定格式進(jìn)行格式化。例如:a=51.8375b=Format(a,”00.000”),則b=51.838將字符型數(shù)轉(zhuǎn)化為數(shù)值型數(shù):Val注:文本框的內(nèi)容、標(biāo)簽上的數(shù)為字符串類型,不能直接計(jì)算。(3)一種數(shù)據(jù)類型轉(zhuǎn)換成另一種數(shù)據(jù)類型:Fix:實(shí)數(shù)轉(zhuǎn)換成整數(shù),取整。Int:實(shí)數(shù)轉(zhuǎn)換成整數(shù),四舍五入。Ccur:將任何有效的表達(dá)式轉(zhuǎn)換成Curency型Cdbl:將任何有效的表達(dá)式轉(zhuǎn)換成Double型Cint:將任何有效的表達(dá)式轉(zhuǎn)換成Integer型CLng:將任何有效的表達(dá)式轉(zhuǎn)換成Long型CSng:將任何有效的表達(dá)式轉(zhuǎn)換成Single型CStr:將任何有效的表達(dá)式轉(zhuǎn)換成String型CByte:將任何有效的表達(dá)式轉(zhuǎn)換成Byte型CDate:將任何有效的表達(dá)式轉(zhuǎn)換成Date型CVar:將任何有效的表達(dá)式轉(zhuǎn)換成Variant型說明:函數(shù)的參數(shù)值必須對(duì)目標(biāo)數(shù)據(jù)類型有效,否則發(fā)生錯(cuò)誤,例如:long變成integer必須在integer范圍內(nèi)浮點(diǎn)變成整型是按照四舍五入的原則其他類型變成boolean,0變成false,非零變成true;boolean變成其他類型,false變成0,true變成-1轉(zhuǎn)換成date,小數(shù)點(diǎn)前部分表示日期,小數(shù)點(diǎn)后部分表示時(shí)間inputBox函數(shù)一般用于輸入,MessageBox用于輸出:2.5.1InputBox函數(shù)作用:接受用戶從鍵盤輸入的內(nèi)容格式:InputBox(提示信息,[標(biāo)題,][,缺省值][,Xpos][,Ypos][,幫助文件名,幫助主題號(hào)])說明:當(dāng)按“確定”按鈕時(shí)函數(shù)的返回值是輸入的文本內(nèi)容,按“取消”按鈕時(shí)返回空串。提示信息為在輸入對(duì)話框中顯示的提示信息,長(zhǎng)度不超過1024標(biāo)題為輸入對(duì)話框的標(biāo)題攔顯示的信息,缺省為應(yīng)用程序名缺省值為缺省的輸入內(nèi)容Xpos,Ypos對(duì)話框在屏幕上的起始位置2.5輸入與輸出例:Thefile=InputBox(“請(qǐng)輸入文件名:”,“輸入對(duì)話框舉例”,“file1”)產(chǎn)生的對(duì)話框?yàn)椋篜rivateSubForm_Click()Text1.Text=InputBox("hello")EndSub2.5.2MsgBox函數(shù) 作用:消息框是VB用MsgBox函數(shù)或語句提供的一種對(duì)話框,它本身不是用控件實(shí)現(xiàn)的。當(dāng)用函數(shù)實(shí)現(xiàn)時(shí)有返回值,通過返回值可以繼續(xù)下一步的工作。主要作用是向用戶發(fā)布提示信息,要求用戶做出相應(yīng)的響應(yīng)。
格式:MsgBox(提示信息[,按鈕類型][,標(biāo)題,]
[,幫助文件名,幫助主題號(hào)]
)說明:1.提示信息和標(biāo)題均為字符串常量或字符串變量2.提示信息是在消息框中顯示的信息3.標(biāo)題為消息框的標(biāo)題顯示的信息。4.按鈕類型可以用符號(hào)常量,也可以用數(shù)字,當(dāng)為數(shù)字時(shí)為C1+c2+c3+c4的和例1:例2:5.MsgBox函數(shù)也有返回值,返回值是由所按的按鈕確定的,含義例:
result=MsgBox(“數(shù)據(jù)正確嗎?”,65,“消息框舉例”)return缺省按鈕及其對(duì)應(yīng)的值指定缺省按鈕的符號(hào)常量和相應(yīng)數(shù)值returnreturnreturn消息框的強(qiáng)制返回性return例:想讓消息框的按鈕為VbYesNoCancel類型、第二個(gè)按鈕為缺省按鈕而且圖標(biāo)為感嘆號(hào)則第二個(gè)參數(shù)值設(shè)為:307=3+256+48語句為:
Text2.Text=MsgBox(“hello”,307,“test”)或
Text2.Text=MsgBox("hello",vbYesNoCancel+vbDefaultButton2_+vbExclamation,"test")return例:注冊(cè)窗口的設(shè)計(jì):PrivateSubCommand1_Click()IfText1.Text="DL"ThenIfText2.Text="dz"ThenForm2.ShowForm1.HideElseIfMsgBox("口令錯(cuò)誤!重新輸入嗎?",52,"錯(cuò)誤信息")=6ThenText2.Text=""Text2.SetFocusElseEndEndIfEndIfElseIfMsgBox(“用戶名錯(cuò)誤!重新輸入嗎?”,65,“用戶名錯(cuò)誤信息”)=1
ThenText1.SetFocusText1.Text=""ElseEndEndIfEndIf
EndSub2.5.3Print方法作用:在窗體、圖片框或打印機(jī)上輸出文本格式:對(duì)象.print[表達(dá)式列表]說明:表達(dá)式列表中間的分隔符可以是逗號(hào)或分號(hào),分號(hào)表示按緊湊格式輸出,逗號(hào)表示按標(biāo)準(zhǔn)位置輸出。例:表達(dá)式列表缺省時(shí)輸出一空行例:行尾可以有逗號(hào)、分號(hào)和回車,逗號(hào)、分號(hào)的含義同1,表示下一個(gè)print語句的輸出內(nèi)容與當(dāng)前print語句的最后一個(gè)輸出項(xiàng)的位置關(guān)系,回車表示換行。例:可以用格式函數(shù)控制輸出格式,這些格式函數(shù)包括:format、spc、tab例PrivateSubCommand1_Click()Dima,b,cAsIntegera=9:b=8:c=7Printa,b,cPrinta;b;cEndSubreturnPrivateSubCommand1_Click()Dima,b,cAsIntegera=9:b=8:c=7Printa,b,cPrintPrinta;b;cEndSubreturnPrivateSubCommand3_Click()Dima,b,cAsIntegera=9:b=8:c=7Printa,Printb;PrintcPrint"a";"b";"c"EndSubreturn(1)format格式:format(表達(dá)式[,格式串])PrivateSubCommand1_Click()DimmyTime,MyDateAsStringDimMySalary,yourSalaryAsStringDimaAsSinglea=5158.3
myTime=Format(Now,"hh:mm:ss")
MyDate=Format(Now,"yyyy/mm/dd")
MySalary=Format(a,"##,##.00")
yourSalary=Format(a,"####.00")PrintMyDate,myTime,MySalary,yourSalaryEndSub(2)spc格式:spc(n)功能:輸出n個(gè)空格(3)tab格式:tab[(n)]功能:將光標(biāo)移到第n列說明:如果當(dāng)前位置在第n列之后則移到下一行的第n列2.6數(shù)組2.6.1數(shù)組聲明1.數(shù)組定義:格式:Dim|Global數(shù)組名(數(shù)組元素上下界,……)[As類型]說明:(1)數(shù)組元素上下界可以表示為:下界to上界,缺省時(shí)數(shù)組下界時(shí)序號(hào)從0開始編號(hào)。(2)數(shù)組元素上下界的個(gè)數(shù)表示數(shù)組的維數(shù)(3)數(shù)組為變體類型時(shí)不同數(shù)組元素可以賦不同類型的值。(4)數(shù)組不同于普通變量,使用前必須先聲明。例:Dima(3To5)AsStringDimb(10)AsStringDimiAsIntegerFori=0To10b(i)="test"+Str(i)NextiPrinta(3);a(4);a(5)Fori=0To10Printb(i),NextiPrint2.OptionBase語句格式:OptionBase{0|1}功能:聲明數(shù)組的缺省下標(biāo)說明:(1)數(shù)組的默認(rèn)缺省下標(biāo)為0,可以用該語句將其改為1(2)一個(gè)模塊中只能出現(xiàn)一次該語句,且必須放在數(shù)組聲明語句之前。3.Lbound和Ubound函數(shù)格式:Ubound(數(shù)組名[,維]),Lbound(數(shù)組名[,維])功能:用于確定數(shù)組的指定維的最小和最大下標(biāo)說明: 維指定要返回的是哪一維的下標(biāo)2.6.2靜態(tài)數(shù)組和動(dòng)態(tài)數(shù)組1.靜態(tài)數(shù)組:固定大小的數(shù)組,維數(shù)和大小不能改變。動(dòng)態(tài)數(shù)組:運(yùn)行時(shí)可以改變其大小的數(shù)組,事前可以不指定數(shù)組的大小,在需要時(shí)指定。格式:ReDim[Preserve]數(shù)組名(數(shù)組元素上下界,……)[As類型]說明:(1)ReDim
用于為動(dòng)態(tài)數(shù)組重新分配存儲(chǔ)空間,只能改變每一維的數(shù)組元素的個(gè)數(shù),不能改變數(shù)組的維數(shù)。(2)當(dāng)改變數(shù)組元素最末維的大小時(shí)用preserve可以保留數(shù)組中原來的數(shù)據(jù)。(3)不能改變數(shù)組元素的類型(4)如果將數(shù)組元素改小,被刪元素的數(shù)據(jù)就會(huì)丟失PrivateSubCommand1_Click()Dima()AsIntegerDimx,yAsIntegerx=5y=9
ReDima(5,9)
ReDima(x+1,y+1)
ReDimPreservea(x+3,y+6)EndSub例:點(diǎn)擊按鈕時(shí),用輸入對(duì)話框輸入一個(gè)整數(shù)N,然后求Fabonacci數(shù)列:1,1,2,3,5,8,13,21,……到第N項(xiàng),并把結(jié)果輸出到窗體上Fabonacci數(shù)列的關(guān)系:F1=1F2=1Fn=Fn-1+Fn-2PrivateSubCommand1_Click()Dimi,f()AsIntegerDimnAsIntegern=Val(InputBox("pleaseInputAInteger:","Fabonacci","10"))Ifn<>0Then
ReDimf(n)f(0)=1:f(1)=1Fori=2Tonf(i)=f(i-1)+f(i-2)NextiFori=0TonPrintf(i),IfI+1Mod5=0ThenPrintEndIfNextiEndIfPrintEndSub2.6.3多維數(shù)組:1.定義:Dim|Global數(shù)組名(最大長(zhǎng)度,最大長(zhǎng)度,…...)[As類型]2.使用:用多重循環(huán)來使用。例ForI=1ton forj=1tom a(I,j)=0 nextjNextI1.牛頓迭代法解方程用牛頓迭代法解方程2x3-4x2+3x-6=0在x0附近的根,已知一個(gè)初始點(diǎn)x0,公式為:xn+1=xn-f(xn)/f’(xn)n=0,1,2…..步驟:先計(jì)算f’(xn)=6x2-4x+3
根據(jù)公式依次計(jì)算x1,x2,x3…
當(dāng)|xn+1-xn
|<ε時(shí)為方程的根。本題中ε
=0.000052.7算法舉例PrivateSubCommand1_Click()Constepslon=0.00005Dimxn1,xn,f,f1AsSinglexn1=Val(X0.Text)Do
xn=xn1f=2*xn^3-4*xn^2+3*xn-6f1=6*xn^2-4*xn+3xn1=xn-f/f1LoopWhileAbs(xn1-xn)>=epslonX.Text=xn1EndSub2.折半查找法在一組已經(jīng)排好序的數(shù)中查找某個(gè)數(shù)。折半查找是通過每次得到被查數(shù)據(jù)范圍的中間數(shù)據(jù),然后與被查數(shù)據(jù)進(jìn)行比較,如果該中間數(shù)據(jù)大于被查數(shù)據(jù),則查找前半部分,否則查找后半部分,依此進(jìn)行排查。例:某物的價(jià)錢在1~1024之間一般的猜法為:高了512?256?低了320?高了高了384?288?恭喜!答對(duì)了!當(dāng)點(diǎn)擊窗體時(shí),用輸入對(duì)話框輸入要查找的數(shù),被查找的范圍事先指定,并在窗體被激活時(shí)顯示在窗體上。ConstN=10Dima(N)AsIntegerPrivateSubForm_Activate()Dimi,jAsIntegera(1)=1:a(2)=5:a(3)=8:a(4)=16:a(5)=23a(6)=31:a(7)=59:a(8)=88:a(9)=96:a(10)=123Print"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人工智能算法測(cè)試員安全技能測(cè)試強(qiáng)化考核試卷含答案
- 職業(yè)生涯規(guī)劃師安全管理能力考核試卷含答案
- 基材人造板處理與飾面材料選配工沖突管理評(píng)優(yōu)考核試卷含答案
- 外延工安全培訓(xùn)效果評(píng)優(yōu)考核試卷含答案
- 液晶顯示器件制造工崗前安全理論考核試卷含答案
- 重介質(zhì)制備回收工崗前趨勢(shì)考核試卷含答案
- 數(shù)控水射流切割機(jī)操作工安全防護(hù)測(cè)試考核試卷含答案
- 抖音提成合同范本
- 快遞租房合同范本
- 抖音火花合同協(xié)議
- 法拉利介紹課件
- 內(nèi)科副主任競(jìng)聘述職報(bào)告
- 云南保安考試題庫及答案
- 2024年廣東省中考地理真題及答案解析
- 高二會(huì)考文科數(shù)學(xué)試卷
- 管道維修人員管理制度
- 2025-2030中國輔助生殖技術(shù)行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 美恩電子新材料有限公司86萬噸-年電子級(jí)化學(xué)品項(xiàng)目環(huán)評(píng)資料環(huán)境影響
- 2024年崇義縣發(fā)展投資集團(tuán)有限公司招聘真題
- 冠心病試題及答案選擇題
- 阿奇霉素試題及答案
評(píng)論
0/150
提交評(píng)論