第五章 控制结构编程练习.docx
- 文档编号:10331073
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:46
- 大小:1.55MB
第五章 控制结构编程练习.docx
《第五章 控制结构编程练习.docx》由会员分享,可在线阅读,更多相关《第五章 控制结构编程练习.docx(46页珍藏版)》请在冰豆网上搜索。
第五章控制结构编程练习
第5章控制结构程序设计
No.1
绿色文字,用上引号隔开的,是注释,不需要写,起到说明作用。
No.2
设置text1的maxlength设置为3
方法1程序代码:
方法2程序代码:
PrivateSubCommand1_Click()
DimaAsInteger‘如果思考成熟的话,当然可以不定义那么多变量
a=Val(Text1.Text)‘但往往我们办不到。
Text4.Text=a\100‘求百位数
Text3.Text=(aMod100)\10‘求十位数
Text2.Text=aMod10‘求个位数
EndSub
方法3程序代码:
PrivateSubCommand1_Click()’往往我们做不到先知先觉,所以定义一些变量也无妨。
DimaAsInteger
a=Val(Text1.Text)
b=a\100‘求百位数
c=aMod10‘求个位数
d=(a-c-100*b)\10‘求十位数
Text2.Text=b
Text3.Text=d
Text4.Text=c
EndSub
No.3
No.4
方法1程序代码:
一般来说,题目都提供了判断的规则。
需要完成的,是如何接近这个规则。
取字符mid()函数,绝对是一个很方便的手段。
方法2程序代码:
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger,cAsInteger,dAsInteger
a=Val(Text1.Text)
b=a\100‘用数学方法取出个位,十位,百位上的数
c=(aMod100)\10
d=aMod10
Ifa=b^3+c^3+d^3Then
Label1.Caption="是水仙花数"
Else
Label1.Caption="不是水仙花数"
EndIf
EndSub
No.5
方法1程序代码
PrivateSubCommand1_Click()
DimaAsInteger,iAsInteger,sAsLong,sumAsLong
a=Val(Text1.Text)
Fori=0To5
s=s+a*10^i
sum=sum+s
Nexti
Text2.Text=sum
EndSub
方法2程序代码
PrivateSubCommand2_Click()
DimaAsInteger,
a=Val(Text1.Text)
Text2.Text=a*(1+11+111+1111+11111+111111)
EndSub
选择结构编程
No.6
PrivateSubCommand1_Click()
DimxAsDouble,y#‘熟练掌握选择的几种结构,单分支,双分支,多分支,以及selectcase
x=Val(Text1.Text)
Ifx<10Then
y=x-1
ElseIfx<20Then
y=2*x-1
Else
y=3*x-1
EndIf
Text2.Text=y
EndSub
No.7
PrivateSubCommand1_Click()
DimaAsSingle,bAsSingle,cAsSingle
a=Val(Text1.Text)‘因为等下要进行数学大小比较,所以转换类型。
b=Val(Text2.Text)
c=Val(Text3.Text)
Ifa<=0Orb<=0Orc<=0Then‘选择结构的几个条件如何写,能否构成并列关系,是重点。
Text4.Text="非法数据"
ElseIfa+b>cAndb+c>aAnda+c>bThen
Text4.Text="能"
Else
Text4.Text="否"
EndIf
EndSub
No.8
方法1程序代码:
策略:
总体来说,先比较两个。
比较大的,令他暂时为max;比较小的,令他暂时为min。
然后再把第三个c跟目前的max比较,跟目前的min比较。
PrivateSubCommand1_Click()
DimmaxAsInteger,minAsInteger
A=Val(Text2.Text)
B=Val(Text2.Text)
C=Val(Text2.Text)
max=a
min=max
Ifb>maxThenmax=b
Ifb Ifc>maxThenmax=c Ifc Text4.Text=max Text5.Text=min EndSub 方法2程序代码: PrivateSubCommand1_Click() Dima%,b%,cAsInteger,max%,min% a=Val(Text1.Text) b=Val(Text2.Text) c=Val(Text3.Text) Ifa max=b min=a Else'a>b max=a min=b EndIf Ifc>maxThenmax=c Ifc Text4.Text=max Text5.Text=min EndSub 方法3程序代码: PrivateSubCommand1_Click() Dima%,b%,cAsInteger,max%,min% a=Val(Text1.Text) b=Val(Text2.Text) c=Val(Text3.Text) Ifa>bThen max=a Else'b>a max=b EndIf Ifc>maxThenmax=c Ifa>bThen min=b Else min=a EndIf Ifmin>cThenmin=c Text4.Text=max Text5.Text=min EndSub 方法4程序代码: 最复杂的一种 PrivateSubCommand1_Click() Dima%,b%,cAsInteger,max%,min% a=Val(Text1.Text) b=Val(Text2.Text) c=Val(Text3.Text) Ifa Ifb max=c min=a Else'b>c Ifa>cThen max=b min=c Else'a max=b min=a EndIf EndIf Else'a>b Ifa max=c min=b Else'a>c Ifb>cThen max=a min=c Else max=a min=b EndIf EndIf EndIf Text4.Text=max Text5.Text=min EndSub No.9 PrivateSubCommand1_Click() DimaAsInteger a=Val(Text1.Text) IfaMod4=0AndaMod100<>0OraMod400=0Then‘根据题意书写表达式 Label2.Caption="闰年" Else Label2.Caption="非闰年" EndIf EndSub No.10 PrivateSubCommand1_Click() '''不得删除本行注释 DimnAsInteger n=Val(Text1.Text) IfnMod4=0AndnMod100<>0OrnMod400=0Then Text2.Text=366 Else Text2.Text=365 EndIf EndSub 循环结构编程 No.12 PrivateSubCommand1_Click() DimaAsInteger a=Val(Text1.Text) Fori=1Toa Sum=Sum+i^2‘通常是sum=sum+i,但是,并不是说第i项就一定是i,本题第i项就是i2 Next Text2.Text=Sum EndSub No.13参考第六章-》单选按钮 由于是两个单选框,所以互相排斥,所以option.value=true的时候,肯定option.value=false.因此可以建立双分支结构. 方法2程序代码: PrivateSubCommand1_Click() '''不得删改本行注释 DimnAsInteger,iAsInteger,sumAsLong n=Val(Text1.Text) sum=0 IfOption1.Value=TrueThen Fori=1TonStep2 sum=sum+i Nexti Else Fori=2TonStep2 sum=sum+i Nexti EndIf Text2.Text=sum EndSub 方法3程序代码: PrivateSubCommand1_Click() '''不得删改本行注释 DimnAsInteger,iAsInteger,sumAsLong n=Val(Text1.Text) sum=0 IfOption1.Value=TrueThen A=1 Else A=2 EndIf Fori=atonstep2 Sum=sum+i Nexti Text2.Text=sum EndSub No.14 方法1: PrivateSubCommand1_Click() DimiAsInteger Fori=1To200 IfiMod3=0AndiMod7=0Then Text1.Text=Text1.Text&""&i‘第二个Text1.Text代表过去的积累,第一个代表新的总的。 EndIf Next EndSub 方法2 PrivateSubCommand1_Click() DimiAsInteger Fori=1To200 IfiMod3=0AndiMod7=0Then Text1.Text=Text1.Text&space (2)&i‘space (2)代表输出2个空格。 EndIf Next EndSub No.15 逐一判断,因为要逐一,所以要循环;因为要判断,所以用选择。 PrivateSubCommand1_Click() DimiAsInteger,nasinteger,sumasinteger N=val(text1.text) Fori=1Ton IfiMod3=0Then sum=sum+i EndIf Next Text2.text=sum EndSub No.16 PrivateSubCommand1_Click() DimiAsInteger Fori=1To100 IfiMod9=0Then Text1.Text=Text1.Text&""&i^2 EndIf Next EndSub No.17 PrivateSubCommand1_Click() DimiAsInteger,nasinteger,sumasinteger N=val(text1.text) Sum=1‘累乘的sum,需要事先设置为1,否则sum默认为0,每次累乘的结果都为0。 Fori=1Ton IfiMod7=0Then sum=sum*i EndIf Next Text2.text=sum EndSub No.18 策略: 先生成一个,令他为max,再陆续生成9个。 每生成一个a,就和之前的max和min比较。 比max大,把max里面的值改为当前这个a;比min小,把min里面的值改为当前这个a。 PrivateSubCommand1_Click() DimiAsInteger,minAsInteger,maxAsInteger,aAsInteger max=Int(Rnd*101) min=max Fori=1To9 a=Int(Rnd*101) Ifa>maxThenmax=a Ifa Next Text1.Text=max Text2.Text=min EndSub No.21 PrivateSubCommand1_Click() Dimn,iAsInteger n=int(Text1.Text) fori=2ton-1 ifnmodI=0thenexitfor next ifi<=n-1then‘或者本语句写成ifi=nthen Label2.Caption="非质数"‘相应的,这边是“质数” Else Label2.Caption="质数"‘相应的,这边是“非质数” Endif EndSub PrivateSubCommand1_Click() Dimn,iAsInteger n=Val(Text1.Text) Fori=2Ton-1 IfnModi=0Then Label2.Caption="非质数" Else Label2.Caption="质数" EndIf Nexti EndSub 错误的编程方式! ~ 因为大部分n/(n-1)不能整除。 那么,n=14时,在循环中一直到i=13。 最终14mod13,反而是质数 No.22 PrivateSubCommand1_Click() '''不得删除本行注释,参考课本P96 DimmAsInteger,nAsInteger,r% m=Val(Text1.Text) n=Val(Text2.Text) r=mModn DoWhiler<>0 m=n n=r r=mModn Loop Label3.Caption=n EndSub No.23 方法1程序代码: PrivateSubCommand1_Click() '''不得删改本行注释 DimiAsInteger,jAsInteger,mAsInteger,sAsLong Fori=Len(Text1.Text)To1Step-1 m=val(Mid(Text1.Text,i,1)) s=s+m*2^j‘二进制转换为十进制,规定用位权展开式。 寻找多项式的规律, j=j+1 Nexti Text2.Text=s EndSub 方法2程序代码: PrivateSubCommand1_Click() '''不得删改本行注释 DimiAsInteger,mAsInteger,sAsLong a=Len(Text1.Text)‘两处要用到长度,所以就定义一个变量a来接收 Fori=1ToaStep1 m=Val(Mid(Text1.Text,i,1)) s=s+m*2^(a-i)'二进制转换为十进制,规定用位权展开式。 寻找多项式的规律, Nexti Text2.Text=s EndSub No.25 方法1: PrivateSubCommand1_Click() Fori=1ToLen(Text1.Text)step1 a=Mid(Text1.Text,i,1) Text2.Text=a+Text2.Text Next EndSub 方法2: PrivateSubCommand1_Click() Fori=Len(Text1.Text)To1step-1 a=Mid(Text1.Text,i,1) Text2.Text=Text2.Text+a Next EndSub 方法3: PrivateSubCommand1_Click() I=1 whilei<=Len(Text1.Text) a=Mid(Text1.Text,i,1) Text2.Text=Text2.Text+a I=i+1 Next EndSub No.26 打开工程文件csnx.vbp,添加适当的事件过程代码,实现以下功能: 单击“产生”按钮,随机产生一个四位的正整数,并显示在文本框text1中;单击“计算”按钮,在文本框text2中显示该数各位数字之和。 策略: 逐一取字符,转换成数值型,进行累加 PrivateSubCommand1_Click() Text1.Text=Int((9999-1000+1)*Rnd+1000) EndSub PrivateSubCommand2_Click() '''不得删改本行注释 DimnAsInteger,iAsInteger,sAsInteger Fori=1To4 s=s+Val(Mid(Text1.Text,i,1))‘取字符的结果是字符型数据,要经过val后,才能变成数值 Nexti Text2.Text=s EndSub No.27 策略: ●取字符(从第2个字符开始取),转换成数值型,进行累加, ●取出第1个字符,与上面的累和比较,是否相等。 是,文本框就是’合法会员”;是,文本框就是’非法会员” PrivateSubCommand1_Click() '''不得删除本行注释 DimiAsInteger,nAsInteger,sAsInteger IfLen(Text1.Text)=6andval(text1.text)>=100000Then‘排除两种情况: 输入不够6位;输 Fori=2To6‘入的8542ab这种样式的。 因为val(8542ab)的结果是8542。 Val函数的特点 n=val(Mid(Text1.Text,i,1)) sum=sum+n Nexti Ifval(Mid(Text1.Text,1,1))=sumMod10Then‘题目意思是sum可能是两位数。 求个位数 Text2.Text="合法会员"‘那么632146也是合法的,6等于16的个位数 Else Text2.Text="非法会员" EndIf Else Msgbox“请你输入6位会员号” Endif EndSub No.28 策略: ●取出第一个字符max,假定它是最大的字符。 ●利用循环,从第二个字符开始逐一取字符A。 在循环内嵌套选择语句,A是否比max大。 是,就把a的值赋给max。 方法1程序代码: DimmAsString,iAsInteger,sAsString max=Mid(Text1.Text,1,1)‘字符比较,默认按照ASCII比较。 Fori=2ToLen(Text1.Text) s=Mid(Text1.Text,i,1) Ifs>maxThenmax=s Nexti Label2.Caption=max EndSub 方法2程序代码: DimmAsString,iAsInteger,sAsString max=Mid(Text1.Text,1,1)‘字符比较,默认按照ASCII比较。 Fori=2ToLen(Text1.Text) s=Mid(Text1.Text,i,1) Ifasc(s)>asc(max)Thenmax=s Nexti Label2.Caption=max EndSub No.28’可参考课本P160-》Function过程 OptionExplicit DimmAsInteger,nAsInteger PrivateSubCommand1_Click() '''不得删除本行注释 n=Val(Text1.Text) m=Val(Text2.Text) Text3.Text=Fact(m)/(Fact(n)*Fact(m-n)) EndSub '################################################### FunctionFact(kAsInteger)AsDouble DimiAsInteger,FAsDouble F=1 Fori=1Tok F=F*i Nexti Fact=F EndFunction '###
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五章 控制结构编程练习 第五 控制 结构 编程 练习