第三章程序設計基礎_第1頁
第三章程序設計基礎_第2頁
第三章程序設計基礎_第3頁
第三章程序設計基礎_第4頁
第三章程序設計基礎_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Main(){intn,m,l;n=56;m=43;l=m+n;printf(“L=%d\n”,l);}Privatecommand1_click()DimnasintegerDimmasintegerDimlasintegerN=56M=43L=m+nPrint“L=“,lEndsubC程序VB程序第三章程序設計基礎第3章程序設計基礎(VB數(shù)據(jù)類型、運算符和表達式)內(nèi)容要點3.1數(shù)據(jù)類型3.2常量和變量3.3運算符和表達式3.4常用內(nèi)部函數(shù)第三章程序設計基礎3.1數(shù)據(jù)類型3.1.1基本數(shù)據(jù)類型VB的數(shù)據(jù)類型分為基本數(shù)據(jù)類型和自定義數(shù)據(jù)類型兩種。數(shù)據(jù)類型類型描述類型說明后綴數(shù)據(jù)范圍所占字節(jié)數(shù)Integer整型%-32768~327672Long長整型&-2147483648~21474836474Single單精度浮點型!-3.402823E38~-1.401298E-451.401298E-45~3.402823E384Double雙精度浮點型#-1.79769313486232E308~-4.9406564584124E3244.9406564584124E324~1.79769313486232E3088Currency貨幣型@-922337203685477.5808~922337203685477.58078String字符串型$

Byte字節(jié)型

0~2551Boolean布爾型

True、False2Date日期型

100年1月1日~9999年12月31日8Object對象型

任何Object4Variant變體型

日期文字必須以一對“#”括起來

必須使用Set語句先對對象引用賦值,其后才能引用對象第三章程序設計基礎說明:1、Variant數(shù)據(jù)類型還包含三種特定值:Empty、Null、Error。2、Variant數(shù)據(jù)類型是最為靈活的數(shù)據(jù)類型(類型+值信息)。3、Variant數(shù)據(jù)類型比其他類型的數(shù)據(jù)占有更多的內(nèi)存空間。num=1010name=“張三”age=18score=96.5例:定義四個變量,分別用于保存“張三”的學號、姓名、年齡和成績(考慮合適的數(shù)據(jù)類型)。dimNumAsIntegerdimNameAsStringdimAgeAsIntegerdimScoreAsSingle第三章程序設計基礎3.1.2自定義數(shù)據(jù)類型用戶可以利用Type語句定義自己的數(shù)據(jù)類型。其格式如下:Type

數(shù)據(jù)類型名數(shù)據(jù)類型元素名As類型名數(shù)據(jù)類型元素名As類型名

……EndType類似于C語言中的結構體!Type

StudentNumAsIntegerNameAsString*10AgeAsIntegerScoreAsSingleEndTypeDimzhangsanasStudent

Zhangsan.num=1010Z=“張三”Zhangsan.age=18Zhangsan.score=96第三章程序設計基礎3.2常量和變量1、常量是指在整個應用程序運行期間值不會發(fā)生變化的量。2、變量是指在整個應用程序運行期間值可能發(fā)生變化的量。3.2.1常量VB中的常量分為兩種,一種是文字常量,一種是符號常量

1、文字常量文字常量也稱為字面常量(Literal),它分為字符串、數(shù)值、布爾值和日期文字1)字符串常量

字符串常量由字符組成,由雙引號括起來的任意字符集合。例如:"petroleumuniversity","¥25.00",……注意,雙引號是字符串常量的定界符,不是字符串的一部分。第三章程序設計基礎3)日期常量

正確:#2002-10-20#錯誤:#20021030#4)布爾型常量TRUEFALSE%整型&長整型!單精度浮點數(shù)#雙精度浮點數(shù)@貨幣型$字符串型例:67%,234#,456&,34@,23.32!,234$(錯誤)2)數(shù)值常量---具體數(shù)值數(shù)值常量共有四種表示方式,即整型數(shù)、長整型數(shù)、貨幣型數(shù)和浮點型數(shù)。第三章程序設計基礎2、符號常量用一些具有一定意義的名字來代替這些不變的數(shù)值或字符串,即稱為符號常量。例1:ConstPi=3.14159Area=Pi*Radius*Radius’求面積Circumference=2*Pi*Radius’求周長1)常量賦值符號常量聲明的語法規(guī)則為:Const

ConstantName

[AsType]=value例:ConstNextDateASDATE=#9/6/2002#

‘表示日期

或:ConstNextDate=#9/6/2002#

