vbnet新-第6章数据处理_第1页
vbnet新-第6章数据处理_第2页
vbnet新-第6章数据处理_第3页
vbnet新-第6章数据处理_第4页
vbnet新-第6章数据处理_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

6.1

程序开发的两步界面设计代码设计程序顺序结构选择结构循环结构程序基本控制结构(三种)6.2

数据的顺序结构处理输出计算输入顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行。顺序结构就是各语句按出现的先后次序执行顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出的程序就是顺序结构。输出计算输入赋值语句(常量或表达式、通过TextBox控件等)赋值语句向TextBox控件、Label控件相应属性赋值或通过使用MsgBox函数等语句或工具语法格式:变量名=表达式对象名.属性名

=

表达式6.2数据的输入--赋值语句功能:

计算赋值号“=”右边表达式的值,然后赋给赋值号“=”左边的变量或属性。x=5x=20*5y=2*x+10st$=“abcdef1234”x=val(TextBox1.text)TextBox1.Text=x错误的赋值5=x+yx+y=10sin(x)=0.5f(x)=x^2+x+106.2数据的输入--赋值语句例如:赋值语句一般要求赋值号两边的类型一致。当两边类型不一致时赋值语句的转换规则将等号右边表达式的值强制转换成符合等号左边变量或对象属性的数据类型值;如强制转换不成功,则在程序运行时会报错。6.2数据的输入--赋值语句intScore%

=

4.2intScore%

=

"456"intScore%

=

"hey5678"intScore%

=

"87ea65“intScore%

=

""'转换时四舍五入,结果为4'intScore的值为456‘出错'出错'出错6.2数据的输入--赋值语句Dim

a%a=TrueDim

b%b=FalseDim

blnB1

AsBooleanblnB1=

78Dim

blnB2

As

BooleanblnB2

=0Dim

strS1$strS1=

TrueDim

strS2$strS2=

45.67'a=-1'b=0'blnB1=True'blnB2=False'strS1="True"'strS2="45.67"赋值语句的应用:重复多次执行累加(1)Sum

=

Sum

+

x计数(2)n=

n+1累乘(3)T=

T

*X6.2数据的输入--赋值语句Dim

n%,T%n=n

+1'

n+=1T=T*5'T*=5Dim

str1$textbox1.text

=

textbox1.text

&

str1‘textBox1.text &=

str16.2数据的输入--赋值语句复合赋值运算符:op=op为:+,-,*,/,\,&如:+=

,-=,*=,/=,\=,&=复合赋值语句格式为:变量op=表达式等价于变量=变量op

表达式6.3数据的输出—输出方式两种方式:方式一:在应用程序界面中,通过赋值语句将结果赋给

Label、文本框TextBox、

框PictureBox等控件的相应属性进行输出显示。TextBox1.text=“a*b的结果为”

&

a*b方式二:通过使用MsgBox函数,以弹出消息框的形式,进行输出。MsgBox(“a*b的结果为”

&

a*b)MsgBox的功能是进行提示,用以确认某种程序的操作,简称“消息框”。2.

MsgBox(消息框)MsgBox函数用于在屏幕上的消息框中显示简短消

息,并等待用户单击按钮,然后返回一个整数型的数值,让应用程序了解用户单击的是哪一个按钮。语法格式:MsgBox(Prompt[,Buttons][,Title])功能:在屏幕上显示一个消息框,根据选择确定其后的操作。其中:Buttons=基本类型[+图标类型][+默认按钮]表6.1

按钮的类型及其对应的值符号常量值显示出来的按钮vbOkOnly0显示“确定”按钮vbOKCancel1显示“确定”和“取消”按钮vbAbortRetryIgnore2显示“中止(A)”、“重试(R)”、和“忽略(I)”按钮vbYesNoCancel3显示“是(Y)”、“否(N)”和“取消”按钮vbYesNo4显示“是(Y)”、“否(N)”按钮vbRetryCancel5显示“重试(R)”、和“取消”按钮表6.2

图标的类型及其对应的值符号常量值在消息框上显示出来的图标vbCritical16关键信息图标vbQuestion32询问信息图标vbExclamation48警告信息图标vbInformation64信息图标表6.3

