VB程序设计基础_第1页
VB程序设计基础_第2页
VB程序设计基础_第3页
VB程序设计基础_第4页
VB程序设计基础_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章VisualBasic.NET程序设计基础

2.1控制台应用程序知识点1控制台程序控制台程序没有窗体,只显示DOS窗口和命令行程序代码,控制台程序运行快捷,非常适合调试程序时使用。

2.1控制台应用程序知识点2编码规范1.字母不区分大小写。2.语句书写自由3.程序的注释可以用英文标点符号单引号“’”或Rem开头来标识一条注释语句。4.各关键字、标识符之间要用空格隔开。编写一个控制台应用程序,程序执行时提示用户输入两个整数,然后输出两数之和。

ModuleModule1SubMain()

Dimnum1,num2,sumAsInteger'定义3个整型变量

Console.Write("请输入第一个整数:")'输出一串字符

num1=Console.ReadLine()'读取一行字符

Console.Write("请输入第二个整数:")num2=Console.ReadLine()sum=num1+num2

Console.WriteLine(num1&"加上"&num2&"等于"&sum)'输出一行字符及一个回车符

Console.Read()'读取一个字符EndSubEndModuleConsole类的方法在控制台应用程序中进行信息的输入与输出,一般要调用Console类的方法。⑴Console类的Read方法【格式】:Console.Read()【功能】:从键盘读取一个字符,并作为函数的返回值。⑵Console类的ReadLine方法【格式】:Console.ReadLine()【功能】:从键盘读取一行字符,并作为函数的返回值。⑶Console类的Write方法【格式1】:Console.Write(X)【功能】将指定的X显示在屏幕上。参数X是任意类型的数据。【格式2】:Console.Write(格式字符串,表达式列表)

【功能】:按照格式字符串的约定,输出提示字符和表达式的值。⑷Console类的WriteLine方法【格式1】:Console.WriteLine(X)【功能】:将指定的X显示在屏幕上,并以换行符结尾。【格式2】:Console.WriteLine(格式字符串,表达式列表)【功能】:按照格式字符串的约定,输出提示字符和表达式的值,并以换行符结尾。例如,有下列程序段: x=120 y=280 Console.WriteLine("x={0},y={1}",x,y)则输出结果为:x=120,y=2802.2数据类型、常量与变量知识点1基本数据类型 数据的类型是指数据在计算机内部的表述和存储形式,不同的数据类型具有不同的存储长度、取值范围和允许的操作。 VisualBasic.NET提供了丰富的数据类型,其中主要有数值型、字符型、布尔型、日期型、对象型和枚举类型

知识点1基本数据类型1.数值型数据 数值型数据是指能进行数学运算的数据,VisualBasic.NET的数值型数据分为整数型、浮点型和十进制型3类。2.字符类型数据 ⑴字符型(Char) Char型数据用于存放一个Unicode字符,占2个字节,字符可以包括所有西文字符和汉字。例如,"A"、"5"都是Char型数据。 ⑵字符串型(String) 字符串型数据是用双引号括起来的字符序列,其中的字符可以是西文字符和汉字。例如,"computer"、"中国"、"我喜欢使用VisualBasic.NET"等知识点1基本数据类型3.布尔型数据(Boolean) 又称为逻辑型,其取值只有两个:True和False。True转换为-1,False转换为0;非0数据被转换为True,0被转换为False。4.日期型数据(Date) 日期格式:#mm/dd/yyyy#(月/日/年) 时间格式:#hh:mm:ss#(时:分:秒) 表示日期和时间时,日期和时间之间用一个空格分隔。例如,#7/15/2009#、#17:28:15#和#7/22/200912:29:12PM#都是合法的日期型数据。5.字节型数据(Byte) 字节型数据用于存储一个字节的无符号整数,其取值范围为0~255。6.对象型数据(Object) 对象型数据是VB.NET默认的数据类型,它可以引用应用程序中的任何一个对象,也可引用其他任何数据类型的数据。知识点2常量与变量1.常量 常量是指在程序运行过程中其值不变的量。

⑴直接常量:

以直接明显的形式给出的数据。如:3.14E-8、-780,"Computer"、#2/9/2004#、True等都是直接常量。

⑵符号常量: 程序中若要多次用到某一常量,用户就可以把该常量定义为符号常量。定义符号常量的语句格式及功能如下:【格式】:Const符号常量名[As数据类型]=表达式【功能】:使用Const定义指定名称的符号常量,并赋常量值。