‘表示日期

第三章程序設計基礎說明:1、若要在一行中放置多個常數(shù)聲明,可用逗號分隔如下:

ConstTemp1=100,Temp2=200,Temp3=3002、在Const聲明語句中,等號右邊的表達式可以包括其它常量。如:

PublicConstTemp1AsInteger=100PublicConstTemp2AsInteger=2*Temp12)常量的域常量具有一定的使用范圍,稱為域。在模塊內(nèi)部使用的常量用“Private”關鍵字來定義,在模塊之間公用的常量用“Public”來定義?!斑^程內(nèi)”、“模塊/窗體級”、“公用的”或“模塊/窗體間”

[Public/Private]ConstConstName[Astype]=Expression

第三章程序設計基礎例如:PrivateSubCommand1_GotFocus()ConstpiAsInteger=3PrintpiEndSub3PrivateSubCommand1_LostFocus()ConstpiAsDouble=3.1415926PrintpiEndSub3.14159263.2.2變量變量代表數(shù)據(jù)的一個名稱,其內(nèi)容可隨程序的運行而不斷變化。其作用是存儲臨時數(shù)據(jù),其值隨程序運行而變化。第三章程序設計基礎1、變量的類型(與常量類型相對應)

變量類型有數(shù)值型變量、字符串變量、布爾變量、日期變量、對象變量和變體變量等幾種類型。2、聲明變量—變量的定義(變量使用之前必須做的)

例:

DimPutInAsString

putin=“asdfgh”1)顯式聲明---指在程序中含有如下語句:

Dim【變量名】[Astype]

如果缺省type,默認為Variant類型。變量的命名原則:

1)VB的變量名最多可以有255個字符,首字符必須為英文字母。

2)其后可以接任意字母、數(shù)字和下劃線的組合。

3)不要使用VB中的保留字及“.”符號。例:VisualBasic

1ABCY2003x.1

printPi+αLY_ZHENGABSREAD$EPSON第三章程序設計基礎2)隱式聲明程序中不顯示地用Dim語句等定義變量,而直接使用變量,給定變量的值。putin=“asdfgh”強制顯式聲明:

1)在類模塊、窗體模塊和標準模塊的聲明段中加入語句:

OptionExplicit

2)在“工具”菜單中選取“選項”,單擊“編輯器”選項卡,再復選“要求變量聲明”選項。(此種設置必須重新啟動VB程序才能生效)

3、變量的作用域

變量的作用域定義了變量的有效作用區(qū)間,只有在該有效范圍內(nèi),變量才能被程序訪問。第三章程序設計基礎1)局部(Local)變量局部變量在過程內(nèi)部聲明,只有在該過程中的代碼才能訪問,不能用于應用程序的其他部分。聲明方式:局部變量用Dim或Static關鍵字來聲明。例如:DimiAsInteger或StaticiAsInteger

說明:在不同過程中同名的局部變量之間是不會互相影響的。

2)模塊/窗體(Module/Form)級變量模塊/窗體級變量在模塊或窗體聲明,在聲明它的模塊或窗體中的所有過程中可見。

聲明模塊/窗體級變量用Private關鍵字。第三章程序設計基礎3)公有(Public)變量在模塊中聲明,在所有項目的任何過程中都可見。聲明公有變量用Public關鍵字。4、變量的生存期(區(qū)別于作用域)變量的生存期是指變量在一定的期限內(nèi)可以維持其數(shù)值的周期。Private

SubCommand1_Click()Staticvar1AsIntegerDimvar2AsIntegervar1=var1+1var2=var2+1Text1.Text=var1Text2.Text=var2End

Sub【例4.2】變量的生存期測試。第三章程序設計基礎1)聲明為Public的變量在整個應用程序的運行期間都有效,而用Dim或Private聲明的局部變量,只有在聲明的過程存活期間存在,過程結束時,局部變量即消失。當再次調(diào)用過程時,該局部變量重新生成并初始化。用Private聲明的模塊級變量只在模塊存活期有效。2)當需要保留局部變量的值時,可將其定義為靜態(tài)的。采用“Static”關鍵字來定義靜態(tài)變量。3)為了使過程中所有的局部變量為靜態(tài)變量,可在過程的起始處加上Static關鍵字,例如:StaticSubNumAdd()StaticFunctionCalcular(InputDateAsDouble)AsDouble定義了過程的靜態(tài)變量之后,過程中的所有局部變量都成為靜態(tài)局部變量,而不管在過程中它們是如何聲明的。第三章程序設計基礎3.3運算符和表達式