默认按钮及其对应的值符号常量值默认按钮DefaultButton10第一个按钮是默认的活动按钮DefaultButton2256第二个按钮是默认的活动按钮DefaultButton3512第三个按钮是默认的活动按钮符号常量值用户单击的按钮vbOK1“确定”vbCancel2“取消”vbAbort3“中止”vbRetry4“重试”vbIgnore5“忽略”vbYes6“是””vbNo7“否”当用户单击消息框上的某按钮时,MsgBox函数将返回一个常量来确认该按钮被按动了,下表是按钮和常量之间的对应关系。通过对返回值的判断,就可以确定消息框中到底是哪个按钮被按动,从而确定程序下一步的运行方式。表Msgbox函数的可能返回值6.4

数据分支处理对于要先做判断再选择的问题就要使用分支结构,如下面例子。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构-IF语句块IFIf

条件

Then语句块1[Else语句块2]End

If行IFIf

条件

Then

语句块1

[Else

语句块2]当条件表达式的值为True时,执行Then后面的语句块1,否则执行Else后面的语句块2条件语句块1语句块2TFIfThenElse缺省Else部分的分支结构-IF语句块IFIf

条件

Then语句块End

IfThen行IFIf

条件

语句块当条件表达式的值为True,执行Then后面的语句块,否则不做任何操作。条件语句块TFIfThenElse例:变量a,b均有值,要求:变量

a的值必须比变量b

小,否则交换变量a和b的值。分析:a<b时,两者值不变a>b时,两者的值交换If a>b

Thent

=aa

=

bb=

tEnd

Iftba也可改写成行IF语句,如下所示:If a>b

Then t

=

a

a

=

b:

b=

t312例:输入实数x,求下面的分段函数f(x)的值Private

Sub

Button1_Click(ByVal

sender

AsSystem.Object,

ByVal

e

As

System.EventArgs)

HandlesButton1.ClickDim

x,

y

As

Singlex

=

Val(TextBox1.Text)If

x

<=

4

Theny

=

1

-

x

^

2Elsey

=

(x

-4)^

(1

/

4)End

IfTextBox2.Text

=

yEnd

Sub分支结构练习格式:IIf(表达式,TruePart,FalsePart)IIF函数功能:如果表达式的值为真,则函数IIF返回表达式

TruePart的值,否则返回表达式FalsePart的值。

IIf函数是If…Then…Else结构的简洁表示例如,将x,y中大的数,放入Tmax变量中,可用:If

x>y

Then

Tmax=

x

Else

Tmax

=

y实现,也可用如下方法实现:Tmax

=

IIf(x>y,x,y)第24

页6.4

数据的多分支处理对于要先做判断再选择的问题就要使用分支结构,如下面例子:分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。IF嵌套If

表达式1

Then……If

表达式2

Then语句块1[Else语句块2]End

If……Else……If

表达式3

Then语句块3[Else语句块4

]End

If……End

If当要实现多分支时,可以在IF语句的语句块1或语句块2处再用IF语句,这样就是IF嵌套。语法格式:If

表达式1

Then……If

表达式2

Then语句块1Else语句块2End

If……ElseIf

表达式3

Then语句块3Else语句块4End

IfIf

表达式1

Then……If

表达式2

Then语句块1Else语句块2End

If……ElseIf

表达式3

Then语句块3Else语句块4End

IfEnd

If书写方式如下语法格式If

表达式1Then语句块1ElseIf

表达式2

Then语句块2…ThenElseIf

表达式n语句块n[Else语句块n+1]End

If可实现如下多分支结构表达式1语句块1语句块2表达式2语句块n语句块n+1TFTF表达式nTFelseElseifElseifThenIf例6.6

某商场促销采用购物打折的顾客一次购物金额:办法,即每位①在1000元以上者(含1000元),按7折②在500元以上者(含500元),按8.5折③在200元以上者(含200元),按9.5折④低于200元,不打折。。。。编程实现当输入购物金额时,并显示最终的需付金额。根据题目的表述,可以归纳如下式子,其中x表示购物金额,y表示需付的金额。Private

SubButton1_Click(ByVal

sender

AsSystem.Object,

ByVal

e

AsSystem.EventArgs)

HandlesButton1.ClickDim

x,

y

As

Singlex

=

Val(TextBox1.Text)If

x

>=

1000Theny

=0.7

*

xElseIf

x

>=

500

Theny

=0.85

*xElseIf

x

>=

200

Theny

=0.95

*xElsey

=

xEnd

IfTextBox2.Text

=

yEnd

Sub多分支结构举例例已知字符变量ch中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。If

UCase(ch)>="A"And

UCase(ch)<="Z"ThenMsgBox(ch

&

"是字母字符")ElseIf

ch

>="0"And

