内容正文:
第二单元 算法的程序实现
《算法与程序设计》
在VB程序设计中,经常会遇到像“乘法口诀表”或者“杨辉三角”之类的问题,这类问题除了必要的计算外,一般会设及换行、空格控制,以及输出时机等问题,一般都需要使用两重循环,下面通过学习以下的典型实例,请同学注意掌握解决该类问题的技巧和诀窍。
课时40 VB字符输出
例1 [2019浙江模拟]《孙子算经》中有一个“物不知其数”的问题,某数以3除余2,以5除余3,以7除余2。下面的VB程序用于求1000以内满足该条件的自然数及个数,请在程序划线处填入合适的表达式。
Private Sub Command1_Click()
Dim c As Integer, n As Integer
c = 0 ∶ n = 9
Do While n <= 1000
If n Mod 3 = 2 And n Mod 5 = 3 Then
List1.AddItem Str(n)
c = ____(1)____
End If
n = ____(2)____
Loop
Label1.Caption = ”1000以内满足条件的数有” & Str(c)& ”个”
End Sub
【答案】(1)c + 1 或等同表达式 (2)n = n + 7 或等同表达式
例2 [2019温州模拟]如图 1 所示,这是一个城市街道简图,小明从 A 点出发,到达 B 点,如果在每一个路口只能向右或向上走(0 表示向上走,1 表示向右走),问小明有多少条行走路线,并请输出每条路线。程序界面如图 2 所示。
图1 图2
算法分析:从 A 点到 B 点共有 7 个路口,即可以有一个 7 位二进制数表示所走路线。观察以上路线,枚举所有满足路线特征的 7 位二进制数,再去掉不满足的二进制数即可。
(1)图 1 所示路线对应的十进制数为________。
(2)实现上述功能的 VB 程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim b As String, t As Integer, i As Integer, c As Integer, d As Integer
t = 0 '可走路线计数
For i = 15 To 120 '所有可走路线用十进制枚举
d = i
c = 0