课件19张PPT。枚举算法小明是一个动漫迷,昨天他约了几个动漫社同学一起到机房里举行一个社团活动,可是粗心的小明去老师那拿了一串钥匙回来准备开门时,却忘记了到底哪一把才是机房的钥匙。假设这串钥匙一共有10把。找钥匙怎样才能找到正确的钥匙来开门?
问题:找钥匙的过程2.拿出第二把钥匙, 试验第二把钥匙能否开门;1.拿出第一把钥匙, 试验第一把钥匙能否开门;3.拿出第三把钥匙, 试验第三把钥匙能否开门;10.拿出第十把钥匙, 试验第十把钥匙能否开门。······列举检验枚举法枚举算法就是按照问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举的过程中,根据问题的条件对各解进行逐个检验,从中挑选出符合条件的解,舍弃不符合条件的解。一一列举 逐个检验枚举算法的概念在社团活动上,小明提议大家来玩数7的游戏。
游戏规则:从1开始数起,每个人数一个数,
凡是遇到7的倍数就要喊“过”,
这样一直数到100为止。任务:帮小明找出1~100所有要喊“过”的数!数7游戏分析:列举检验用变量 i 表示要列举的自然数。列举范围:1 ~ 100检验条件:i 能否被7整除。在列举过程中要既不遗漏,又不重复。注意:问题分析开始
结束NNYYi<=100i mod 7=0i=i+1i=1输出i列举范围:1 ~ 100检验条件:i 能否被7整除。用变量i表示要列举的自然数。流程图开始
结束NNYYi<=100i mod 7=0i=i+1i=1输出i列举范围:1 ~ 100检验条件:i 能否被7整除。用变量i表示要列举的自然数。流程图开始
结束NNYYi<=100i mod 7=0i=i+1i=1输出i一一列举逐个检验(循环结构)(分支结构)循环中嵌套分支程序结构分析开始
结束NNYYi<=100i mod 7=0i=i+1i=1输出i程序代码For i=1 To 100
If i mod 7=0 Then
print i
End If
Next i问:VB中哪些对象可以输出?课堂实践——数7游戏程序运行效果点击运行
根据运行效果完成 “学习任务单 实践任务一”
思考:若希望运行效果如下右图所示,该如何修改程序?开始
结束NNYYi<=100i mod 7=0i=i+1i=1输出iFor i=10 To 99
If i mod 7=0 Then
print i
End If
Next i拓展1、找出两位正整数中要
喊“过”的数。i=10i<=99开始
结束NNYYi<=99i mod 7=0i=i+1i=10输出iFor i=10 To 99
If i mod 7=0 Or i mod 10 =7 Then
print i
End If
Next i拓展2、小明提议增加难度,逢末位为“7”的数字也要喊“过”,请找出两位正整数中要 喊“过”的数。i mod 7=0 Or i mod 10=7枚举算法的设计步骤确定列举范围 一一列举
明确检验条件 逐一验证
分析流程图 确定程序结构不遗漏 不重复注意:生活中的枚举算法实例挑烂苹果
警察审案
破译密码
……课堂练习1:根据流程图将程序补充完整。c = 0For j=1 To 2004If ThenEnd IfNext jText1.Text = Str(C)j Mod 3=0c = c +1开始计数器置初值:c 0j 100j<=200?j不是3和7的倍数?计数器c计数
c c+1输出:j的值j j+1YYN输出:计数器c的值结束Nc = 0For j= 100 To 200If Thenc = c + 1Print jEnd IfNext j Text1.Text = Str(c)课堂练习2:根据流程图将程序补充完整。j Mod 3<>0 And j Mod 7<>0小结:1.枚举算法的概念2.枚举算法的设计步骤3.枚举算法的程序特点Thanks