2023信息技術(shù)vb選修知識點_第1頁
2023信息技術(shù)vb選修知識點_第2頁
2023信息技術(shù)vb選修知識點_第3頁
2023信息技術(shù)vb選修知識點_第4頁
2023信息技術(shù)vb選修知識點_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

選修學(xué)問點

(一)計算機解決問題的流程圖

?分析問題——?設(shè)計算法—*編寫程序—?寞震—題解加

(二)算法

一、算法定義:是解決問題的方法和步驟。算法是程序設(shè)計的“靈魂”。算法+數(shù)據(jù)結(jié)構(gòu)=程序。

二'算法的描述方法:分自然語言、流程圖和偽代碼三種。

I、自然語言:人們?nèi)粘I钪械恼Z言(本國語言),用自然語言描述符合我們的習(xí)慣,且簡潔理解。

2、流程圖:也稱程序框圖,它是算法的一種圖形化表示方法。且描述算法形象、直觀,更易理解。

3、偽代碼:是介于自然語言和計算機程序語言之間的一種算法描述。是專業(yè)軟件開發(fā)人員常用方法。

三'算法的5個特征:

I、有窮性:執(zhí)行有限步之后結(jié)束,且每一步的執(zhí)行時間也都是有限的。

2、確定性:每一步都有準(zhǔn)確的含義。

3、可行性:原則上能精確運行,用紙和筆做有限次運算后即可完成。

4、輸入:有零個或多個輸入。

5、輸出:至少產(chǎn)生一個輸出。

(三)程序設(shè)計基礎(chǔ)

計算機程序設(shè)計語言經(jīng)驗了機器語言、匯編語言、高級語言的發(fā)展過程。

常用高級語言:BASIC、VB、Pascal、C>C++、Java>Delphi、Fortran>Powerbuilder等。

面對對象的程序設(shè)計語言,如vb:其中的對象主要是系統(tǒng)設(shè)計好的對象,包括窗體、控件等。

控件:是指工具箱中的工具在窗體中畫出的能實現(xiàn)肯定功能的部件,如標(biāo)簽、文本框、吩咐按鈕等。

常用控件:

控件對象的類型前綴名字舉例

窗體Formfrmfrmfind

吩咐按鈕Commandcmdcmdok

標(biāo)簽LabelIblIblinput

文本框TextBoxtxttxtClock

若吩咐按鈕(Command)的Enabled屬性設(shè)置為True時按鈕有效,設(shè)置為False時按鈕無效

對象的三要素:屬性、方法、事務(wù)

?屬性

Name設(shè)置對象的名稱Font設(shè)置控件中字體格式

Caption確定控件中顯示的內(nèi)容BackColor設(shè)置控件背景色

Text確定窗體中文本框中顯示的內(nèi)容ForeColor設(shè)置控件的前景色(即文字顏色)

Height確定控件高度Top確定控件與窗體頂部的距離

Width確定控件寬度Left確定控件與窗體左邊的距離

Visible設(shè)置控件是否可見BorderStyle設(shè)置控件的邊框風(fēng)格

即標(biāo)簽文字對齊屬性:(0)LeftJustify時文本左對齊;

Alignment

(DRightJustify時文本右對齊;設(shè)置為(2)Center時文本居中。

對象中屬性可以在設(shè)計界面時通過屬性窗中設(shè)置,也可以在運行時通過賦值語句在代碼窗口設(shè)置:

對象名.屬性名=屬性值

例:給文本框本tl23的Text屬性賦值為字符串“20”,代碼如下:Txtl23.text="20”

留意:假如干脆給對象名賦值的話,是賦值給對象的默認(rèn)屬性。

例:Txt123="20”相當(dāng)于Txtl23.text="20”都是給文本框Txtl23的text屬性賦值。

假如要獲得對象的狀態(tài)或特性,這時就要讀取對象的屬性值,方法如下:變量名=對象名.屬性名

例:讀取文本框"txtl23"的"Text"屬性的代碼如下:a=txtl23.text

?方法常見的方法如下:PrintCisMoveShow

格式:[對象].方法[參數(shù)名表]例:Forml.Print”歡迎運用”

?事務(wù)及事務(wù)驅(qū)動常見的事務(wù)如下:Click、DblClick、KeyPress、Load、Mousellp等。

事務(wù)是對象對外部操作的響應(yīng),如在程序執(zhí)行時,單擊吩咐按鈕會產(chǎn)生一個Click事務(wù)。如須要吩咐按

鈕響應(yīng)Click事務(wù),就把完成Click事務(wù)功能的代碼寫到Click事務(wù)的事務(wù)過程中,與事務(wù)一一對應(yīng)。

事務(wù)過程的形式如下:PrivateSub對象名_事務(wù)名()

(事務(wù)過程代碼)

EndSub

一、常量:指在程序進行過程中不變的量,在VB中一般分?jǐn)?shù)值常量與字符常量兩種