知识点2常量与变量

例如:。 ConstXasInteger=100‘声明整型常量X代表100 ConstDAY1asDate=#3/15/2004#‘声明日期常量DAY1 ConstPWD=“Tiger”‘声明字符串常量PWD代表”Tiger”

⑶系统常量 系统常量是由VisualBasic.NET提供的具有专门名称和作用的常量,可以直接在程序中使用。如:vbRed表示红色,vbCrLf表示回车换行。2.变量 变量是指那些在程序运行过程中,其值可以改变的量。⑴变量的命名规则变量名必须以字母或汉字开头,其后可以是下划线、字母、汉字和数字。变量名的长度不能大于255个字符。不允许将VisualBasic.NET的关键字用作变量名,但可以把关键字嵌入变量名中。 下面列出的变量名是有效的:

aABCintMaxs_nameA1学生_1Sum_ave 而下面列出的变量名则是无效的、非法的:

2a(数字开头)Date(和关键字重名)Y,2(有标点符号)2.变量⑵变量的声明变量的声明有显式声明和隐式声明两种方法。①变量的显式声明【格式】:Declare变量名As数据类型[=初值]【功能】:声明一个由“变量名”指定的变量,并可以给它赋初值。Dimx,y,zAsSingleDimnAsInteger=12,tAsLong=1Dimaa,bb,ccAsDouble=456.789√√×2.变量②变量的隐式声明 在VisualBasic.NET中,变量的隐式声明是在变量名后面加上一个数据类型符,直接确定变量的类型。 例如,有下列语句:

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算术运算符

例如,表达式4+5\6*7/8Mod9的值是5

运算符功能优先级表达式表达式实例表达式结果^乘方运算1X^Y5^3125-取负2-X-5-5*乘法运算3X*Y3*515/浮点除法运算3X/Y5/31.6666667\整数除法运算4X\Y5\31Mod取模运算5XModY5Mod32+加法运算6X+Y5+38-减法运算6X-Y5-322.3运算符和表达式知识点2字符串运算符"计算机"+"程序设计"‘结果为"计算机程序设计""计算机"&"程序设计"‘结果为"计算机程序设计""125"+"25" ‘结果为"12525""125"+25 ‘结果为150"125"&25 ‘结果为"12525""ABC"+100 ‘结果出错"ABC"&100 ‘结果为"ABC100"可以在Main函数中使用Console.WriteLine方法来输出验证这些表达式知识点3关系运算符运算符功能表达式实例结果=等于"Visual"="Visul"False>大于"Visual">"Visl"True>=大于等于20>=21False<小于55<89True<=小于等于"23"<="12"False<>不等于"xyz"<>"XYZ"TrueLike字符串匹配"韩非子"Like"韩*"TrueIs对象引用比较XIsY(若X和Y引用同一个对象)True知识点4逻辑运算符运算符功能优先级表达式格式说明Not取反1Notx进行取反操作,即由真变假或由假变真And与2xAndy两个操作数均为真时结果为真,否则为假Or或3xOry两个操作数均为假时,结果为假,否则为真Xor异或4xXory两个操作数相异时,结果为真,否则为假AndAlso短路与5xAndAlsoy类似And运算符OrElse短路或6xOrElsey类似Or运算符知识点4逻辑运算符3+5>8And8>3‘结果为False3+5>8Or8>3‘结果为TrueNot5<3And6*2=10+2 ‘结果为True“a”>”A”Xor“9”>“0”‘结果为False5>=5Or4*7<>7‘结果为True(12<2)AndAlso(10>1) ‘结果为False(10<20)OrElse(12*8<100) ‘结果为True2.3运算符和表达式

知识点5赋值运算符 知识点6表达式 VB.NET的表达式可以分为:算术表达式、字符串表达式、关系表达式和逻辑表达式。