VB的運算符有算術運算符、連接運算符、關系運算符和邏輯運算符。表達式按其所含運算符和運算對象的不同,可分為算術表達式、關系表達式、邏輯表達式和字符串表達式。4.3.1算術運算符和算術表達式1、算術運算符

+ 加 - 減* 乘 / 除^ 冪運算 - 負號\ 整除 Mod 取模第三章程序設計基礎1)浮點數(shù)除法/表達式3/2的結果為1.5

2)整數(shù)除法\整數(shù)除法運算符(\)執(zhí)行整除運算,其結果為整型值。例如,表達式3\2的結果為1。整除的操作數(shù)一般為整型值。當操作數(shù)帶有小數(shù)時,將首先對其四舍五入為整型數(shù),然后進行整除運算。例如,28.72\7.83的結果為3。3)取模運算(同樣是四舍五入取整)7Mod4的結果為3.25.68Mod6.99的結果為5。2、算術表達式

算術表達式由算術型常數(shù)、變量、函數(shù)、算術運算符及圓括號組成。第三章程序設計基礎算術運算符的優(yōu)先級(從高到底)優(yōu)先級運算符名稱運算符說明1括號()

2指數(shù)運算符^

3負號運算符_

4乘、除運算符*、/同級運算,運算次序從左到右5整除運算符\

6取模運算符Mod

7加、減運算符+、-同級運算,運算次序從左到右第三章程序設計基礎10Mod6/2的運算順序為:先做6/2,結果為3,然后再做10Mod3,結果為1。在書寫算術表達式時,還應注意如下書寫規(guī)則:(1)將一個數(shù)學算式書寫為一個算術表達式時,應將數(shù)學算式中的所有符號寫在同一行上,必要時加圓括號。(2)在一個算術表達式中出現(xiàn)的括號應全部是圓括號,且必須配對使用;(3)在一個算術表達式中,乘號*既不能省略,也不能用·代替。(4)將一個數(shù)學算式寫成算術表達式時,應將數(shù)學算式中的某些符號(比如π、θ、ω等)用VB中認可的其它變量名來代替。例如,應將π改寫成pi或其它變量名,θ改寫成theta或其它變量名。(-b+Sqr(b*b-4*a*c))/(2*a)第三章程序設計基礎3.3.2連接運算符和字符串表達式字符串連接運算符將兩個或多個字符串連接起來可以用字符串連接運算符“&”或“+”,生成一個新的字符串。例如,"Visual"&"Basic"+"6.0"的結果為"VisualBasic6.0"。4.3.3關系運算符和關系表達式1、關系運算符VB中的關系運算符有如下六種:=(等于) > (大于)<(小于)<> (不等于)<=(小于等于) >= (大于等于)2、關系表達式用關系運算符連接兩個算術表達式所組成的有意義的式子稱為關系表達式。例如,"Basic">"BasIC",a-b=0等。第三章程序設計基礎3、運算結果關系表達式的運算結果是一個Boolean類型的值,即True和False。VB把任何非零值都認為是“真”,但一般以-1表示“真”,0表示“假”。例如,對于a-b=0,當a=b時,結果為True(-1),否則為False(0)。4、說明1)當對單精度數(shù)或雙精度數(shù)使用比較運算符時,必須特別小心,運算可能會給出非常接近但不相等的結果。例如,1.0/3.0*3.0=1.0,在數(shù)學上顯然是一個恒等式,但在計算機上執(zhí)行時可能會給出一個假值(0)。因此,應避免對兩個浮點數(shù)作“相等”或“不相等”的判別。上式可改為:Abs(1.0/3.0*3.0-1.0)<ε

(Abs是求絕對值函數(shù),ε可取1e-5)只要它們的差小于一個很小的數(shù)ε,就認為1.0/3.0*3.0與1.0相等。2)用關系運算符既可以進行數(shù)值的比較,也可以進行字符串的比較。(以ASCII碼為標準)第三章程序設計基礎第三章程序設計基礎3.3.4邏輯運算符和邏輯表達式1、邏輯運算符邏輯運算也稱布爾運算。VB中的邏輯運算符有如下六種:Not (非) And (與)Or (或) Xor

(異或)Eqv