ch

<="9"ThenMsgBox(ch

&

"是数字字符")ElseMsgBox(ch

&

"是其他字符")EndIfx

=

aEnd

IfMsgbox("x="

&x)End

Sub下列程序执行后,变量X的值为(

)Private

Sub

Form1_Click(…-)…-.Dim

a,

b,

c,

x

As

Singlea

=100

:b

=

20

:c

=300If

b

>a

Thenc

=

a

:

a

=

b

:

b

=cEnd

IfIf

b

>

c

Thenx

=

bElseIf

a

>c

Thenx

=

cElseX=1006.4.2 Select

Case语句多分支情况还可以使用Select

Case语句实现。Select

Case语句结构格式如下:Select

Case<测试表达式>[Case<情况列表1>[<语句块1>]][Case<情况列表2>[<语句块2>]]……[Case

Else[<语句块n+1>]]End

Select<测试表达式>用于表示要进行判断的对象<情况列表>用于表示条件的分支情况,它可以是下面的表示法或其组合(各项之间以逗号间隔):<常量>;<下界>to<上界>;Is<关系运算符><表达式>要求<测试表达式>的类型和<情况列表>的类型一致。<情况列表>例子”1.

10,9“a”,”e”,”o”,”i”,”u”“

”,”

”,”2. 10to

353. Is>=

80Is

<

60Select

Case语句的执行过程为:将<测试表达式>的值分别和各个<情况列表>的各项进行比较,如相等或在其区间范围

中,则执行相应的语句块,执

行完后执行EndSelect后面的语句,如果没有一个<情况列表>的各项值符合要求,则执行

Case

Else对应的语句块(没有

CaseElse子句,则什么都不做),执行完后执行End

Select后面的语句。例:编写程序,当输入X的值后用Private

Sub

Button1_Click(ByVal_

senderSelect

Case语句计算输出Y的值。AsSystem.Object,ByVal

e

As

_System.EventArgs)

Handles

_Button1.ClickDim

x,

y

AsSinglex

=

Val(TextBox1.Text)Select

Case

xCase

Is

<

0y

=

xCaseIs

<=

10y

=

x

*

x

CaseIs

<=

20y

=

10Case

Elsey

=

0.5

*

x

+

20End

SelectMsgBox("y="

&

y)End

Sub例6.11通过文本框输入某学生某课程的百分制成绩(为整数),要求在弹出的消息框中按如下规则显示信息:成绩大于等于90分,显示成绩为“优秀”;成绩大于等于80分,小于90分,显示成绩为“良好”;成绩大于等于60分,小于80分,显示成绩为“合格”;成绩小于60分,显示成绩为“不及格”;良strResulCase

80To

89strResulCase

60To

79strResult

="合格"CaseElsestrResult

="不及格"End

SelectMsgBox("输入成绩为"

&

intMark

&

",评价为"

&strResult)End

SubPrivateSub

Button1_Click(ByValsender

AsSystem.Object,

ByVal

e

As

System.EventArgs)

HandlesButton1.ClickDimintMark%,

strResult$intMark

=

Val(TextBox1.Text)Select

Case

intMa

kCase

Is>=

90如果输入的成绩不在0~100之间,结果会如何?Private

Sub

Button1_Click(ByVal

sender

As

System.Object,

ByVal

eAs

System.EventArgs)

Handles

Button1.ClickDim

intMark%,

strResult$intMark

=

Val(TextBox1.Text)If

intMark

<

0

Or

intMark

>

100

ThenMsgBox("输入错!")ElseSelect

Case

intMark

\

10Case

9,

10strResult

="优秀"Case

8strResult

="良好"Case

6,

7strResult

="合格"Case

ElsestrResult

="不及格"End

SelectMsgBox("输入成绩为"&

intMark

&

",评价为"&

strResult)End

IfEnd

Sub6.5

循环结构当某件事情多次反复执行时,则需用循环来实现。如:计算S=1+2+3+……+100反复做加法。求p=n!=1*2*3*……*n反复做乘法。求π反复累加各项。等6.5

循环结构循环语句类型:循环次数已知的循环-计次循环For...Next循环语句;根据条件循环-条件循环Do...Loop循环语句[Step

步长]格式:For

循环控制变量

=初值To

终值语句块[Exit

For]语句块Next

[循环控制变量

]6.5.1