數(shù)值常量:就是數(shù)學(xué)中說的常數(shù),分整型常量和實型常量兩種

整型常量:即整數(shù),指不帶小數(shù)點的數(shù)值如1、0、、-10,+35等都是合法的整數(shù)

實型常量:即實數(shù),指帶小數(shù)點的數(shù)值。

實型常量又分為定點數(shù)和浮點數(shù)兩種。

例:定點數(shù):3.14159和-6.8,1.99浮點數(shù):2E6、1E5、88E

例:1.2345X103可表示為1.2345E3,字母E表示底數(shù)10

浮點數(shù)就是數(shù)學(xué)上的科學(xué)計數(shù)法。

字符串常量:被一對英文雙引號括起來的若干個合法的字符稱為字符串常量。例如:"China"、"Visual

Basic“、“18“、“3.1415”等,是指英文雙引號中的字符,不包括英文雙引號本身。

符號常量:假如多次用到同一個常量,則可用一個有意義的名字表示這個常量。

二、變量:在程序執(zhí)行過程中,其值可以變更的量稱為變量。變量命名留意要點:

1、必需以字母或漢字開頭,不能以數(shù)字或其他字符開頭。

2、只能由字母、漢字、數(shù)字或下劃線組成,不能含有小數(shù)點、空格等字符。

3、最長不超過255個字符

4、不能以VB保留字作變量名,如語句定義符、函數(shù)名(Integer、End、Print、Dim)等。

5、VB不區(qū)分變量名中字母大小寫。如HELLO和Hello是同一個變量。

.數(shù)據(jù)及運算

常用數(shù)據(jù)類型:(框選的內(nèi)容都要熟記)

數(shù)據(jù)關(guān)鍵字所占內(nèi)存取值范圍

Integer2字節(jié)|-32768-32767|

長整型Long4字節(jié)-2147483648~2147483647

負(fù)數(shù):—3.402823E38?1.401298E-45

單精度型Single4字節(jié)

正數(shù):1.401298E-45-3.402823E38

負(fù)數(shù):一1.797693134E308——4.940656458E-324

雙精度型Double8字節(jié)

正數(shù):4.940656458E-324?1.797693134E308

1()字節(jié)十三定長字符申:0-65535個字旃

字符串型String

符串長度不定長字符串:0~20億個字符

布爾曼Boolean2字節(jié)True或False

日期型Date8字節(jié)100/1/1-9999/12/31

2、常量和變量的命名、聲明及賦值(留意:符號常量聲明和賦值必需一起完成,變量卻必需分2句)

符號常量的聲明和賦值Const常量名[As常量類型]=常量值(或表達(dá)式)

如:ConstpiAsSingle=3.14159常量名為pi

留意:常量必需在聲明的時候立馬賦值,假如沒有“=3”部分就是錯誤的。

變量的聲明:Dim(變量名>As〈變量類型》

如:DimaAsInteger定義一個整型變量,變量名為a

變量的賦值VB中運用“=”給變量賦值,其形式為:變量名=表達(dá)式

四、運算符

1、算術(shù)運算符(留意:算術(shù)運算符的優(yōu)先級問題、區(qū)分/\Mod三個運算符)

算術(shù)運算符含義運算優(yōu)先級實例結(jié)果

:B

*指數(shù)12-101024

?:和m

od

—取負(fù)2-5+2-3運

*乘法5*420

3樣

/除5/22.5先

\整除45\22舍

Mod求余55Mod21取整,再

+加20+525作運算。

6

減20-515

字符串運算符和

作用是將運算符兩邊的字符串連接為一個新的字符串。運用運算符時應(yīng)留意前后加空格。

留意特例:當(dāng)數(shù)值型和字符型連接時,把數(shù)據(jù)都轉(zhuǎn)化成數(shù)值型然后相加,返回一個數(shù)值型數(shù)據(jù)。

例如:“123”+“45”="12345”123+“45”=168

“123”&"45”="12345”123&"45”=“12345”

3、關(guān)系運算符(優(yōu)先級相同)留意:關(guān)系表達(dá)式的運算結(jié)果為布爾值True或False

=等于<小于號<>不等于

>大于號>=大于等于號<=小于等于號

運算規(guī)則:(1)當(dāng)兩個操作式均為數(shù)值型,按數(shù)值大小比較。

(2)字符串比較,則按字符的ASCH碼值從左到右逐位比較,直到出現(xiàn)不同的字符為止。

例:“987">"99",結(jié)果為False。

(3)數(shù)值型與可轉(zhuǎn)換為數(shù)值型的數(shù)據(jù),按數(shù)值比較0例:29>"189”,結(jié)果為False。

4、邏輯運算符Not(取反)And(與)Or(或)優(yōu)先級依次降低

Not對一個邏輯量進行運算,And和Or是對兩個邏輯量進行運算,運算結(jié)果都為邏輯值True或False

運算符說明優(yōu)先級說明舉例結(jié)果

Not非1當(dāng)操作數(shù)為假時,結(jié)果為真NotFalseTrue

And與2操作數(shù)均為真時,結(jié)果才為真TrueAndFalseFalse

Or或3操作數(shù)中有一個為真時,結(jié)果為真FalseOrTrueTrue

5、日期運算符與日期表達(dá)式

日期表達(dá)式是用“+”或?qū)⑺闶奖磉_(dá)式、日期型常量、日期型變量、日期函數(shù)等連接起來的式子。