(等價) Imp (蘊含)1)Not:邏輯非,即對邏輯值“取反”。例如:Not(3<5)‘取反,表達式值為假3)數(shù)學上判斷x是否在區(qū)間[a,b]時,習慣上寫成a≤x≤b,但在VisualBasic中不能寫成a<=x<=b,應寫成x>=aAndx<=b,其中And是下面將要介紹到的邏輯運算符?!癆BC”<”BCD”---true“abc”>”abcd”----false第三章程序設計基礎2)And:邏輯與。兩個表達式的值均為真,則結果為真,如果有任一個表達式值為假,則結果為假。其運算規(guī)則如表4.3。表4.3And運算規(guī)則表第一操作符第二操作符操作結果TrueTrueTrueTrueFalseFalseFalseTrueFalseFalseFalseFalse第三章程序設計基礎第一操作符第二操作符操作結果TrueTrueTrueTrueFalseTrueFalseTrueTrueFalseFalseFalse3)Or:邏輯或。當兩個表達式中至少一個為真時,結果為真。第三章程序設計基礎4)Xor:邏輯異或。當兩個表達式值相反時,結果為真。第一操作符第二操作符操作結果TrueTrueFalseTrueFalseTrueFalseTrueTrueFalseFalseFalse第三章程序設計基礎5)Eqv:兩個表達式的值相同時,結果為真。第一操作符第二操作符操作結果TrueTrueTrueTrueFalseFalseFalseTrueFalseFalseFalseTrue第三章程序設計基礎6)Imp:比較兩個表達式。當?shù)谝粋€表達式為假或第二個表達式為真時操作結果為真(規(guī)定)。第一操作符第二操作符操作結果TrueTrueTrueTrueFalseFalseFalseTrueTrueFalseFalseTrue第三章程序設計基礎邏輯運算符的優(yōu)先級由高到底如下:Not→And→Or→Xor→Eqv→Imp2、邏輯表達式用邏輯運算符連接兩個或多個關系式組成一個邏輯表達式。例如,x>=aAndx<=b就是一個邏輯表達式。3、運算結果邏輯表達式的運算結果也是一個Boolean類型的值,即True和False。VB把任何非零值都認為是“真”,但一般以-1表示“真”,0表示“假”。4.3.5各種運算符的優(yōu)先級比較優(yōu)先級運算類型1函數(shù)運算2算術運算3關系運算4邏輯運算第三章程序設計基礎3.4常用內(nèi)部函數(shù)3.4.1數(shù)學函數(shù)Int,F(xiàn)ix,Sqr,Abs,Rnd,Sgn,Hex,Oct,Exp,Sin,Cos,Tan,Atn。

3.3.6日期型表達式用于表示日期和時間格式:#……#VB接受許多種日期時間格式

例:下面的Date/Time值全部有效。#3-6-9313:20#

#March27,19931:20am#

#Apr-2-93#

#14April1993#

#12/18/1999#(1)兩個日期型數(shù)據(jù)相減,結果是一個數(shù)值型數(shù)據(jù)(兩個日期相差的天數(shù))。例如,#12/20/2002#-#12/10/2002#的結果為數(shù)值型數(shù)據(jù)10。(2)一個表示天數(shù)的數(shù)值型數(shù)據(jù)與日期型數(shù)據(jù)相加、減,結果仍為日期型數(shù)據(jù)。例如,#12/10/2002#+10的結果為日期型數(shù)據(jù)#12/20/2002#

第三章程序設計基礎1、Int(x)函數(shù)用于返回小于或等于x的最大整數(shù)。Int(45.67)

結果為45Int(-2.89)

結果為-32、Fix(x)函數(shù)此函數(shù)的作用與Int函數(shù)類似。當x為正數(shù)時,無條件地把小數(shù)部分舍掉;當x為負數(shù)時,結果與Int(x)函數(shù)不太一樣。Fix(45.67)

結果為45Fix(-2.89)

結果為-23、Abs(x)函數(shù)此函數(shù)可用來求x的絕對值。

Abs(-4)結果為44、Sqr(x)函數(shù)此函數(shù)用來求x的平方根。5、Rnd(number)函數(shù)此函數(shù)用來返回0和1之間的隨機數(shù)。第三章程序設計基礎Randomize語句初始化隨機數(shù)發(fā)生器Randomize例:生成[a,b]范圍內(nèi)的隨機整數(shù)

Int((b-a+1)*Rnd+a)6、Sgn(x)符號函數(shù)

