《江苏VB 第五章 习题课(新).ppt》由会员分享,可在线阅读,更多相关《江苏VB 第五章 习题课(新).ppt(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 习题课习题课阅读下列程序,写出程序输出结果阅读下列程序,写出程序输出结果Dim a As Integer,b As Integera=1:b=0Do While a=20 Then Exit ForNext iPrint i,p答案答案:6 5Dim p As Integer,i As Integer,n As Integerp=2:n=20For i=1 To n Step p p=p+2 n=n-3 i=i+1 If p=10 Then Exit ForNext IPrint I,p,n【答案答案】:11 10 8设设a,b,c都是同一类型变量,并分别赋予不同大都是同一类型变量,并分别赋
2、予不同大小的值,设计一个算法,使得执行的结果为小的值,设计一个算法,使得执行的结果为abcIf a b ThenIf a b Then t=a:a=b:b=t t=a:a=b:b=tEnd IfEnd IfIf a c ThenIf a c Then t=a:a=c:c=t t=a:a=c:c=tEnd IfEnd IfIf b c ThenIf b=i Then List1.AddItem i End IfNext i例题:将一个二进制的原码转换成例题:将一个二进制的原码转换成反码反码Dim Source As String,i As Integer Source=Text1.Text If
3、 Mid(Source,1,1)1 Then Text2.Text=正数没有反码正数没有反码 Else For i=2 To Len(Source)If Mid(Source,i,1)=1 Then Mid(Source,i,1)=0 Else Mid(Source,i,1)=1 End If Next i Text2.Text=Source End If编写程序,求两个正整数的最小公倍数和最编写程序,求两个正整数的最小公倍数和最大公约数大公约数Dim a As Integer,b As Integer,gb As Integera=Text1.Textb=Text2.Textgb=aDo W
4、hile gb Mod a 0 Or gb Mod b 0 gb=gb+1LoopPrint gbDim a As Integer,b As Integer,gy As Integera=Text1.Textb=Text2.TextFor gy=a To 1 Step-1 If a Mod gy=0 And b Mod gy=0 Then Print gy Exit For End IfNext gy穷举法穷举法穷举法:就是将可能出现的各种情况一一测试,穷举法:就是将可能出现的各种情况一一测试,判断是否判断是否 满足条件满足条件例题:百钱买百鸡例题:百钱买百鸡假设:小鸡假设:小鸡5角角/只,公
5、鸡只,公鸡2元元/只,母鸡只,母鸡3元元/只,现有只,现有100元钱要买元钱要买100只鸡,编只鸡,编程列出所有可能的购鸡方案程列出所有可能的购鸡方案For x=0 To 33 For y=0 To 50 If 3*x+2*y+0.5*(100-x-y)=100 Then Print x,y,z End If Next y Next x例题:找出所有的水仙花数例题:找出所有的水仙花数水仙花数是指一个水仙花数是指一个3位数,其各个数字的立方位数,其各个数字的立方和等于数字本身。和等于数字本身。n 分析:用三种循环分析:用三种循环n个位个位x的可能取值为的可能取值为09n十位十位y的可能取值为的可
6、能取值为09n百位百位z的可能取值为的可能取值为19,n 看三个位置上的数是否满足如下看三个位置上的数是否满足如下条件,若满足,即是其中一个解条件,若满足,即是其中一个解n x3+y3+z3=z100y10 x Dim x As Integer,y As Integer,z As IntegerFor x=1 To 9 For y=0 To 9 For z=0 To 9 If x 3+y 3+z 3=100*x+10*y+z Then Print 100*x+10*y+z;是水仙花数是水仙花数 End If Next z Next yNext xDim m As Integer,s As In
7、teger,i As Dim m As Integer,s As Integer,i As Integer,m1 As IntegerInteger,m1 As IntegerFor m=100 To 999For m=100 To 999 m1=m m1=m s=0 s=0 For i=1 To 3 For i=1 To 3 s=s+(m1 Mod 10)3 s=s+(m1 Mod 10)3 m1=m1=m1m1 10 10 Next i Next i If m=s Then If m=s Then Print m;Print m;是水仙花数是水仙花数 End If End IfNext m
8、Next m递推法递推法递推法:就是将一个复杂的计算过程转化为简递推法:就是将一个复杂的计算过程转化为简单过程的多次重复。单过程的多次重复。例题:猴子吃桃子例题:猴子吃桃子小猴在一天摘了若干个桃子,当天吃掉小猴在一天摘了若干个桃子,当天吃掉一半多一个,以后每天吃掉剩下的桃子一半多一个,以后每天吃掉剩下的桃子的一半多一个,到第七天要吃时只剩下的一半多一个,到第七天要吃时只剩下一个了,问小猴那天共摘了几个桃子一个了,问小猴那天共摘了几个桃子Dim x As Integer,x1 As IntegerDim i As Integerx1=1For i=1 To 7 x=(x1+1)*2 x1=xNe
9、xt iPrint x例题:例题:编写程序,用牛顿迭代法求方程的根编写程序,用牛顿迭代法求方程的根算法说明算法说明:设要求解的方程为设要求解的方程为f(x)=0,并有一个不够精确,并有一个不够精确的初始根的初始根x 0,则有:,则有:x n+1=xn-f(xn)/f(xn)n=0,1,2,3,上式称为牛顿迭代式,式中上式称为牛顿迭代式,式中f(x)是)是f(x)的)的导函数。利用这个式,可以依次求出导函数。利用这个式,可以依次求出 x n,上,上|x n+1-xn|=即为要求的根即为要求的根例题:例题:用牛顿迭代法求方程的根用牛顿迭代法求方程的根 x*ex-1=0Private Sub Command1_Click()Dim x As Single,x1 As Single,eps As Single x=InputBox(输入初始值输入初始值x:,牛顿迭代法牛顿迭代法)eps=InputBox(输入允许误差输入允许误差eps:,牛顿迭代法牛顿迭代法)Do x1=x x=x1-(x1*Exp(x1)-1)/(Exp(x1)*(x1+1)Loop Until Abs(x-x1)=eps Text1.Text=Str(x)End Sub
限制150内