FOR…Next语句For…Next语句用于循环次数预知的循环结构。循环控制变量:为数值型变量,控制循环的次数。初值、终值、步长:均为数值型表达式步长可为正数,也可为负数。缺省时,步长为1循环体FOR循环的执行流程超过的意思为:步长>=0时为大于步长<0时为小于有下列两种情况循环体执行0次:初值<终值并且步长<0初值>终值并且步长>0步长为0时可能出现死循环。其他情况下循环体的执行次数可按下式计算:Int((终值-初值)/步长)+1循环变量=初值循环变量的值循环体循环变量=循环变量+步长T超过终值?F计算下列循环语句的次数For i=

5.5

to

3.5

step -0.5Int

(

(

3.5-5.5)/(-0.5))+1

=5For i=

3.5

to

5.5

step -0.5不执行循环体For i=

-3

to

20

step

0步长为0,死循环循环体内需要有exit

for

语句才可跳出该循环例intSum

=

0For

i

=

1To

100例6.12

求1~100之间的奇数之和。即要计算1+3+5+7+9+…+97+99

和。????Private

Sub

Button1_Click(senderAs

Object,

e

AsEventArgs)Handles

Button1.ClickDim

i,intSum

As

Integer‘累加器清0Step

2intSum=intSum+i

‘累加Next

iMsgBox(""11++2+3.+..+..9.9++9190=0=""

&intSum)End

Sub例编程输出10!。Private

Sub

Button1_Click(senderAs

Object,

e

AsEventArgs)Handles

Button1.ClickDim

i,intP

AsIntegerintP=1

‘累乘器清1For

i=1To

10intP=intP

*

i

‘累乘Next

iMsgBox(“10!="

&

intP)End

Sub例:求100以内能被3和7整除的所有正整数之和.要求打印出符合条件的正整数以及它们的和。PrivateSub

Button1_Click(ByVal

sender

AsSystem.Object,

ByVal

e

As

System.EventArgs)

HandlesButton1.ClickDim

sum,

i

As

IntegerTextBox1.Clear()sum

=0For

i

=1

To

100If

i

Mod

3

=

0

And

i

Mod

7

=

0

Thensum

+=

iTextBox1.Text

&=

i

&

vbCrLfEnd

IfNext

iLabel1.Text

=

"Sum="&

sumEnd

SubDims%,i%s

=1Fori=1To10s

=s*iIfi=2ThenExit

ForEnd

IfNext

iMsgbox("s="

&

s

&

",i="

&

i)可以通过ExitFor语句终止循环,终止循环后,循环控制变量的值保持退出时的值不变。s=2,i=2例:判断x是否是素数?注:素数又称质数。指仅能被1和此整数自身整除的大变量flag表示是否能被某数整除Private

Sub

Button1_Click(ByVal

sender

As

System.Object,

ByVal

eAs

System.EventArgs)

Handles

Button1.ClickDim

x,i

As

Integer,

flag

As

Boolean于或等x于=

2V的al(整Tex数tBo。x1.Text)判别方f法lag是=

:True

'假设x是素数For

i

=

2

To

x

-

1对于数x

从If

ix=2M,od

3i

,=

…0

,Thexn-1判别x能否被i整除,只要有一个能整除,fxla就g=不F是als素e数'x不,是否素则数,x是将f素lag数置为。FalseExit

ForEnd

IfNext

iIf

flag

ThenMsgBox(x

&

"是素数!")ElseMsgBox(x

&

"不是素数!")End

IfEnd

Sub6.5.2

Do…Loop语句问题:有一张厚度为0.1

,假设可以一直对折,对折多少次之后,其厚度就能超过珠穆朗玛峰的高度8848米?循环次数?循环次数需要根据条件来判断--循环次数未知使用Do…Loop语句6.5.2DO…Loop语句Do…Loop语句用于循环次数未知的循环结构。格式1:Do

[{While|Until

}条件]语句块[Exit Do

][语句块]Loop格式2:Do语句块[Exit Do

][语句块]Loop

[{While|Until

}条件]特点:先执行后判断,循环体至少执行一次循环次数≥1特点:先判断后执行,循环体可能一次都不执行循环次数≥0。While条件:条件结果为True(或非0)时执行循环体;为False(或0)时结束循环Until条件: 条件结果为True(或

非0)时结束循环体;为False(或0)时执行循环例例6.12

求1~100之间的奇数之和。????PEE即要计算1+3+5+7+9+…+97+99

和。Private

Sub

Button1_Click(sender

As

Object,e

AsEventArgs)Handles

Button1.ClickDim

i,intSum

As

Integer‘累加器清0intSum

