版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第二章VisualBasic.NET程序設(shè)計基礎(chǔ)
2.1控制臺應(yīng)用程序知識點1控制臺程序控制臺程序沒有窗體,只顯示DOS窗口和命令行程序代碼,控制臺程序運行快捷,非常適合調(diào)試程序時使用。
2.1控制臺應(yīng)用程序知識點2編碼規(guī)范1.字母不區(qū)分大小寫。2.語句書寫自由3.程序的注釋可以用英文標(biāo)點符號單引號“’”或Rem開頭來標(biāo)識一條注釋語句。4.各關(guān)鍵字、標(biāo)識符之間要用空格隔開。編寫一個控制臺應(yīng)用程序,程序執(zhí)行時提示用戶輸入兩個整數(shù),然后輸出兩數(shù)之和。
ModuleModule1SubMain()
Dimnum1,num2,sumAsInteger'定義3個整型變量
Console.Write("請輸入第一個整數(shù):")'輸出一串字符
num1=Console.ReadLine()'讀取一行字符
Console.Write("請輸入第二個整數(shù):")num2=Console.ReadLine()sum=num1+num2
Console.WriteLine(num1&"加上"&num2&"等于"&sum)'輸出一行字符及一個回車符
Console.Read()'讀取一個字符EndSubEndModuleConsole類的方法在控制臺應(yīng)用程序中進行信息的輸入與輸出,一般要調(diào)用Console類的方法。⑴Console類的Read方法【格式】:Console.Read()【功能】:從鍵盤讀取一個字符,并作為函數(shù)的返回值。⑵Console類的ReadLine方法【格式】:Console.ReadLine()【功能】:從鍵盤讀取一行字符,并作為函數(shù)的返回值。⑶Console類的Write方法【格式1】:Console.Write(X)【功能】將指定的X顯示在屏幕上。參數(shù)X是任意類型的數(shù)據(jù)。【格式2】:Console.Write(格式字符串,表達式列表)
【功能】:按照格式字符串的約定,輸出提示字符和表達式的值。⑷Console類的WriteLine方法【格式1】:Console.WriteLine(X)【功能】:將指定的X顯示在屏幕上,并以換行符結(jié)尾?!靖袷?】:Console.WriteLine(格式字符串,表達式列表)【功能】:按照格式字符串的約定,輸出提示字符和表達式的值,并以換行符結(jié)尾。例如,有下列程序段: x=120 y=280 Console.WriteLine("x={0},y={1}",x,y)則輸出結(jié)果為:x=120,y=2802.2數(shù)據(jù)類型、常量與變量知識點1基本數(shù)據(jù)類型 數(shù)據(jù)的類型是指數(shù)據(jù)在計算機內(nèi)部的表述和存儲形式,不同的數(shù)據(jù)類型具有不同的存儲長度、取值范圍和允許的操作。 VisualBasic.NET提供了豐富的數(shù)據(jù)類型,其中主要有數(shù)值型、字符型、布爾型、日期型、對象型和枚舉類型
知識點1基本數(shù)據(jù)類型1.?dāng)?shù)值型數(shù)據(jù) 數(shù)值型數(shù)據(jù)是指能進行數(shù)學(xué)運算的數(shù)據(jù),VisualBasic.NET的數(shù)值型數(shù)據(jù)分為整數(shù)型、浮點型和十進制型3類。2.字符類型數(shù)據(jù) ⑴字符型(Char) Char型數(shù)據(jù)用于存放一個Unicode字符,占2個字節(jié),字符可以包括所有西文字符和漢字。例如,"A"、"5"都是Char型數(shù)據(jù)。 ⑵字符串型(String) 字符串型數(shù)據(jù)是用雙引號括起來的字符序列,其中的字符可以是西文字符和漢字。例如,"computer"、"中國"、"我喜歡使用VisualBasic.NET"等知識點1基本數(shù)據(jù)類型3.布爾型數(shù)據(jù)(Boolean) 又稱為邏輯型,其取值只有兩個:True和False。True轉(zhuǎn)換為-1,F(xiàn)alse轉(zhuǎn)換為0;非0數(shù)據(jù)被轉(zhuǎn)換為True,0被轉(zhuǎn)換為False。4.日期型數(shù)據(jù)(Date) 日期格式:#mm/dd/yyyy#(月/日/年) 時間格式:#hh:mm:ss#(時:分:秒) 表示日期和時間時,日期和時間之間用一個空格分隔。例如,#7/15/2009#、#17:28:15#和#7/22/200912:29:12PM#都是合法的日期型數(shù)據(jù)。5.字節(jié)型數(shù)據(jù)(Byte) 字節(jié)型數(shù)據(jù)用于存儲一個字節(jié)的無符號整數(shù),其取值范圍為0~255。6.對象型數(shù)據(jù)(Object) 對象型數(shù)據(jù)是VB.NET默認(rèn)的數(shù)據(jù)類型,它可以引用應(yīng)用程序中的任何一個對象,也可引用其他任何數(shù)據(jù)類型的數(shù)據(jù)。知識點2常量與變量1.常量 常量是指在程序運行過程中其值不變的量。
⑴直接常量:
以直接明顯的形式給出的數(shù)據(jù)。如:3.14E-8、-780,"Computer"、#2/9/2004#、True等都是直接常量。
⑵符號常量: 程序中若要多次用到某一常量,用戶就可以把該常量定義為符號常量。定義符號常量的語句格式及功能如下:【格式】:Const符號常量名[As數(shù)據(jù)類型]=表達式【功能】:使用Const定義指定名稱的符號常量,并賦常量值。
知識點2常量與變量
例如:。 ConstXasInteger=100‘聲明整型常量X代表100 ConstDAY1asDate=#3/15/2004#‘聲明日期常量DAY1 ConstPWD=“Tiger”‘聲明字符串常量PWD代表”Tiger”
⑶系統(tǒng)常量 系統(tǒng)常量是由VisualBasic.NET提供的具有專門名稱和作用的常量,可以直接在程序中使用。如:vbRed表示紅色,vbCrLf表示回車換行。2.變量 變量是指那些在程序運行過程中,其值可以改變的量。⑴變量的命名規(guī)則變量名必須以字母或漢字開頭,其后可以是下劃線、字母、漢字和數(shù)字。變量名的長度不能大于255個字符。不允許將VisualBasic.NET的關(guān)鍵字用作變量名,但可以把關(guān)鍵字嵌入變量名中。 下面列出的變量名是有效的:
aABCintMaxs_nameA1學(xué)生_1Sum_ave 而下面列出的變量名則是無效的、非法的:
2a(數(shù)字開頭)Date(和關(guān)鍵字重名)Y,2(有標(biāo)點符號)2.變量⑵變量的聲明變量的聲明有顯式聲明和隱式聲明兩種方法。①變量的顯式聲明【格式】:Declare變量名As數(shù)據(jù)類型[=初值]【功能】:聲明一個由“變量名”指定的變量,并可以給它賦初值。Dimx,y,zAsSingleDimnAsInteger=12,tAsLong=1Dimaa,bb,ccAsDouble=456.789√√×2.變量②變量的隱式聲明 在VisualBasic.NET中,變量的隱式聲明是在變量名后面加上一個數(shù)據(jù)類型符,直接確定變量的類型。 例如,有下列語句:
DimN%,sum!,strName$ ‘定義N為整型變量,sum為單精度型變量,strName為字符串變量 ③OptionExplicit語句
OptionExplicitOff OptionExplicitOn編寫一個程序,由用戶輸入圓的半徑,計算并輸出圓的周長和面積。SubMain()
ConstPIAsSingle=3.14Dimr,l,sAsSingleConsole.Write("請輸入圓的半徑:")r=Console.ReadLinel=2*PI*rs=PI*r*rConsole.WriteLine(“圓的周長是:”&l)Console.WriteLine("圓的面積是:"&s)Console.Read()EndSub2.3運算符和表達式
知識點1算術(shù)運算符
例如,表達式4+5\6*7/8Mod9的值是5
運算符功能優(yōu)先級表達式表達式實例表達式結(jié)果^乘方運算1X^Y5^3125-取負(fù)2-X-5-5*乘法運算3X*Y3*515/浮點除法運算3X/Y5/31.6666667\整數(shù)除法運算4X\Y5\31Mod取模運算5XModY5Mod32+加法運算6X+Y5+38-減法運算6X-Y5-322.3運算符和表達式知識點2字符串運算符"計算機"+"程序設(shè)計"‘結(jié)果為"計算機程序設(shè)計""計算機"&"程序設(shè)計"‘結(jié)果為"計算機程序設(shè)計""125"+"25" ‘結(jié)果為"12525""125"+25 ‘結(jié)果為150"125"&25 ‘結(jié)果為"12525""ABC"+100 ‘結(jié)果出錯"ABC"&100 ‘結(jié)果為"ABC100"可以在Main函數(shù)中使用Console.WriteLine方法來輸出驗證這些表達式知識點3關(guān)系運算符運算符功能表達式實例結(jié)果=等于"Visual"="Visul"False>大于"Visual">"Visl"True>=大于等于20>=21False<小于55<89True<=小于等于"23"<="12"False<>不等于"xyz"<>"XYZ"TrueLike字符串匹配"韓非子"Like"韓*"TrueIs對象引用比較XIsY(若X和Y引用同一個對象)True知識點4邏輯運算符運算符功能優(yōu)先級表達式格式說明Not取反1Notx進行取反操作,即由真變假或由假變真And與2xAndy兩個操作數(shù)均為真時結(jié)果為真,否則為假Or或3xOry兩個操作數(shù)均為假時,結(jié)果為假,否則為真Xor異或4xXory兩個操作數(shù)相異時,結(jié)果為真,否則為假AndAlso短路與5xAndAlsoy類似And運算符OrElse短路或6xOrElsey類似Or運算符知識點4邏輯運算符3+5>8And8>3‘結(jié)果為False3+5>8Or8>3‘結(jié)果為TrueNot5<3And6*2=10+2 ‘結(jié)果為True“a”>”A”Xor“9”>“0”‘結(jié)果為False5>=5Or4*7<>7‘結(jié)果為True(12<2)AndAlso(10>1) ‘結(jié)果為False(10<20)OrElse(12*8<100) ‘結(jié)果為True2.3運算符和表達式
知識點5賦值運算符 知識點6表達式 VB.NET的表達式可以分為:算術(shù)表達式、字符串表達式、關(guān)系表達式和邏輯表達式。
1.表達式的書寫規(guī)則 ①表達式從左到右都在同一行上書寫。 ②乘號“*”不能省略。 ③表達式中的所有括號都只能用圓括號(),且括號必須配對。 例如,數(shù)學(xué)中的表達式3[x+5(y+z)],在程序中只能寫成:3*(x+5*(y+z))。2.3運算符和表達式2.運算符的優(yōu)先級算術(shù)運算符>=字符運算符>關(guān)系運算符>邏輯運算符對于相同類型的運算符,則按照規(guī)定的優(yōu)先級順序進行運算。若表達式中有括號和函數(shù),則先計算括號內(nèi)的表達式值和函數(shù)。3.不同數(shù)據(jù)類型的轉(zhuǎn)換在算術(shù)運算中,如果參加運算的數(shù)據(jù)具有不同的數(shù)據(jù)類型,則可以通過顯式或隱式的方法進行類型的轉(zhuǎn)換,通常是精度低的向精度高的數(shù)據(jù)類型轉(zhuǎn)換。數(shù)據(jù)類型由低到高的排列次序為:Byte<Short<Integer<Long<Single<Double<Decimal2.4常用內(nèi)部函數(shù)函數(shù)是完成某些特定運算的程序模塊。內(nèi)部函數(shù)也稱標(biāo)準(zhǔn)函數(shù),是由VisualBasic.NET系統(tǒng)提供的,可在任何程序中直接調(diào)用。每個內(nèi)部函數(shù)都有其特定的功能,并且在調(diào)用時都有唯一的函數(shù)返回值。下面表示函數(shù)參數(shù)時,用N表示數(shù)值型數(shù)據(jù),用C表示字符串型數(shù)據(jù),用D表示日期型數(shù)據(jù)。知識點1數(shù)學(xué)函數(shù)在VisualBasic.NET中,數(shù)學(xué)函數(shù)是在System.Math類中定義的,為了直接使用數(shù)學(xué)函數(shù),需要在程序模塊的開頭引入System.Math類,使用的語句如下:
ImportsSystem.Math如果沒有使用該語句引入Math類,則需要在數(shù)學(xué)函數(shù)名前加上Math.來引用。例如,Math.Sqrt(25)。表2-7常用的數(shù)學(xué)函數(shù)函數(shù)名含義實例結(jié)果Abs(N)取絕對值A(chǔ)bs(-3.5)3.5Sin(N)正弦函數(shù)Sin(30*3.14/180)0.5Cos(N)余弦函數(shù)Cos(60*3.14/180)0.5Int(N)取不大于N的最大整數(shù)Int(-8.6)-9Sqrt(N)平方根函數(shù)Sqrt(9)3Rnd[(N)]產(chǎn)生小于1但大于或等于0的隨機數(shù)Rnd0~1之間的小數(shù)Exp(N)以e為底的指數(shù)函數(shù),即eNExp(3)20.086Log(N)以e為底的自然對數(shù),即ln(N)Log(10)2.3Sign(N)符號函數(shù)Sign(-5)-1Tan(N)正切函數(shù)Tan(45*3.14/180)1Atan(N)反正切函數(shù)Atan(0)0⑶隨機數(shù)函數(shù)的使用技巧用Rnd函數(shù)產(chǎn)生隨機整數(shù):可以通過將由Rnd函數(shù)產(chǎn)生的隨機小數(shù)乘以一個整數(shù),然后再對結(jié)果取整獲得。 例如要產(chǎn)生一個0~25之間的隨機數(shù),可以由以下語句實現(xiàn): num=Int(Rnd()*26) 產(chǎn)生一個從N到M之間的隨機整數(shù)(M>N,包括M和N)的表達式為:
Int(Rnd*(M-N+1))+N。 產(chǎn)生隨機英文字符:英文字符A的ASCII碼為65,26個大寫字母的ASCII碼值范圍是65~90,其實現(xiàn)語句為:
Num=Int(Rnd*26)+65 Letter=Chr(Num)知識點2常用的數(shù)據(jù)類型轉(zhuǎn)換函數(shù)函數(shù)名含義實例結(jié)果Asc(C)字符轉(zhuǎn)換成ASCII碼值A(chǔ)sc(“A”)65Chr(N)ASCII碼值轉(zhuǎn)換成對應(yīng)字符Chr(65)“A”Str(N)數(shù)值轉(zhuǎn)換為字符串Str(123.45)“123.45”Val(C)數(shù)字字符串轉(zhuǎn)換為數(shù)值Val(“123AB”)123Hex(N)十進制數(shù)轉(zhuǎn)換為十六進制數(shù)Hex(100)64Oct(N)十進制數(shù)轉(zhuǎn)換為八進制數(shù)Oct(100)144Lcase(C)大寫字母轉(zhuǎn)換為小寫字母Lcase(“ABC12”)“abc12”Ucase(C)小寫字母轉(zhuǎn)換為大寫字母Ucase(“abc78”)“ABC78”知識點3字符串操作函數(shù)函數(shù)名含義實例結(jié)果Left(C,N)從字符串C左邊取出N個字符Left(“ABCDEF”,3)“ABC”Right(C,N)從字符串C右邊取出N個字符Right(“ABCDEF”,3)“DEF”Mid(C,N1,N2)從字符串C的N1位開始向右取N2個字符Mid(“ABCDEFG”,2,3)“BCD”Trim(C)除去字符串左右兩邊的空格Trim(“ABC“)“ABC”Ltrim(C)除去字符串左邊的空格Ltrim(“ab”)“ab”Rtrim(C,N)除去字符串右邊的空格Rtrim(“ABC“)“ABC”InStr(C1,C2)返回字符串C2在字符串C1中第一次出現(xiàn)的位置InStr(”VisualBasic”,“as”)9Len(C)計算字符串C的長度Len(“abcde”)5知識點4日期和時間函數(shù)函數(shù)名含義實例結(jié)果Now返回系統(tǒng)當(dāng)前的日期和時間Now2009-7-811:32:08Day(D)返回指定日期中的日(1~31)Month(D)返回指定日期中的月(1~12)Month(#3/2/2009#)3Year(D)返回指定日期中的年Year(#10/1/2009#")2009WeekDay(D)返回對應(yīng)的星期數(shù)(1~7)星期日為1,星期一為2Weekday(#7/22/2009#)4即星期三在使用Day函數(shù)時,需要用Microsoft.VisualBasic命名空間限定該函數(shù),例如:Microsoft.VisualBasic.DateAndTime.Day(#7/22/2009#)也可以使用Day屬性來獲取日期中的某一天,例如:#7/22/2009#.Day任務(wù)3解析Dimnum,nAsInteger '聲明模塊級變量'下面是“開始猜數(shù)”按鈕的事件過程代碼PrivateSubbtnStart_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnRnd.Click
txtInput.BackColor=Color.Pink
txtInput.Focus()
Randomize()
num=Int(Rnd()*100)+1
txtInput.Text=""
txtResult.Text=""EndSub'下面是“確定”按鈕的事件過程代碼PrivateSubbtnOk_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesbtnOk.Click
n=Val(txtInput.Text) Ifn=numThen txtResult.Text="恭喜你!猜對了"txtInput.BackColor=Color.WhiteElseIfn>numThentxtResult.Text=n&"太大了!"txtInput.Text=""txtInput.Focus()ElsetxtResult.Text=n&"太小了!"txtInput.Text=""txtInput.Focus()EndIfEndSub'下面是“查看”按鈕的事件過程代碼PrivateSubbtnView_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesbtnView.Click
txtResult.Text="您要猜的數(shù)是"&numEndSub2.5順序結(jié)構(gòu)程序設(shè)計 順序結(jié)構(gòu)的流程圖:知識點1賦值語句【格式1】:變量名=表達式【功能】:給變量賦值?!靖袷?】:對象名.屬性名=表達式【功能】:給對象的屬性賦值。當(dāng)賦值號兩邊的數(shù)據(jù)類型不同時,系統(tǒng)將強制轉(zhuǎn)換為賦值號左邊變量的數(shù)據(jù)類型。例如:a1%=6.845'變量a1為整型,表達式的值經(jīng)四舍五入后再賦給a1,結(jié)果為7。X!=6.2831528#'變量x為單精度型,賦值結(jié)果為6.283153,有效位降低為7位。知識點1賦值語句當(dāng)把字符串賦值給數(shù)值型變量時,系統(tǒng)會將字符串自動轉(zhuǎn)換成數(shù)值再賦值,但當(dāng)字符串中包含非數(shù)字字符或是一空串時,則出錯。例如:a%="31.456"'變量a中的結(jié)果是31。a!="31.456"'變量a中的結(jié)果是31.456。a%="31xy34"'出現(xiàn)“類型不匹配”錯誤知識點1賦值語句當(dāng)把邏輯值賦給數(shù)值變量時,True轉(zhuǎn)換為-1,F(xiàn)alse轉(zhuǎn)換為0;把數(shù)值型值賦給邏輯變量時,非0值轉(zhuǎn)換為True,0轉(zhuǎn)換為False。例如:DimBLAsBoolean
'聲明變量BL為邏輯型BL=5
‘變量BL中的數(shù)據(jù)為True。任何非字符串型的數(shù)據(jù)賦值給字符串型變量時,將被轉(zhuǎn)換成字符串型。知識點1賦值語句在程序設(shè)計中,我們常常會用到下面的賦值語句:
sum=sum+n賦值號左邊的變量名只能是變量,不能是常量、函數(shù)或表達式。例如,以下的賦值語句都是非法的:
Sin(1.23)=a'左邊是函數(shù)
9=a+1'左邊是常數(shù)
a+1=8'左邊是表達式知識點1賦值語句不能用一個賦值語句同時給多個變量賦值。例如,以下的賦值語句是錯誤的:Dima,b,cAsLonga=b=c=10程序執(zhí)行時會把b=c=10看成是關(guān)系表達式,它的值是False,再將其轉(zhuǎn)換后賦給變量a,結(jié)果a的值是0。知識點1賦值語句下列程序段的功能是交換兩個變量的值。Dima,b,cAsIntegera=15b=-25c=a'將a中的數(shù)據(jù)存入ca=b'將b中的數(shù)據(jù)存入ab=c'將c中的數(shù)據(jù)存入b,實現(xiàn)交換知識點1賦值語句知識點2InputBox函數(shù)語法格式為:InputBox(<提示>[,<標(biāo)題>][,<默認(rèn)值>][,<X坐標(biāo)位置>][,<Y坐標(biāo)位置>])功能:打開一個對話框,接受用戶從鍵盤輸入的數(shù)據(jù),該函數(shù)的返回值是字符串類型。
例如,有如下語句:DimsNameAsStringsName=InputBox("請輸入學(xué)生姓名:","姓名輸入","張三")知識點2InputBox函數(shù)知識點3MsgBox函數(shù)MsgBox函數(shù)產(chǎn)生一個消息對話框,常用于在程序運行過程中顯示一些提示性的消息,或要求用戶對某個問題作出“是”或“否”的判斷等。MsgBox函數(shù)的語法格式為:MsgBox(提示[,按鈕類型][,標(biāo)題])說明:<提示>是必選項,不能省略。MsgBox函數(shù)返回的值(一個整型數(shù))記錄了用戶在消息框中選擇了哪一個按鈕。例如,執(zhí)行下列語句后:DimnAsIntegern=MsgBox("文件的內(nèi)容已改變。"&vbCrLf&"想保存文件嗎?",35,"記事本")若用戶在對話框中單擊“是”按鈕,n的值為6;若單擊“否”按鈕,n的值為7;若單擊“取消”按鈕,n的值為2。知識點3MsgBox函數(shù)知識點4MessageBox類MessageBox.Show()函數(shù)與MsgBox函數(shù)功能相同,也是產(chǎn)生一個消息對話框,用于在程序運行過程中顯示一些提示性的消息,或要求用戶對某個問題作出“是”或“否”的判斷等。MessageBox.Show()函數(shù)的語法格式為:MessageBox.Show(提示[,標(biāo)題][,按鈕類型][,圖標(biāo)類型][,默認(rèn)按鈕])知識點4MessageBox類例如,下列語句也可以得到圖2-10所示的消息對話框。DimnAsIntegern=MessageBox.Show("文件的內(nèi)容已改變。"&vbCrLf&"想保存文件嗎?","記事本",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button1)任務(wù)4編寫一個求解三角形面積的程序要求:使用InputBox函數(shù)輸入三角形的三條邊,計算其面積并用MsgBox函數(shù)輸出。其中面積S=,p=(a+b+c)。ImportsSystem.MathPublicClassfrmAreaPrivateSubfrmArea_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMe.ClickDima,b,c,p,sAsSinglea=Val(InputBox("請輸入三角形的邊長A:"))b=Val(InputBox("請輸入三角形的邊長B:"))c=Val(InputBox("請輸入三角形的邊長C:"))Ifa+b>cAnda+c>bAndb+c>aThenp=(a+b+c)/2s=Sqrt(p*(p-a)*(p-b)*(p-c))MsgBox("A="&a&",B="&b&",C="&c&",面積="&s,,"三角形的面積")ElseMsgBox("輸入的三條邊不能構(gòu)成三角形")EndIfEndSubEndClass順序結(jié)構(gòu)的上機習(xí)題
1.隨機產(chǎn)生一個三位正整數(shù),并逆序輸出它。例如:產(chǎn)生的數(shù)為123,則輸出的數(shù)為321。界面如下圖所示:算法定義5個變量N=隨機數(shù)分別求出百位、十位、個位數(shù)a、b、cM=C*100+B*10+A將N和M分別顯示在兩個文本框中順序結(jié)構(gòu)的上機習(xí)題
2.由鍵盤輸入任意一個字符,用消息對話框顯示它的ASCII碼值。2.6條件分支結(jié)構(gòu)程序設(shè)計知識點1簡單分支結(jié)構(gòu)(單分支結(jié)構(gòu))單行結(jié)構(gòu)的語法格式為:【格式】:If條件表達式Then語句行塊結(jié)構(gòu)的語法格式是:【格式】:If條件表達式Then 語句塊EndIf分支結(jié)構(gòu)的控制流程圖條件表達式語句塊TrueFalse條件表達式語句塊1TrueFalse語句塊2知識點1簡單分支結(jié)構(gòu)(單分支結(jié)構(gòu))例如,要根據(jù)成績變量(Score)來統(tǒng)計通過計算機考試的人數(shù)(Sum),實現(xiàn)的語句是:IfScore>=60ThenSum=Sum+1又例如,已知兩個數(shù)值型變量x和y,如果x小于y,則交換x和y的值,否則不交換。實現(xiàn)的程序代碼段是:Ifx<yThen t=x x=y y=tEndIf知識點2選擇分支結(jié)構(gòu)(雙分支結(jié)構(gòu))【格式】:
If條件表達式Then 語句塊1Else 語句塊2EndIf【功能】:對給定的條件表達式進行判斷,若條件表達式的值為True,則程序執(zhí)行Then后面的語句塊1,執(zhí)行完畢后,再跳到EndIf后面去執(zhí)行其他語句;若表達式的值為False,則執(zhí)行Else之后的語句塊2,然后再執(zhí)行EndIf后面的其他語句。知識點2選擇分支結(jié)構(gòu)(雙分支結(jié)構(gòu))例如,計算分段函數(shù):則實現(xiàn)的程序代碼段是:
Ifx>=0Then y=Sin(x)+Sqrt(x^2+1)Else y=Cos(x)-x^3+3*xEndIf任務(wù)5編寫一個出租車計費程序已知出租車的起步價是6元,基價里程是2.5公里;超過2.5公里的部分,每公里加收1.2元;如果路程超過10公里,則超出部分加收50%的空貼費。編寫一個出租車計費程序。界面如下圖所示,在文本框txtDistance中輸入公里數(shù),單擊“計算”按鈕則在文本框txtCost中顯示應(yīng)付的出租車費;單擊“清空”按鈕則清空兩個文本框任務(wù)5解析PublicClassfrmTaxiCost
DimnAsSingle,costAsSinglePrivateSubbtnCalculate_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnCalculate.Click
n=Val(txtDistance.Text)Ifn<=2.5Thencost=6
cost=6+(n-2.5)*1.2Ifn>10Thencost=cost+(n-10)*1.2*0.5'超過10公里的加收超出部分50%的空車費
EndIfcost=Math.Round(cost)
'四舍五入取整EndIftxtCost.Text=cost&"元"EndSubPrivateSubbtnClear_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnClear.Click
txtDistance.Text=""txtCost.Text="“‘或txtCost.Clear()EndSubEndClass知識點3多分支結(jié)構(gòu)
1.使用If…Then…ElseIf語句
【格式】:
If條件表達式1Then 語句塊1ElseIf條件表達式2Then 語句塊2…[Else 語句塊n+1]EndIf【功能】:依次對給定的條件表達式進行判斷,哪個條件表達式的值為True,則程序就執(zhí)行該條件Then后面的語句塊,執(zhí)行完畢后,程序轉(zhuǎn)到EndIf之后的語句執(zhí)行,不再判斷其他條件表達式。當(dāng)所有條件表達式的值都為False時,則執(zhí)行Else后面的語句塊。多分支結(jié)構(gòu)的控制流程圖2.使用SelectCase語句【格式】:
SelectCase測試條件表達式 Case表達式列表1語句塊1Case表達式列表2 語句塊2…[CaseElse語句塊n+1]EndSelect【功能】:首先計算測試條件表達式的值,然后將該值依次與各Case后面的表達式列表值進行比較,若與某一列表值相等,就執(zhí)行與該Case相關(guān)聯(lián)的語句塊,執(zhí)行完畢后,程序轉(zhuǎn)到EndSelect之后的語句,不再與其他列表值進行比較。當(dāng)所有列表表達式的值均不能與測試條件表達式的值相匹配時,則執(zhí)行CaseElse后面的語句塊。說明:“測試條件表達式”可以是數(shù)值型或字符串表達式?!氨磉_式列表”可以是以下3種形式:表達式列表:如:Case2,4,6,8表達式To表達式:如:Case20to50Is比較運算符表達式:如:CaseIs<10注意Is前面不要加變量,初學(xué)者容易犯這樣的錯誤。上述三種形式在數(shù)據(jù)類型相同的條件下可以混合使用。例如:Case"a"To"n",Is>"x"Case2,4,6,8,Is>10任務(wù)6:編寫一個購物打折程序某商場采用購物打折的優(yōu)惠辦法促銷,每位顧客一次購物在100元以上,按九折優(yōu)惠;在500元以上,按八折優(yōu)惠;在1000元以上,按七折優(yōu)惠;在5000元以上,按六折優(yōu)惠。編寫程序,輸入顧客的購物款,計算并顯示出顧客的實際應(yīng)付款。要求分別用If…Then…
ElseIf語句和SelectCase語句來實現(xiàn)。程序運行界面任務(wù)6解析思路分析:設(shè)顧客的購物款為x,打折后的貨款為y,則優(yōu)惠公式為:
Dimx,yAsSingle'使用If……ElseIf語句PrivateSubbtnElseIf_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesbtnElseIf.Click
x=Val(txtInput.Text)Ifx<100Theny=xElseIfx<500Theny=x*0.9ElseIfx<1000Theny=x*0.8ElseIfx<5000Theny=x*0.7Elsey=x*0.6EndIftxtOutput.Text=yEndSub
PrivateSubbtnSelect_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesbtnSelect.Click
x=Val(txtInput.Text)SelectCasexCaseIs<100y=xCaseIs<500y=x*0.9CaseIs<1000y=x*0.8CaseIs<5000y=x*0.7CaseElsey=x*0.6EndSelecttxtOutput.Text=y
EndSub條件分支結(jié)構(gòu)的習(xí)題編寫一個求解一元二次方程根的程序。要求用戶輸入方程的3個系數(shù),判斷是否是二次方程,如果是,根據(jù)Δ分2種情況求解方程的根(有解或無解);如果是一次方程,直接求出根。2.7循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)是指在程序設(shè)計中,在指定條件下從程序的某處開始有規(guī)律地反復(fù)執(zhí)行某一程序段的現(xiàn)象,被重復(fù)執(zhí)行的程序段稱為“循環(huán)體”。VisualBasic.NET提供了兩種類型的循環(huán)結(jié)構(gòu),一種是計數(shù)循環(huán),另一種是條件循環(huán)。知識點1For…Next循環(huán)如果知道循環(huán)的次數(shù),就可以使用For…Next循環(huán)結(jié)構(gòu),F(xiàn)or…Next語句以指定的次數(shù)執(zhí)行一組語句?!靖袷健浚篎or循環(huán)變量=初值To終值[Step步長]語句塊1[ExitFor] 語句塊2Next循環(huán)變量說明:⑴循環(huán)變量、初值和終值都是必要參數(shù),不能省略,它們必須為數(shù)值型。⑵步長可以是正數(shù)或者負(fù)數(shù)。如果初值小于或等于終值,步長的值應(yīng)該為正;反之,步長應(yīng)該為負(fù)。步長的值為1時,可以省略不寫。⑶語句塊可以是一條語句,也可以是多條語句,通常稱為循環(huán)體。循環(huán)體在循環(huán)過程中被反復(fù)執(zhí)行。⑷For…Next循環(huán)是計數(shù)循環(huán),通常用于循環(huán)次數(shù)確定的場合。一個For循環(huán)的循環(huán)次數(shù)計算公式是:Int((終值-初值)/步長+1)。⑸ExitFor子句是可選項,它可以放置在循環(huán)體的任何位置。程序在執(zhí)行過程中遇到ExitFor子句時,將強行退出循環(huán)去執(zhí)行Next后面的語句。ExitFor子句常與條件判斷語句配合使用,使得循環(huán)操作能在一些特殊場合下提前終止。⑹For循環(huán)的執(zhí)行步驟是:①設(shè)置循環(huán)變量的值等于給定的初值;②判斷循環(huán)變量的值是否超過所設(shè)定的終值,如果是的話,則結(jié)束循環(huán),去執(zhí)行Next后面的語句。當(dāng)步長為正時,超過是指循環(huán)變量的值大于所設(shè)定的終值;當(dāng)步長為負(fù)時,超過是指循環(huán)變量的值小于所設(shè)定的終值。③如果循環(huán)變量的值不超過所設(shè)定的終值,則執(zhí)行For與Next語句之間的語句塊(循環(huán)體)。④循環(huán)體執(zhí)行完成后,循環(huán)變量自動增加一個給定的步長,然后轉(zhuǎn)到步驟②,繼續(xù)循環(huán)。例如,計算1+2+3+4+……+100的和。程序代碼段如下:Dimi,sumAsInteger'聲明循環(huán)變量為整型數(shù)sum=0'求和變量在循環(huán)外清零Fori=1To100Step1sum=sum+i'循環(huán)累加NextI注意:由于步長等于1,程序中的Step1可以省略。此程序的循環(huán)次數(shù)是Int((100-1)/1+1)=100。循環(huán)結(jié)束時,循環(huán)變量i的值是101,它超過了終值100。思考:若要求1~100之間的奇數(shù)或偶數(shù)的和,上述程序應(yīng)如何修改?知識點2ForEach…Next循環(huán)使用ForEach…Next語句可以對一個集合(或數(shù)組)中的每個元素都執(zhí)行一遍循環(huán)體。集合是聚集在一起的一組對象的統(tǒng)稱,使用集合可以很容易地實現(xiàn)添加、刪除和計數(shù)等功能。每個窗體都有一個控件集合,代表該窗體上的所有控件。使用索引可獲取該集合某個控件的引用,并可使用ForEach…Next語句遍歷整個集合?!靖袷健浚?ForEach循環(huán)變量In集合或數(shù)組 循環(huán)體 Next
任務(wù)7編寫一個能判斷素數(shù)并且能遍歷窗體控件的程序數(shù)學(xué)上把只能被1或自身整除的整數(shù)稱為素數(shù)。編寫程序,輸入一個大于2的整數(shù),單擊“判斷素數(shù)”按鈕,將在標(biāo)簽中顯示該數(shù)“是素數(shù)”或“不是素數(shù)”;單擊“遍歷控件”按鈕,將遍歷窗體上的所有控件,并將每個控件的背景色設(shè)為淡綠色。如圖2-18所示。任務(wù)7解析編寫兩個命令按鈕的Click事件過程代碼,如下所示:PublicClassfrmForCyclePrivateSubbtnForNext_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnForNext.ClickDimn,iAsInteger,flagAsBoolean
n=Val(txtNum.Text)flag=TrueFori=2ToMath.Sqrt(n)'終值也可以寫成n-1IfnModi=0Thenflag=FalseExitForEndIfNextiIfflagThen'如果flag為True則n是素數(shù)lblDisp.Text=n&"是素數(shù)"ElselblDisp.Text=n&"不是素數(shù)"EndIfEndSub '下列代碼用于遍歷控件PrivateSubbtnForEach_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesbtnForEach.Click
DimthisConAsSystem.Windows.Forms.Control'定義一個控件類的對象變量
ForEachthisConInMe.ControlsthisCon.BackColor=Color.LightGreenNextEndSubEndClass知識點3Do…Loop循環(huán)Do…Loop循環(huán)又稱為條件循環(huán),可以根據(jù)循環(huán)條件的成立與否來決定是否執(zhí)行循環(huán)體。前測型循環(huán)結(jié)構(gòu)的語法格式為:【格式】: Do[While|Until條件] 語句塊1 [ExitDo] [語句塊2]Loop【功能】:在執(zhí)行循環(huán)體前先判斷是否滿足循環(huán)的條件,若滿足才進入循環(huán)。前測型循環(huán)結(jié)構(gòu)的流程圖
后測型循環(huán)結(jié)構(gòu)的流程圖
知識點3Do…Loop循環(huán)后測型循環(huán)結(jié)構(gòu)的語法格式為:【格式】: Do 語句塊1 [ExitDo] [語句塊2]Loop[While|Until條件]【功能】:先進入循環(huán)執(zhí)行循環(huán)體,然后判斷是否滿足循環(huán)的條件,若滿足繼續(xù)循環(huán)。知識點3Do…Loop循環(huán)說明:⑴前測型循環(huán)結(jié)構(gòu)為先判斷后執(zhí)行,循環(huán)體可能一次也不執(zhí)行;后測型循環(huán)結(jié)構(gòu)為先執(zhí)行后判斷,循環(huán)體至少要被執(zhí)行一次。⑵關(guān)鍵字While用于指明條件為True時執(zhí)行循環(huán)體一次;關(guān)鍵字Until用于指明條件為True時循環(huán)結(jié)束。⑶條件是條件表達式,其值可以是True或False。⑷如省略[While|Until條件]選項時,表示循環(huán)是無條件循環(huán),此時循環(huán)體內(nèi)必須要有ExitDo子句跳出循環(huán),否則就成了死循環(huán),即循環(huán)會無終止地反復(fù)進行下去。例如,編程計算0~2
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 雙方自愿離婚協(xié)議書七篇
- 二人合伙協(xié)議書2025
- 自發(fā)性多汗癥病因介紹
- 廣東省佛山市南海區(qū)、三水區(qū)2023-2024學(xué)年九年級上學(xué)期期末數(shù)學(xué)試題
- 《電機技術(shù)應(yīng)用》課件 3.3.3 直流電機的制動
- (立項備案方案)壓制封頭項目立項申請報告
- (2024)歡樂世界旅游開發(fā)項目可行性研究報告申請備案編制(一)
- 2023年天津市高考語文模擬試卷
- 江蘇省鹽城市建湖縣漢開書院學(xué)校2023-2024學(xué)年七年級上學(xué)期第二次月考道德與法治試題(原卷版)-A4
- 2023年乙烯冷箱產(chǎn)品項目融資計劃書
- MOOC 信息安全-復(fù)旦大學(xué) 中國大學(xué)慕課答案
- 2024入團積極分子考試題庫答案
- 共情傳播的理論基礎(chǔ)與實踐路徑探索
- 日本企業(yè)文化與禮儀智慧樹知到期末考試答案2024年
- MOOC 古詩的魅力-哈爾濱師范大學(xué) 中國大學(xué)慕課答案
- 七年級期中考試考后分析主題班會課件
- 農(nóng)科大學(xué)生創(chuàng)業(yè)基礎(chǔ)智慧樹知到期末考試答案2024年
- MOOC 電子線路仿真與設(shè)計-南京理工大學(xué)紫金學(xué)院 中國大學(xué)慕課答案
- 企業(yè)社會責(zé)任對消費者購買意愿的影響研究
- 社區(qū)矯正知識課件
- 安環(huán)部經(jīng)理崗位職責(zé)范本
評論
0/150
提交評論