新Visual Basic程序设计教程 华东交通大学教材 专著 基金资助项目 教学课件 熊李艳 周美玲 第5章 循环结构化程序设计.pptVIP

  • 10
  • 0
  • 约7.55千字
  • 约 46页
  • 2016-10-26 发布于广东
  • 举报

新Visual Basic程序设计教程 华东交通大学教材 专著 基金资助项目 教学课件 熊李艳 周美玲 第5章 循环结构化程序设计.ppt

学习导读 第五章 循环结构化程序设计 With语句 形式: With 对象 语句块 End With 用于对某个对象执行一系列语句,而不用重复该对象名 例:用With语句设置标签MyLabel的多个属性 With MyLabel .height=1000 ‘属性前的“.”不能省略 .width=1500 .FontSize=20 .caption=“This is mylabel“ End With 形式:Go To {标号|行号} 作用:无条件转移到标号或行号指定的地方。 例:求1+2+3+4+…+100。 Dim S As Single,I As Integer S=0 ‘累加前变量S赋初值为0 I=1 PP: S=S+I ‘累加求和  I=I+1 If I=100 Then GoTO PP Print 1+2+3+…100=; S GO TO语句 建议不使用 ★求累计求和、乘积 ★求素数 ★求公约数 ★穷举法 ★求最大值、最小值 5.4 常见算法 累加/连乘 例求1!+2!+3!+4!+5! m:阶乘 S:和 为什么在内 外之间要 m=1? 求素数 判断一个数是否为素数? For I=2 to m-1 改成 For i=2 to sqr(m) 如何减少内循环次数? 求公约数 求任意两个整数的最大公约数 If m n Then t = m: m = n: n = t r=m mod n Do While (r 0) m=n n=r r= m mod n Loop Print 最大公约数=, n m n r 14 6 2 6 2 0 用辗转相除法的算法 用辗转相减法的算法 Do While m n If m n Then m = m - n Else n = n - m End If Loop Print m m=m-n mn m n 14 6 8 6 2 6 2 4 2 2 n=n-m nm m、n为公约数 m=n 穷举法 也称“枚举法”,其基本算法思想是:将各种可能出现的情况一一进行测试,判断是否是符合要求的解,这是一种在没有其它办法的情况的方法,是一种最“笨“的方法,但对一些无法用解析法求解的问题中能奏效。 例:将一张面值为100元的人民币等值换成100张5元 、1元和0.5元的零钞,要求每种零钞 不少于1张,问有几种组合? X+Y+Z=100 5*X+Y+0.5*Z=100 循环次 数减少 算法思想: 一般先假设一个较小的数为最大值的初值,若无法估计较小的值,则取第一个数为最大值的初值,然后将每一个数与最大值比较,若该数大于最大值,则将该数替换为最大数,依次逐一比较。 求最大、最小值 程序代码: Private Sub Command1_Click() Dim x%, max%, min%, sum%, ave% sum = 0: max = 50: min = 100 For i = 1 To 20 x = Int(Rnd * 100) + 50 Picture1.Print x; If i Mod 5 = 0 Then Picture1.Print sum = sum + x If x max Then max = x If x min Then min = x Next i ave = sum / 20 Picture1.Print Picture1.Print max; min; ave End Sub 算法思想: 从初值出发,归纳出新值与旧值间直到最后值为止存在的关系,从而把一个复杂的计算过程转化为简单过程的多次重复,每次重复都从旧值的基础上递推出新值,并由新值代替旧值。 递推迭代 例:假定一对大兔子每月能生一对小兔子,而小兔子过一个月就长大了可以开始生小兔子,问在一年内一对大兔子可以繁殖出多少对大兔子? 实验五 思考: 比较几种循环的异同,各有什么特点?在什么情况下

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档