1.表达式的书写规则 ①表达式从左到右都在同一行上书写。 ②乘号“*”不能省略。 ③表达式中的所有括号都只能用圆括号(),且括号必须配对。 例如,数学中的表达式3[x+5(y+z)],在程序中只能写成:3*(x+5*(y+z))。2.3运算符和表达式2.运算符的优先级算术运算符>=字符运算符>关系运算符>逻辑运算符对于相同类型的运算符,则按照规定的优先级顺序进行运算。若表达式中有括号和函数,则先计算括号内的表达式值和函数。3.不同数据类型的转换在算术运算中,如果参加运算的数据具有不同的数据类型,则可以通过显式或隐式的方法进行类型的转换,通常是精度低的向精度高的数据类型转换。数据类型由低到高的排列次序为:Byte<Short<Integer<Long<Single<Double<Decimal2.4常用内部函数函数是完成某些特定运算的程序模块。内部函数也称标准函数,是由VisualBasic.NET系统提供的,可在任何程序中直接调用。每个内部函数都有其特定的功能,并且在调用时都有唯一的函数返回值。下面表示函数参数时,用N表示数值型数据,用C表示字符串型数据,用D表示日期型数据。知识点1数学函数在VisualBasic.NET中,数学函数是在System.Math类中定义的,为了直接使用数学函数,需要在程序模块的开头引入System.Math类,使用的语句如下:

ImportsSystem.Math如果没有使用该语句引入Math类,则需要在数学函数名前加上Math.来引用。例如,Math.Sqrt(25)。表2-7常用的数学函数函数名含义实例结果Abs(N)取绝对值Abs(-3.5)3.5Sin(N)正弦函数Sin(30*3.14/180)0.5Cos(N)余弦函数Cos(60*3.14/180)0.5Int(N)取不大于N的最大整数Int(-8.6)-9Sqrt(N)平方根函数Sqrt(9)3Rnd[(N)]产生小于1但大于或等于0的随机数Rnd0~1之间的小数Exp(N)以e为底的指数函数,即eNExp(3)20.086Log(N)以e为底的自然对数,即ln(N)Log(10)2.3Sign(N)符号函数Sign(-5)-1Tan(N)正切函数Tan(45*3.14/180)1Atan(N)反正切函数Atan(0)0⑶随机数函数的使用技巧用Rnd函数产生随机整数:可以通过将由Rnd函数产生的随机小数乘以一个整数,然后再对结果取整获得。 例如要产生一个0~25之间的随机数,可以由以下语句实现: num=Int(Rnd()*26) 产生一个从N到M之间的随机整数(M>N,包括M和N)的表达式为:

Int(Rnd*(M-N+1))+N。 产生随机英文字符:英文字符A的ASCII码为65,26个大写字母的ASCII码值范围是65~90,其实现语句为:

Num=Int(Rnd*26)+65 Letter=Chr(Num)知识点2常用的数据类型转换函数函数名含义实例结果Asc(C)字符转换成ASCII码值Asc(“A”)65Chr(N)ASCII码值转换成对应字符Chr(65)“A”Str(N)数值转换为字符串Str(123.45)“123.45”Val(C)数字字符串转换为数值Val(“123AB”)123Hex(N)十进制数转换为十六进制数Hex(100)64Oct(N)十进制数转换为八进制数Oct(100)144Lcase(C)大写字母转换为小写字母Lcase(“ABC12”)“abc12”Ucase(C)小写字母转换为大写字母Ucase(“abc78”)“ABC78”知识点3字符串操作函数函数名含义实例结果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中第一次出现的位置InStr(”VisualBasic”,“as”)9Len(C)计算字符串C的长度Len(“abcde”)5知识点4日期和时间函数函数名含义实例结果Now返回系统当前的日期和时间Now2009-7-811:32:08Day(D)返回指定日期中的日(1~31)Month(D)返回指定日期中的月(1~12)Month(#3/2/2009#)3Year(D)返回指定日期中的年Year(#10/1/2009#")2009WeekDay(D)返回对应的星期数(1~7)星期日为1,星期一为2Weekday(#7/22/2009#)4即星期三在使用Day函数时,需要用Microsoft.VisualBasic命名空间限定该函数,例如:Microsoft.VisualBasic.DateAndTime.Day(#7/22/2009#)也可以使用Day属性来获取日期中的某一天,例如:#7/22/2009#.Day任务3解析Dimnum,nAsInteger '声明模块级变量'下面是“开始猜数”按钮的事件过程代码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="您要猜的数是"&numEndSub2.5顺序结构程序设计 顺序结构的流程图:知识点1赋值语句【格式1】:变量名=表达式【功能】:给变量赋值。【格式2】:对象名.属性名=表达式【功能】:给对象的属性赋值。当赋值号两边的数据类型不同时,系统将强制转换为赋值号左边变量的数据类型。例如:a1%=6.845'变量a1为整型,表达式的值经四舍五入后再赋给a1,结果为7。X!=6.2831528#'变量x为单精度型,赋值结果为6.283153,有效位降低为7位。知识点1赋值语句当把字符串赋值给数值型变量时,系统会将字符串自动转换成数值再赋值,但当字符串中包含非数字字符或是一空串时,则出错。例如:a%="31.456"'变量a中的结果是31。a!="31.456"'变量a中的结果是31.456。a%="31xy34"'出现“类型不匹配”错误知识点1赋值语句当把逻辑值赋给数值变量时,True转换为-1,False转换为0;把数值型值赋给逻辑变量时,非0值转换为True,0转换为False。例如:DimBLAsBoolean

'声明变量BL为逻辑型BL=5

‘变量BL中的数据为True。任何非字符串型的数据赋值给字符串型变量时,将被转换成字符串型。知识点1赋值语句在程序设计中,我们常常会用到下面的赋值语句:

sum=sum+n赋值号左边的变量名只能是变量,不能是常量、函数或表达式。例如,以下的赋值语句都是非法的:

Sin(1.23)=a'左边是函数

9=a+1'左边是常数

a+1=8'左边是表达式知识点1赋值语句不能用一个赋值语句同时给多个变量赋值。例如,以下的赋值语句是错误的:Dima,b,cAsLonga=b=c=10程序执行时会把b=c=10看成是关系表达式,它的值是False,再将其转换后赋给变量a,结果a的值是0。知识点1赋值语句下列程序段的功能是交换两个变量的值。Dima,b,cAsIntegera=15b=-25c=a'将a中的数据存入ca=b'将b中的数据存入ab=c'将c中的数据存入b,实现交换知识点1赋值语句知识点2InputBox函数语法格式为:InputBox(<提示>[,<标题>][,<默认值>][,<X坐标位置>][,<Y坐标位置>])功能:打开一个对话框,接受用户从键盘输入的数据,该函数的返回值是字符串类型。

例如,有如下语句:DimsNameAsStringsName=InputBox("请输入学生姓名:","姓名输入","张三")知识点2InputBox函数知识点3MsgBox函数MsgBox函数产生一个消息对话框,常用于在程序运行过程中显示一些提示性的消息,或要求用户对某个问题作出“是”或“否”的判断等。MsgBox函数的语法格式为:MsgBox(提示[,按钮类型][,标题])说明:<提示>是必选项,不能省略。MsgBox函数返回的值(一个整型数)记录了用户在消息框中选择了哪一个按钮。例如,执行下列语句后:DimnAsIntegern=MsgBox("文件的内容已改变。"&vbCrLf&"想保存文件吗?",35,"记事本")若用户在对话框中单击“是”按钮,n的值为6;若单击“否”按钮,n的值为7;若单击“取消”按钮,n的值为2。知识点3MsgBox函数知识点4MessageBox类MessageBox.Show()函数与MsgBox函数功能相同,也是产生一个消息对话框,用于在程序运行过程中显示一些提示性的消息,或要求用户对某个问题作出“是”或“否”的判断等。MessageBox.Show()函数的语法格式为:MessageBox.Show(提示[,标题][,按钮类型][,图标类型][,默认按钮])知识点4MessageBox类例如,下列语句也可以得到图2-10所示的消息对话框。DimnAsIntegern=MessageBox.Show("文件的内容已改变。"&vbCrLf&"想保存文件吗?","记事本",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button1)任务4编写一个求解三角形面积的程序要求:使用InputBox函数输入三角形的三条边,计算其面积并用MsgBox函数输出。其中面积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("输入的三条边不能构成三角形")EndIfEndSubEndClass顺序结构的上机习题

1.随机产生一个三位正整数,并逆序输出它。例如:产生的数为123,则输出的数为321。界面如下图所示:算法定义5个变量N=随机数分别求出百位、十位、个位数a、b、cM=C*100+B*10+A将N和M分别显示在两个文本框中顺序结构的上机习题

2.由键盘输入任意一个字符,用消息对话框显示它的ASCII码值。2.6条件分支结构程序设计知识点1简单分支结构(单分支结构)单行结构的语法格式为:【格式】:If条件表达式Then语句行块结构的语法格式是:【格式】:If条件表达式Then 语句块EndIf分支结构的控制流程图条件表达式语句块TrueFalse条件表达式语句块1TrueFalse语句块2知识点1简单分支结构(单分支结构)例如,要根据成绩变量(Score)来统计通过计算机考试的人数(Sum),实现的语句是:IfScore>=60ThenSum=Sum+1又例如,已知两个数值型变量x和y,如果x小于y,则交换x和y的值,否则不交换。实现的程序代码段是:Ifx<yThen t=x x=y y=tEndIf知识点2选择分支结构(双分支结构)【格式】:

If条件表达式Then 语句块1Else 语句块2EndIf【功能】:对给定的条件表达式进行判断,若条件表达式的值为True,则程序执行Then后面的语句块1,执行完毕后,再跳到EndIf后面去执行其他语句;若表达式的值为False,则执行Else之后的语句块2,然后再执行EndIf后面的其他语句。知识点2选择分支结构(双分支结构)例如,计算分段函数:则实现的程序代码段是:

Ifx>=0Then y=Sin(x)+Sqrt(x^2+1)Else y=Cos(x)-x^3+3*xEndIf任务5编写一个出租车计费程序已知出租车的起步价是6元,基价里程是2.5公里;超过2.5公里的部分,每公里加收1.2元;如果路程超过10公里,则超出部分加收50%的空贴费。编写一个出租车计费程序。界面如下图所示,在文本框txtDistance中输入公里数,单击“计算”按钮则在文本框txtCost中显示应付的出租车费;单击“清空”按钮则清空两个文本框任务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多分支结构

1.使用If…Then…ElseIf语句

【格式】:

If条件表达式1Then 语句块1ElseIf条件表达式2Then 语句块2…[Else 语句块n+1]EndIf【功能】:依次对给定的条件表达式进行判断,哪个条件表达式的值为True,则程序就执行该条件Then后面的语句块,执行完毕后,程序转到EndIf之后的语句执行,不再判断其他条件表达式。当所有条件表达式的值都为False时,则执行Else后面的语句块。多分支结构的控制流程图2.使用SelectCase语句【格式】:

SelectCase测试条件表达式 Case表达式列表1语句块1Case表达式列表2 语句块2…[CaseElse语句块n+1]EndSelect【功能】:首先计算测试条件表达式的值,然后将该值依次与各Case后面的表达式列表值进行比较,若与某一列表值相等,就执行与该Case相关联的语句块,执行完毕后,程序转到EndSelect之后的语句,不再与其他列表值进行比较。当所有列表表达式的值均不能与测试条件表达式的值相匹配时,则执行CaseElse后面的语句块。说明:“测试条件表达式”可以是数值型或字符串表达式。“表达式列表”可以是以下3种形式:表达式列表:如:Case2,4,6,8表达式To表达式:如:Case20to50Is比较运算符表达式:如:CaseIs<10注意Is前面不要加变量,初学者容易犯这样的错误。上述三种形式在数据类型相同的条件下可以混合使用。例如:Case"a"To"n",Is>"x"Case2,4,6,8,Is>10任务6:编写一个购物打折程序某商场采用购物打折的优惠办法促销,每位顾客一次购物在100元以上,按九折优惠;在500元以上,按八折优惠;在1000元以上,按七折优惠;在5000元以上,按六折优惠。编写程序,输入顾客的购物款,计算并显示出顾客的实际应付款。要求分别用If…Then…

ElseIf语句和SelectCase语句来实现。程序运行界面任务6解析思路分析:设顾客的购物款为x,打折后的货款为y,则优惠公式为:

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条件分支结构的习题编写一个求解一元二次方程根的程序。要求用户输入方程的3个系数,判断是否是二次方程,如果是,根据Δ分2种情况求解方程的根(有解或无解);如果是一次方程,直接求出根。2.7循环结构程序设计循环是指在程序设计中,在指定条件下从程序的某处开始有规律地反复执行某一程序段的现象,被重复执行的程序段称为“循环体”。VisualBasic.NET提供了两种类型的循环结构,一种是计数循环,另一种是条件循环。知识点1For…Next循环如果知道循环的次数,就可以使用For…Next循环结构,For…Next语句以指定的次数执行一组语句。【格式】:For循环变量=初值To终值[Step步长]语句块1[ExitFor] 语句块2Next循环变量说明:⑴循环变量、初值和终值都是必要参数,不能省略,它们必须为数值型。⑵步长可以是正数或者负数。如果初值小于或等于终值,步长的值应该为正;反之,步长应该为负。步长的值为1时,可以省略不写。⑶语句块可以是一条语句,也可以是多条语句,通常称为循环体。循环体在循环过程中被反复执行。⑷For…Next循环是计数循环,通常用于循环次数确定的场合。一个For循环的循环次数计算公式是:Int((终值-初值)/步长+1)。⑸ExitFor子句是可选项,它可以放置在循环体的任何位置。程序在执行过程中遇到ExitFor子句时,将强行退出循环去执行Next后面的语句。ExitFor子句常与条件判断语句配合使用,使得循环操作能在一些特殊场合下提前终止。⑹For循环的执行步骤是:①设置循环变量的值等于给定的初值;②判断循环变量的值是否超过所设定的终值,如果是的话,则结束循环,去执行Next后面的语句。当步长为正时,超过是指循环变量的值大于所设定的终值;当步长为负时,超过是指循环变量的值小于所设定的终值。③如果循环变量的值不超过所设定的终值,则执行For与Next语句之间的语句块(循环体)。④循环体执行完成后,循环变量自动增加一个给定的步长,然后转到步骤②,继续循环。例如,计算1+2+3+4+……+100的和。程序代码段如下:Dimi,sumAsInteger'声明循环变量为整型数sum=0'求和变量在循环外清零Fori=1To100Step1sum=sum+i'循环累加NextI注意:由于步长等于1,程序中的Step1可以省略。此程序的循环次数是Int((100-1)/1+1)=100。循环结束时,循环变量i的值是101,它超过了终值100。思考:若要求1~100之间的奇数或偶数的和,上述程序应如何修改?知识点2ForEach…Next循环使用ForEach…Next语句可以对一个集合(或数组)中的每个元素都执行一遍循环体。集合是聚集在一起的一组对象的统称,使用集合可以很容易地实现添加、删除和计数等功能。每个窗体都有一个控件集合,代表该窗体上的所有控件。使用索引可获取该集合某个控件的引用,并可使用ForEach…Next语句遍历整个集合。【格式】: ForEach循环变量In集合或数组 循环体 Next

任务7编写一个能判断素数并且能遍历窗体控件的程序数学上把只能被1或自身整除的整数称为素数。编写程序,输入一个大于2的整数,单击“判断素数”按钮,将在标签中显示该数“是素数”或“不是素数”;单击“遍历控件”按钮,将遍历窗体上的所有控件,并将每个控件的背景色设为淡绿色。如图2-18所示。任务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是素数lblDisp.Text=n&"是素数"ElselblDisp.Text=n&"不是素数"EndIfEndSub '下列代码用于遍历控件PrivateSubbtnForEach_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesbtnForEach.Click

DimthisConAsSystem.Windows.Forms.Control'定义一个控件类的对象变量

ForEachthisConInMe.ControlsthisCon.BackColor=Color.LightGreenNextEndSubEndClass知识点3Do…Loop循环Do…Loop循环又称为条件循环,可以根据循环条件的成立与否来决定是否执行循环体。前测型循环结构的语法格式为:【格式】: Do[While|Until条件] 语句块1 [ExitDo] [语句块2]Loop【功能】:在执行循环体前先判断是否满足循环的条件,若满足才进入循环。前测型循环结构的流程图

后测型循环结构的流程图

知识点3Do…Loop循环后测型循环结构的语法格式为:【格式】: Do 语句块1 [ExitDo] [语句块2]Loop[While|Until条件]【功能】:先进入循环执行循环体,然后判断是否满足循环的条件,若满足继续循环。知识点3Do…Loop循环说明:⑴前测型循环结构为先判断后执行,循环体可能一次也不执行;后测型循环结构为先执行后判断,循环体至少要被执行一次。⑵关键字While用于指明条件为True时执行循环体一次;关键字Until用于指明条件为True时循环结束。⑶条件是条件表达式,其值可以是True或False。⑷如省略[While|Until条件]选项时,表示循环是无条件循环,此时循环体内必须要有ExitDo子句跳出循环,否则就成了死循环,即循环会无终止地反复进行下去。例如,编程计算0~2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论