例如:表達(dá)式“#2023/09/01#+30”的運算結(jié)果是“2023T0T”

表達(dá)式“#2023/10/20#-#2023/10/10#”的運算結(jié)果為整數(shù)10

6、運算符的執(zhí)行依次:算術(shù)運算符>字符串運算符>關(guān)系運算符>邏輯運算符

如a=2:b=3:c=4:d=5則表達(dá)式a>bAnd2*a>c0rc<=d的值為True

7、表達(dá)式的寫法

雖然VB中的表達(dá)式與代數(shù)式中的算式很相像,但兩者卻是完全不同的概念。要留意區(qū)分,如在VB中

不能運用W》#等。下表中列出了一些代數(shù)式對應(yīng)的VB表達(dá)式。

代數(shù)式VB表達(dá)式說明

2a+b

(2*a+b)/(4*a*b)在VB表達(dá)式中無法寫分式,,乘法運算符*不能省略

4ab

4gt2g*f2/2VB中不能運用上標(biāo),指數(shù)必需用VB運算符"表示

aWbWca<=bAndb<=c要用VB中的運算符,且不能連續(xù)寫

/i2-4?cSqr(b*b-4*a*c)運用內(nèi)部函數(shù)Sqr計算平方根(另函數(shù)Abs求肯定值)

五、常用函數(shù)

1、數(shù)學(xué)函數(shù)

函數(shù)名稱含義

Abs(x)肯定值函數(shù)求X的肯定值|x|

Int(x)取整函數(shù)求Wx的最大整數(shù)

Sqr(x)算術(shù)平方根函數(shù)求X的算術(shù)平方根

Log(x)自然對數(shù)函數(shù)求X的自然對數(shù)

Rnd隨機函數(shù)產(chǎn)生[0,1)之間的隨機數(shù)

Exp(x)指數(shù)函數(shù)ex,e=2.718282……

「1x>0

Sgn(x)符號函數(shù)Sgn(x)=yox=0

--1x<0

Sin(x)正弦函數(shù)Sin(x),x的單位為弧度

Cos(x)余弦函數(shù)Cos(x),x的單位為弧度

Tan(x)正切函數(shù)Tan(x),x的單位為弧度

留意:(1)Int(x)是取小于等于x的最大整數(shù)。

例如:Int(3.12)=3Int(2.1+3)=5

Int(-4.6)=-5Int(-1-2.5)=-4

(2)Rnd函數(shù)產(chǎn)生[0,1)之間的一個隨機數(shù),它常與Randomize(以初始化隨機數(shù)生成器)結(jié)合運用,

假如要產(chǎn)生[0,A)間的隨機整數(shù),表達(dá)式為Int(Rnd*A)

產(chǎn)生[A,B)間的隨機數(shù):Rnd*(B-A)+A

產(chǎn)生[A,B]間的隨機整數(shù):Int(Rnd*(B-A+l))+A

2、字符串函數(shù)(留意的以下字符串函數(shù)返回的值是數(shù)值型,還是字符串型。)

函數(shù)功能實例結(jié)果