=

0i=1dointSum=intSum+i

‘累加i=i+1loop

until

i>100MsgBox("1+2+...+99+100="

&

intSum)EndSub珠穆朗玛峰高度:8848米例:将厚度为0.5

张对折多少次后,其总厚度可超过珠穆朗玛峰的高度?--思考:需要几个变量?变量:num

为折纸的次数,n为高度Dim num%,

n!n=0.5e-3num=0Do

until n>

8848

(do

while

n<=8848)n=2*nnum=num+1LoopMsgbox(“折叠次数为“&

num)6.5.3

多重循环在一个循环体内又包含了另一个完整的循环称为循环的嵌套。各种循环可以相互嵌套。注意:避免循环交叉Dim

i%,

j%

Dim

n%,

m%,

k%m

=0: k

=0For

i

=1

To5k

=

k+

1

n

=

0For

j

=

1

To

3n

=n

+1m

=m

+1Next

jNextiDim

i%,

j%

Dim

n%,

m%,

k%m

=0: k

=0For

i=1To5k

=k

+1n

=0

j=1do

while

j<=3n

=n

+1m

=m

+1j=j+1loopNext

iFor i=1

To

10For

j=1

To

20…Next

jNext

iFor i=1

To

10…Next

iFor i=1

To

10…Next

i对于循环的嵌套,要注意以下事项:内循环变量与外循环变量不能同名;外循环必须完全包含内循环,不能交叉;正确小技巧:Next后不写循环变量名,可避免循环交叉。循环嵌套的执行过程可按钟表的指针走动过程理解。例:输出矩形的九九乘法表分析:如此,可写出基本框架:ji重循环:解决此类问题的一般规律是利外循环控制行内循环控制列九九表可看作是由字符组成的平面图形。Private

Sub

Button1_Click(ByVal

sender

AsSystem.Object,

ByVal

e

As

System.EventArgs)Handles

Button1.ClickDim

row,

col

As

IntegerDim

s

As

String=

""

For

row

=1

To

9For

col

=

1

To

9s

&=",

row,

col,String.Format("{0,1}*{1,1}={2,2}row

*

col)Next

col'vbCrLf用来控制换行s

&=vbCrLfNext

rowLabel1.Text

=

sEnd

Sub注释语句注释以REM开头,用英文标点的单引号“'”引导注释内容。Exit语句在VB.Net中,有多种形式的Exit语句,用于退出某种控制结构的执行。Exit的形式如下:Exit

For、Exit

Do、Exit

Sub、Exit

Function等。End语句独立的End语句用于结束一个程序的运行,它可以放在任何事件过程中。6.6

其他语句6.7

综合应用计算π的近似值,π的计算公式为:•••①分别输出当n=10、100、1000时的结果,比较该公式的收敛程度。分析:运算结果是什么?--每项的乘积思考:1.谁是循环变量?2.循环变量的初值3.循环变量每次变化的值4.循环结束的条件

5.循环体内的语句6。乘积的初始值22

42

621

3

3

5

5

7

(2n

1)

(2n

1)(2n)2π

2

...Private

Sub

Button1_Click(ByVal

sender

AsSystem.Object,

ByVal

e

As

System.EventArgs)Handles

Button1.ClickDim

pi,

p

As

SingleDim

n,

k

AsIntegerpi

=

2n

=

Val(TextBox1.Text)For

k

=

1

To

np

=

(2

*

k)

^

2/

((2

*

k

-

1)

*(2

*

k+

1))pi

*=

p

Next

Label3.Text

=piEnd

Sub62例:编一程序,显示出所有的水仙花数.所谓水仙花数,是指一个3位数,其各位数字立方和等于该数字本身.例如,153是水仙花数,因为153=13+53+33

。变量定义:a

百位,b

十位

c

个位

m

为3位的数方法1:分离三位数Private

Sub

Button1_Click(ByVal

sender

As

System.Object,ByVal

e

As

System.EventArgs)

Handles

Button1.ClickDim

a,

b,c,

m

As

IntegerLabel1.Text="水仙花数为:"&

vbCrLfFor

m=100

To

999a

=m

\

100b

=

(m

Mod

100)

\

10c

=m

Mod10'分离百位数

'分离十位数

'分离个位数If

m

=a^

3+

b^3

+c

^3

ThenLabel1.Text

=

Label1.Text&

m

&

vbCrLfEndIfNext

mEnd

Sub方法

温馨提示

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

评论

0/150

提交评论