Sgn(3)結果為1Sgn(-6)結果為-1Sgn(0)結果為0第三章程序設計基礎7、Hex(x)和Hex$(x)函數(shù)此函數(shù)的作用:(1)傳回x所代表的16進制數(shù)。Hex(15)---F(2)Hex(x)返回數(shù)值類型,Hex$(x)返回字符串類型。8、Oct(x)和Oct$(x)Oct(15)---17此函數(shù)返回8進制數(shù)。其功能說明與Hex(x)完全相同。9、Exp(x)函數(shù)此函數(shù)用來返回以e為底的x冪值。求e3EXP(3)10、Sin(x),Cos(x),Tan(x),Atn(x)分別用于返回x的正弦,余弦,正切,反正切值。第三章程序設計基礎函數(shù)說明函數(shù)說明CCur(表達式)轉(zhuǎn)為Current類型CSng(表達式)轉(zhuǎn)為Single類型CDbl(表達式)轉(zhuǎn)為Double類型CStr(表達式)轉(zhuǎn)為String類型CInt(表達式)轉(zhuǎn)為Integer類型CVar(表達式)轉(zhuǎn)為Varient類型CLng(表達式)轉(zhuǎn)為Long類型

VarType:用來返回變體類型變量所存放數(shù)據(jù)的數(shù)據(jù)類型。3.4.2數(shù)據(jù)類型轉(zhuǎn)換函數(shù)第三章程序設計基礎類型值類型值Empty0Double5Null1Currency6Integer2Date7Long3String8Single4

3.4.3字符處理函數(shù)Chr,Asc,String,Len,Left,Right,Mid,Lcase,Ucase,Ltrim,Rtrim,Trim,Str,Val,InStr,StrComp。第三章程序設計基礎1、Chr[$](數(shù)值)函數(shù)此函數(shù)返回ANSI碼的對應字符。例:Chr(65)---A例:我們常用以下的表達式組成回車換行符:

Chr(13)+Chr(10)2、Asc(“字符”)函數(shù)此函數(shù)用來返回字符的ANSI碼值。說明:若輸入為一字符串,則只返回第一個字符的ASCII碼值。例如當x=Asc(“a”)時,x=97;當x=Asc(“ab”)時,x=973、Len(字符串)此函數(shù)用于返回字符串的長度。Len(“asdfg”)--5第三章程序設計基礎4、String[$](個數(shù),字符)此函數(shù)用于重復某一個字符。說明:(1)“個數(shù)”用來指定重復的次數(shù)。(2)若“字符”為一字符串,則只重復復制第一個字符。例如,當x=String$(5,"a")時,則x="aaaaa“

當x=String$(5,"abc")時,則x="aaaaa“5、Left[$](字符串,字符個數(shù))此函數(shù)用于返回“字符串”最左邊的長度為“字符個數(shù)”的字符串。例如:DimsubstrAsString

substr=Left("VisualBasic",6)

則substr="Visual"第三章程序設計基礎6、Right[$](字符串,字符個數(shù))此函數(shù)用于返回“字符串”最右邊的長度為“字符個數(shù)”的字符串。例如:DimsubstrAsStringsubstr=Right(“VisualBasic”,5)則substr=”Basic”7、Mid[$](字符串,起始位置,[字符個數(shù)])此函數(shù)用于返回一個子字符串。例如:DimsubstrAsStringsubstr=mid(“VisualBasic”,3,3)則substr=”sua”說明:(1)子字符串從“起始位置”開始,以“字符個數(shù)”為長度;(2)若省略“字符個數(shù)”,則從起始位置到字符串的結尾。第三章程序設計基礎8、Lcase(字符串)和Ucase(字符串)Lcase:不論字符串中的字符為大寫還是小寫,一律輸出為

小寫。Lcase(“ABCabc”)---”abcabc”Ucase:不論字符串中的字符為大寫還是小寫,一律輸出為

大寫。Ucase(“ABCabc”)----”ABCABC”9、Ltrim(字符串)、Rtrim(字符串)、Trim(字符串)Ltrim(字符串):用于去掉字符串中左邊的空格。Rtrim(字符串):用于去掉字符串中右邊的空格。Trim(字符串):用于去掉字符串中左右兩邊的空格。10、Str(數(shù)值)和Val(字符串)Str(數(shù)值):用于將數(shù)字轉(zhuǎn)化為字符串。Val(字符串):用于將字符串轉(zhuǎn)化為數(shù)值。例如:a=Str(34.56)b=Val(“234.56”)則a=“34.56”,b=234.56第三章程序設計基礎11、InStr([起始位置,]“字符串1”,“字符串2”[,比較模式])此函數(shù)用來在字符串1中查找字符串2。說明:(1)從字符串1的“起始位置”處開始查找字符串2,如果找到“字符串2”,則返回字符串2在字符串1中的起始位置

溫馨提示

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

評論

0/150

提交評論