Len(字符串)求字符串的長度(字符個數(shù))Len("2023奧運”)6

Left(字符串,n)截取字符串左邊n個字符Left("2023奧運”,4)“2023”

Mid(字符串,m,n)從字符串第m個字符起先截取n個字符Mid(“2023奧運”,3,2)“08”

Mid(字符串,m)從字符串第m個字符起先截取剩余字符Mid("2023奧運",3)“08奧運”

Right(字符串,n)截取字符串右邊n個字符Right("2023奧運",2)“奧運,,

String(n,字符串)生成指定長度的指定字符的字符串String(3,〃89")“888”

在字符串1中查找字符串2.

InStr(字符串1,字符串2)InStr("2023奧運","奧")5

并返回其出現(xiàn)的位置

留意:(1)String函數(shù)只返回n個指定的字符串的首字符。

(2)Left(字符串,n)和Right(字符串,n)中,當(dāng)n的值大于字符串的長度時,返回整個字符串。

(3)Mid(字符串,m,n)函數(shù)中,假如m大于字符串的長度,則返回空串,假如省略n,則返回m

起先的全部字符。

3、常用轉(zhuǎn)換函數(shù)

函數(shù)功能實例結(jié)果

Vai(數(shù)值型字符串)將數(shù)值型字符串轉(zhuǎn)換為數(shù)值Vai("99")+Val("88”)187

Str(數(shù)值)將數(shù)值轉(zhuǎn)換為字符串Str(5)〃5?-〃

Chr(字符代碼)將字符的Asc碼轉(zhuǎn)換為對應(yīng)的字符Chr(65)A

Asc(字符)求字符對應(yīng)的ASCII碼Asc("A")65

CInt(表達(dá)式)將表達(dá)式結(jié)果作四舍五入處理CInt(3.6)4

Fix(表達(dá)式)將表達(dá)式結(jié)果的小數(shù)部分截去Fix(3.8)3

留意(1)對于Str(數(shù)值)函數(shù),假如其中的數(shù)值為正數(shù),則返回的字符串的第一個字符為空格(符號位)。

如Str(5)的結(jié)果為兩個字符長度的字符串"5",如要得到不含符號位的字符串,可運用CStrO函數(shù)。

(2)CInt(表達(dá)式)當(dāng)表達(dá)式的值對應(yīng)的小數(shù)位為.5的時候比較特殊,函數(shù)結(jié)果為離表達(dá)式的值最近

的一個偶數(shù)。如CInt(4.5)=4

(3)Asc(字符)函數(shù),只求"字符"中的第一個字符的ASCII碼值,如:Asc("AB")=65

(4)ASCII碼的大?。嚎崭瘛磾?shù)值<大寫字母<小寫字母

常用字符的ASCII碼值:空格的ASCII碼為:320的ASCH碼為:48

A的ASCH碼為:65a的ASCII碼為:97

其他數(shù)字和英文字母按序依次類推。

(5)字母轉(zhuǎn)換。因大寫字母的ASCII碼比對應(yīng)的小寫字母小32,所以可通過Chr和Asc函數(shù)相互轉(zhuǎn)換。

例:a轉(zhuǎn)AChr(Asc("a")-32)A轉(zhuǎn)aChr(Asc("A")+32)留意式子中""不能省略

4、日期函數(shù)

(1)Date()>Time。、Now()?

這三個函數(shù)沒有參數(shù),分別返回計算機系統(tǒng)的當(dāng)前日期、時間、日期與時間。

如2023年5月29日,PrintDateO或者PrintDate都會打印出2023-5-29

(2)Year()>Month()>Day()?

這三個函數(shù)必需有參數(shù),即必需指定一個日期,分別返回指定日期的年、月和日。

函數(shù)實例結(jié)果

Day(#8/18/2023#)18

Month(#8/18/2023#)8

Year(#8/18/2023#)2023

5、定位函數(shù)(與Print語句協(xié)作運用的),以限制輸出數(shù)據(jù)的格式,主要包括Tab、Space等。

(1)Tab函數(shù)。功能:將被輸出的內(nèi)容放在由參數(shù)n所指定的位置(列數(shù))處,在書寫時,被輸出的內(nèi)

容要放在Tab函數(shù)的右面,并用分號分隔。

例:PrintTab(15);〃姓名"Tab(30);"成果”

(2)Space函數(shù)。功能:產(chǎn)生由n個空格所組成的字符串。

6、用戶交互函數(shù)

VB供應(yīng)InputBox()和MsgBox()函數(shù)用于人機交互。

(1)InputBox()格式:InputBox(提示[,標(biāo)題][,默認(rèn)值][,X坐標(biāo)][,Y坐標(biāo)])

功能:在程序中調(diào)用InputBox函數(shù),將產(chǎn)生一個提示用戶輸入內(nèi)容的輸入框,等待用戶輸入信息,并返

回字符串類型的數(shù)據(jù)。用戶要想得到InputBox。函數(shù)的返回值,就必需將函數(shù)的結(jié)果賦值給指定的變量。

格式為:變量=InputBox(提示[,標(biāo)題][,默認(rèn)值D

留意:每執(zhí)行一次InputBox。函數(shù),用戶只能輸入一個數(shù)

據(jù)。輸入框的樣式是固定的,我們可以變更的是輸入框

的“提示”和“標(biāo)題”的內(nèi)容。

例如:r=InputBox("請輸入r"輸入圓半徑”)

2.MsgBox()格式為:MsgBox(提示信息[,按鈕][,標(biāo)題])

功能:用于在程序運行過程中產(chǎn)生一個消息框,可以看作是輸出對話框,該函數(shù)的返回值為數(shù)值型數(shù)據(jù)。

格式:MsgBox(提示信息[,按鈕][,標(biāo)題])

例如:p=MsgBox("你輸入的密碼不正確,是否接著?"vbYesN。,"錯誤提示”)

錯誤提示

您輸入的密碼不正確,是否維續(xù)?

I;…是亶)……&否?

當(dāng)用戶單擊消息框中的一個按鈕后,消息框即從屏幕上消逝。在上面的語句中,將函數(shù)的返回值賦

給變量P,在程序中可引用P作相應(yīng)的處理。

六、常用語句

1、賦值語句

格式1:Let變量=表達(dá)式功能:將右邊表達(dá)式的結(jié)果賦給左邊變量,

通常狀況,Let可以省略。"="為賦值號。它與數(shù)學(xué)中的"="是不同的。特殊要跟方程式區(qū)分開。如:

X=5即把數(shù)值5賦值給變量X

Y=5Mod2+7即先計算表達(dá)式5Mod2+7的值,再將值8賦值給變量Y

N=N+1即將N的值加1后后再賦給N

X=Y即將變量Y的值賦值給變量X

也可以在一行內(nèi)給多個變量賦值,兩條語句之間用冒號":"隔開,如:s=0:a=l:b=2

格式2:對象名[.屬性名]=表達(dá)式假如省略屬性名,則干脆賦值給對象的默認(rèn)屬性。

如:Textl.Text="你好!即把字符串"你好!"賦給Text1的Text屬性。

留意:賦值語句一般都獨立成行,假如有類似賦值的語句出現(xiàn)在一些結(jié)構(gòu)中,大家要會辨別。

例如跟在以下關(guān)鍵字之后Ifx=5Whilex=5Untilx=5Printx=5

以上結(jié)構(gòu)中的x=5不再是賦值語句,因為"="在這里是個關(guān)系運算符,推斷左右是否相等,所

以x=5是一個關(guān)系表達(dá)式,其值應(yīng)當(dāng)是個邏輯型,不是True就是False。

2、Print語旬

格式:[對象名.]Print[表達(dá)式列表]

功能:Print方法具有計算和輸出雙重功能。對于表達(dá)式,它先計算其值,然后再在指定的對

象上輸出文本,對于常量、變量則干脆輸出其值。對象可以是窗體、圖片框、打印機等。"對象名"

可以省略,省略時表示在當(dāng)前窗體上輸出數(shù)據(jù)。

說明:(1)表達(dá)式列表可以是一個或多個表達(dá)式,之間用英文的";"或","隔開。假如用逗號分

隔,則按標(biāo)準(zhǔn)輸出格式輸出各數(shù)據(jù),此時以14個字符位置為一個區(qū)段,逗號后的表達(dá)式在下一個區(qū)段輸

出;假如之間用分號分隔,則按緊湊格式輸出數(shù)據(jù)。

例:Print1;2;3;4+3Print1,2,3,4+3

輸出結(jié)果為:1237輸出結(jié)果為:1237

(2)假如Print語句末尾沒有逗號或分號,表示該Print輸出完結(jié)果后自動換行,后面再執(zhí)行Print

時將在下一行的起始位置輸出數(shù)據(jù);假如在Print語句末尾運用逗號,則在同一行上跳到下一個輸出區(qū)段

輸出下一個Print所輸出的內(nèi)容。假如在Print語句的末尾加上一個分號,表示下一個Print輸出的內(nèi)容將

按緊湊格式緊跟在前一個Print所輸出的內(nèi)容后面;

(3)當(dāng)一個Print語句的后面無任何表達(dá)式時,則輸出一空行或換行。

留意:與Tab()函數(shù)結(jié)合運用,駕馭各種圖形的輸出。

3、注釋語句

為了提高程序的可讀性,通常須要在程序的適當(dāng)位置加上必要的注釋。在VB中添加注釋語句的方法

為在字符"'”后加注釋內(nèi)容或采納“Rem注釋內(nèi)容”兩種形式。

格式1:'注釋內(nèi)容

用’寫的注釋語句既可以單獨寫一行,也可以跟在其他語句后。

格式2:Rem注釋內(nèi)容

用Rem寫的注釋語句必需單獨寫一行。

4、結(jié)束語旬格式:End功能:強制程序結(jié)束運行。

PrivateSubCommandl_Click()

End

EndSub該過程用于結(jié)束程序,即單擊吩咐按鈕Command]時,結(jié)束程序的運行。

(四)程序設(shè)計的三大基本結(jié)構(gòu)

一、依次結(jié)構(gòu)

代碼依據(jù)由上到下的依次一行一行地執(zhí)行。程序執(zhí)行過程中沒有分支、沒有重復(fù)。

二、分支結(jié)構(gòu)(選擇結(jié)構(gòu))

程序在運行時會依據(jù)不同的條件確定程序的走向。實現(xiàn)選擇結(jié)構(gòu)的語句有If語句和Select語句。

1、If語句分為單分支、雙分支和多分支三類。

(1)單分支if結(jié)構(gòu):(留意:行if和塊if的區(qū)分只在書寫格式上。)

?行if語句:IF〈條件表達(dá)式》Then語句A

?塊if語句:IF〈條件表達(dá)式>Then

語句A

Endif

(2)雙分支if結(jié)構(gòu):

?行if語句:IF〈條件表達(dá)式》Then語句AElse語句B

?塊if語句:IF〈條件表達(dá)式>Then

語句A

ELSE

語句B

ENDIF

(3)多分支If語句

If〈表達(dá)式1>Then

〈語句塊1>

[Elself〈表達(dá)式2>Then

〈語句塊2>]

[Else〈語句塊n+l>]

EndIf

2、SelectCase語句

SelectCase〈測試表達(dá)式》

留意:要會區(qū)分選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的流程圖。

Case表達(dá)式列表1

如上圖:甲為循環(huán)結(jié)構(gòu),有向上回到條件框的箭頭。

語句組1

乙為選擇結(jié)構(gòu)(雙分支)。

Case表達(dá)式列表2

語句組2

CaseELSE

語句組N+1

EndSelect

Select/Case語句的執(zhí)行過程是:先求"測試表達(dá)式”的值,然后依次測試該值符合哪一個Case子句的

狀況,假如找到了,則干脆執(zhí)行該Case子句下面的語句塊,然后執(zhí)行EndSelect的后續(xù)語句;假如沒找

到,則執(zhí)行CaseElse下面的語句塊,然后執(zhí)行EndSelect的后續(xù)語句。

說明:(1)”測試表達(dá)式“可以是數(shù)值型或字符串型表達(dá)式。

(2)”表達(dá)式列表”形式有以下4種。

①一個表達(dá)式或用逗號隔開的若干表達(dá)式,例如2,4,6,8o

②表達(dá)式1To表達(dá)式2,例如60To80。留意,表達(dá)式1應(yīng)當(dāng)小于表達(dá)式2

③Is關(guān)系運算符表達(dá)式,例如Is>80o

④表達(dá)式,例如x+3。

三、循環(huán)結(jié)構(gòu)

1、For-Next循環(huán)(適合于解決循環(huán)次數(shù)事先能夠確定的問題。)

For循環(huán)變量一般形式是:

For循環(huán)變量=初值To終值[Step步長值]

[循環(huán)體]

Next[循環(huán)變量]

說明:(1)循環(huán)變量,必需為數(shù)值型。循環(huán)初值、循環(huán)終值也是數(shù)值型或數(shù)值表達(dá)式。

(2)循環(huán)的有效區(qū)間是由循環(huán)初值、循環(huán)終值所限定的閉區(qū)間。

(3)步長值是循環(huán)變量的增量,是一個數(shù)值表達(dá)式。若步長值為正,則初值就應(yīng)小于終值,否則循環(huán)體

一次都不執(zhí)行;若步長值為負(fù),則初值應(yīng)大于終值,否則循環(huán)體一次都不執(zhí)行。假如步長值是1,Stepl

可略去不寫。但若步長值為0,會造成死循環(huán),這是要避開的,可用Ctrl+Break結(jié)束程序。

(4)循環(huán)體是For語句和Next語句之間的語句序列,也是須要重復(fù)執(zhí)行的語句組。

(5)Next后的循環(huán)變量與For語句中的循環(huán)變量必需相同。

(6)循環(huán)的次數(shù)=(循環(huán)終值-循環(huán)初值)\步長值+1

For/Next循環(huán)語句的執(zhí)行過程:

(1)系統(tǒng)將初值賦給循環(huán)變量,并自動登記終值和步長。

(2)檢查循環(huán)變量的值是否越過終值。如越過就結(jié)束循環(huán),執(zhí)行Next后面的語句;否則執(zhí)行一次循環(huán)體。

(3)執(zhí)行Next語句:將循環(huán)變量增加一個步長值再賦給循環(huán)變量,轉(zhuǎn)到第2步接著執(zhí)行循環(huán)。

2、Do-Loop循環(huán)(對于不能預(yù)先確定次數(shù),但須要執(zhí)行多次的狀況,可以運用Do/Loop循環(huán)。)

格式一:DoWhile條件表達(dá)式

循環(huán)體

Loop

先推斷條件是否為真,若條件為真,執(zhí)行循環(huán)體,條件為假時退出循環(huán)。因此可能一次都不執(zhí)行循環(huán)。

格式二:Do

循環(huán)體

LoopWhile條件表達(dá)式

先執(zhí)行一次循環(huán)體,再推斷條件是否為真,若條件為真,執(zhí)行循環(huán)體,條件為假時退出循環(huán)。因此至少

執(zhí)行一次循環(huán)體。

格式三:Do

循環(huán)體

LoopUntil條件表達(dá)式

先執(zhí)行一次循環(huán)體,再推斷條件是否為假,若條件為假,執(zhí)行循環(huán)體,條件為真時退出循環(huán)。因此至少

執(zhí)行一次循環(huán)體。

格式四:DoUntil條件表達(dá)式

循環(huán)體

Loop

先推斷條件是否為假,若條件為假,執(zhí)行循環(huán)體,條件為真時退出循環(huán)。因此可能一次都不執(zhí)行循環(huán)。

留意:If語句和Do語句中都有的〃條件表達(dá)式”,一般是一個關(guān)系表達(dá)式或邏輯表達(dá)式,其值不是

True就是False。但假如是數(shù)值型的表達(dá)式的話,會進行強制轉(zhuǎn)換,即數(shù)字0轉(zhuǎn)換成False,非0轉(zhuǎn)

換成True。

(五)算法與問題解決

一、解析法

解析法又稱公式法。解析法就是在分析詳細(xì)問題的基礎(chǔ)上,抽取出一個數(shù)學(xué)模型,這個數(shù)學(xué)模型能

用若干個解析表達(dá)式表示出來。求解了這些表達(dá)式,問題也就得以解決。

如:求解一元二次方程a*x,2+b*x+c=0的實根

dimxlasdouble,x2asdouble分析:

dimaASDouble,bASDouble,cASDouble

2

ifb*b-4*a*c>=0thenX二-b±\b-4ac

xl=(-b+sqr(b*b-4*a*c))/(2*a)2a

x2=(-b-sqr(b*b-4*a*c))/(2*a)xl=(-b+sqr(b*b-4*a*c))/(2*a)

textl.text=str(xl)

text2.text=str(x2)x2=(-b-sqr(b^2-4*a*c))/(2*a)

else

print“方程無解”

endif

二、窮舉法

窮舉法是將求解對象一一列舉出來,然后逐一加以分析、處理,并驗證結(jié)果是否滿意給定的條件,

窮舉完全部對象,問題將最終得以解決。窮舉法也叫枚舉法、列舉法。

窮舉法關(guān)鍵是如何列舉全部可能的狀況,不能遺漏,也不能重復(fù)。留意取值范圍,削減計算機工作

量。適用編程問題:水仙花問題、雞兔同籠問題、百錢百雞問題、素數(shù)問題。

如:已知公雞每只3元,母雞每只5元,每3只小雞1元。用100元錢買100只雞,應(yīng)各買多少只雞?

DimaAsInteger,bAsInteger,cAsIntegerDimaAsInteger,bAsInteger

Fora=0to33,公雞數(shù)DimcAsInteger

Forb=0to20,母雞數(shù)Fora=0to33,公雞數(shù)

Forc=0to100叼、雞數(shù)Forb=0to20,母雞數(shù)

Ifa+b+c=100anda*3+b*5+c/3=100thenc=100-a-b,小雞數(shù)

Printa;b;cIfa*3+b*5+c/3=100then

endifPrinta;b;c

Nextcendif

NextbNextb

NextaNexta

三、數(shù)組及其應(yīng)用

數(shù)組是一組相同類型的變量集合。數(shù)組用一個統(tǒng)一的名字代表邏輯上相關(guān)的一批數(shù)據(jù),每個元素

靠下標(biāo)變量來區(qū)分。有一個下標(biāo)的數(shù)組稱為一維數(shù)組。數(shù)組中的數(shù)據(jù),邏輯上是相互關(guān)聯(lián)的。

1、運用數(shù)組要先聲明數(shù)組的大小和數(shù)據(jù)類型。聲明數(shù)組的格式如下:

Dim數(shù)組名(最大下標(biāo)常量)As數(shù)據(jù)類型

例1:Dims(9)AsInteger

表示:名稱為s的一維數(shù)組中包含10個元素,下標(biāo)從0到9。用來存放整型數(shù)據(jù)。

也可以指定下標(biāo)的起始值。

例2:Dimx(2to10)AsSingle

這個數(shù)組含有9個元素,下標(biāo)從2到10,數(shù)據(jù)類型屬于單精度實型。

還可以說明多維數(shù)組。

例3:DimD(4,2To6,3To9)Aslong

說明白一個3維數(shù)組,一共5*5*7個數(shù)組成員,數(shù)據(jù)類型屬于長整型。

2、應(yīng)留意的問題:

(1)在同一個程序中,任何數(shù)組只能聲明一次。例如:

Dims(5)AsInteger

Dims(10)AsInteger這樣,運行時會報錯:當(dāng)前范圍內(nèi)的聲明重復(fù)。

(2)下標(biāo)必需是常量且為整數(shù)(若不是整數(shù),程序運行時自動4舍5入為整數(shù))。

(3)同一個程序中,數(shù)組名不能與變量名相同。例如:

DimsAsInteger

Dims(10)AsInteger這樣,運行時會報錯:變量與數(shù)組不能同名。

(4)數(shù)組必需先聲明后運用

否則運行時會報錯:子程序或函數(shù)未定義。

(5)數(shù)組運用時,下標(biāo)不能超出聲明的范圍。例如:

Dims(10)AsInteger

Prints(ll)這樣運行時會報錯:下標(biāo)越界。

(6)數(shù)組聲明時和變量一樣,要留意類型。例如:

Dims(10)AsInteger

S(3)=40000這樣運行時會報錯:溢出。

3、數(shù)組的應(yīng)用

數(shù)組的賦值、計算、輸出通常都與For—Next循環(huán)結(jié)合運用。For語句中的循環(huán)變量作為數(shù)組元素的下

標(biāo),通過循環(huán)變量的不斷變更,達(dá)到對每個數(shù)組元素依次進行處理的目的.

例子:利用數(shù)組實現(xiàn):輸出10個[1,100]的隨機數(shù),并輸出它們的和與平均值。

Dima(9)AsInteger,數(shù)組的定義

27

DimsAsInteger12

Randomize,將RND函數(shù)隨機化

Fori=0To934

a(i)=Int((100-1+1)*Rnd)+194

78

Printa(i)74

s=s+a(i)13

2

Nexti

和為:347

Print〃和為:〃;s平均值為:34.7

Print〃平均值為:〃;s/10

四、依次查找

依次查找是查找算法中簡潔、易行的算法。進行查找時一般從數(shù)據(jù)的第一個元素起先,依據(jù)數(shù)據(jù)的

依次查找指定的關(guān)鍵值。假如被查數(shù)據(jù)和該關(guān)鍵值相匹配,則表示找到;假如全部數(shù)據(jù)與關(guān)鍵值都不匹

配,則表示被查數(shù)據(jù)中不存在該關(guān)鍵值,查找失敗。依次查找的數(shù)據(jù)不要求是有序的。

五、二分法查找(二分法查找也叫折半查找)二分法查找要求被查數(shù)據(jù)是有序的

查找思路:對于有序數(shù)列(從小到大排),設(shè)定下界low(最小元素下標(biāo))和上界high(最大元素

下標(biāo)),當(dāng)滿意條件low〈=high時,求中點mid,將中點元素的值與所要查找的值比較,若中點元素值

比所要查找元素小,則應(yīng)找后半段,所以low=mid+l,否則應(yīng)找前半段high=mid-L直到找到為止;若

low>high,則說明找不到。

Dima(9)AsInteger

DimmidAsInteger

a(0)=12:a(l)=20:a(2)=27:a(3)=36:a(4)=45:a(5)=50:a(6)=55:a(7)=60:a(8)=79:a(9)=105

low=0:high=9

DoWhilelow<=high

mid=(low+high)\2留意:mid是中點位置,而a(mid)是中點位置的值

Ifa(mid)=55Then

Print〃找到了〃

ExitDo

Else

Ifa(mid)<55Thenlow=mid+1Elsehigh=mid-1

EndIf

Loop

Iflow>highThenprint〃沒有55!〃

六、冒泡排序

排序的種類有交換排序、選擇排序、快速排序等。“冒泡法排序”也叫“起泡法排序”,是一種比較

簡潔、易懂的交換排序方法。它通過將相鄰元素進行比較和交換,逐步將一個無序序列排列為一個有序

序列。簡潔說:就是對相鄰數(shù)據(jù)兩兩比較,將符合條件的數(shù)據(jù)“冒上來”(沉下去),然后用同樣的方法再

“冒泡”處理余下的數(shù)據(jù),直至全部數(shù)據(jù)完成排序。

⑴標(biāo)準(zhǔn)的從后往前的升序

Dima(9)AsInteger定義數(shù)組

Fori=0To9

a(i)=Int((100-1+1)*Rnd)+1給數(shù)組的每個元素賦值[1,100]的隨機數(shù)并輸出

Printa(i);

Nexti

Forj=1To9

Fori=9Tojstep-1

Ifa(i)<a(i-l)Then將數(shù)組中元素從小到大冒泡排序

t=a(i-1)從a(9)起先比較、交換(小的往前換)

a(i-1)=a(i)外循環(huán)限制排序的趟數(shù)

a(i)=t內(nèi)循環(huán)限制每一趟排序比較的成員和次數(shù)

EndIf

Nexti

Nextj

Fori=0To9顯示排序后的數(shù)組元素

Printa(i);

Nexti

⑵標(biāo)準(zhǔn)的從前往后的升序

Dima(9)AsInteger定義數(shù)組

Fori=0To9

a(i)=Int((100-1+1)*Rnd)+1給數(shù)組的每個元素賦值[1,100]的隨機數(shù)、輸出

Printa(i);

Nexti

Forj=9To1StepT

Fori=0Toj-1

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論