第14节 枚举算法 学案(含答案)

上传人:可** 文档编号:103408 上传时间:2019-12-01 格式:DOCX 页数:7 大小:67.80KB
下载 相关 举报
第14节 枚举算法 学案(含答案)_第1页
第1页 / 共7页
第14节 枚举算法 学案(含答案)_第2页
第2页 / 共7页
第14节 枚举算法 学案(含答案)_第3页
第3页 / 共7页
第14节 枚举算法 学案(含答案)_第4页
第4页 / 共7页
第14节 枚举算法 学案(含答案)_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、第14节枚举算法学习目标知识条目考试要求考试属性考试形式枚举算法的含义应用学考加试客观主观枚举算法的应用应用学考加试主观1If语句和For语句If语句在枚举算法中一般用块结构居多,形式为:If条件Then语句块1Else语句块2Else语句可以没有End IfFor语句结构形式为:For循环变量初值To终值Step步长循环体语句Next循环变量2枚举算法的基本思想(1)定义:根据求解问题的内容,一一列举出该问题所有可能的情况,并根据限定的条件逐个判断,挑出符合条件的解。(2)设计枚举算法的要点:正确的解不能遗漏、不能重复,在此前提下供选择判断的范围要可能小。(3)枚举算法一般结构:For循环嵌

2、套选择语句。 枚举算法中可能的解的范围一般较明确,适合用For语句,关键判断用If语句实现。3枚举算法的应用(1)使用枚举算法时,可能解的范围是非常明确的,可能解的个数也是有限的,否则无法用此算法。(2)枚举算法应用举例:猜密码、寻找有特定要求的数字、最优方案等。例1以下问题不适合枚举算法的是()A破解qq密码B有一批玩具要装箱,大小两种规格的箱子分别需要几个,寻找可能的方案C打牌时,根据自身与对手的牌,寻找合理的打法D求解高数的方程组例2老马准备把500元钱全部花完去买若干只小鸡和小鸭,已知小鸡每只10元,小鸭每只15元,他想每种至少买10只,问有几种具体方案?程序如下,在划线处填上合适代码

3、。Private Sub Command1 Click()Dim a As Integer,b As Integera为小鸡数,b为小鸭数For a 10 To 35小鸡至少10只For b 10 To If ThenList1.AddItem Str(a) Str(b)End IfNext bNext aEnd Sub一、基础巩固1有如下程序段,运行后c的值为()c0For i1 To 16 Step 2If i Mod 30 Thencc1End IfNext iA2 B3 C5 D82寻找满足如下要求的三位正整数:个十百三位的数字之和不超过8,这个数字能被8整除,则以下范围中最合适的是(

4、)A100,999 B100,800C108,500 D108,9003为了寻找被除5余2,除7余3的两位正整数,编写了如下VB程序,则划线处代码为()For i 10 To 99If i Mod 52 ThenList1.AddItem Str(i)End IfNext iAi Mod 70 BAnd i Mod 73Ci Mod 353 DAnd i Mod 704要寻找如下特征的3位数:最高位是7,能被3整除,则For语句的写法最合适的是()AFor i100 To 800 BFor i700 To 800CFor i700 To 800 Step 3 DFor 700 To 800 S

5、tep 65小琳设置了一个密码,但有部分信息忘了,只记得长度为6位,前3位是字母“hao”,后3位是数字,而且是一个日期(百位是月份,十位和个位是日期),这个3位数字同时能被3和7整除,寻找密码的程序如下,请在划线处填上合适代码。Private Sub Command1 Click()Dim i As Integer,j As Integer,k As Integer,sum As IntegerFor i 1 To 9 月份For j 日期第1位For k 0 To 9日期第2位sum If sum Mod 3 0 And sum Mod 7 0 ThenList1.AddItem ”密码为

6、:hao” Str(sum)End IfNext kNext jNext iEnd Sub二、能力提升6有如下几个问题,适合用枚举算法的是()A已知班内每位同学的身高,按身高分配座位B找出100300之间完全平方数的个数C已知圆柱的底半径和高,求圆柱的体积D根据图书馆索引,寻找指定的书籍7小易有200元钱,准备购买单价10元的卷纸和单价25元的洗衣液若干,他购买这两种商品的数量分别用a和b表示,钱要花完的可能方案用VB程序表示,其中判断表达式为()Aab200 Ba*10b200Ca*10b*25200 Da*10b*25 ”0” And ThenText2.Text Text2.Text t

7、End IfNext iEnd Sub ; 。92008年是北京奥运,每隔4年举办,下列程序寻找20172116这100年间的奥运年,并且这个年份个位数和十位数之和等于10。Private Sub Command1 Click()Dim i As Integer,gw As integer,sw As integerFor i 2017 To 2116gw i Mod 10 If ThenList1.AddItem Str(i)End IfNext iEnd Sub(1) 。 。(2)为了让循环枚举次数尽量少,可以把For语句改写为 。10下列程序寻找函数yx34x1在区间0,2之间最小值的近

8、似值,从0开始间隔0.1取值,请在划线处填入合适代码。Private Sub Command1 Click()Dim x As Single,s As Single,min As Singlemin 1For x 0 To 2 Step If s min Then Text1.Text Str(min) ”,此时x” Str(x)End IfNext xEnd Sub11有两个数,每一个的全部真因数等于另一个数,这两个数称为相亲数。如:220的真因数之和为1245101120224455110284。284的真因数之和为12471142220。下列程序寻找5000以内的相亲数。Private

9、Sub Command1 Click()Dim i As Integer,j As Integer,sum1 As Integer,sum2 As Integer,zfc As StringFor i 2 To 5000sum1 0:sum2 0For j 1 To i 2If i Mod j 0 Then sum1 sum1 j整数i的约数之和Next jFor j 1 To sum1 2If Then sum2sum2j整数sum1的约数之和Next jIf sum2 i And ThenList1.AddItem Str(i) Str(sum1)End IfNext iEnd Sub答案

10、精析典例精析例1DA、B、C三个问题都有明确的可能解范围,然后一一列举判断,D不适合用枚举算法。例227a*10b*15500解析处正常来说27以上都可以,考虑到尽可能减小列举范围,计算(50010达标检测1B程序寻找116之间能被3整除的奇数,分别是3、9、15。2B超过800的数,个十百三位数字之和肯定超过8,C的范围太小,有些合适的解没包括。3B两个条件之间用And,题目要求除7余3。4BD没有循环变量,写法错,C的设置一个解都没有,A范围过大。51 To 3i*100j*10k解析处日期的范围是131,高位范围是13,3位数字之和,i*100j*10k。6BA是排序,C不适合用枚举算法

11、,D是查找算法。7C题目要求钱要花完,则每种商品的单价乘以数量,总钱数应该是200元。8tMid(s,i,1)t ”0”,结合题意用t”9”。9(1)swi ST0 Mod 10gwsw10 And i Mod 40 (2)For i2020 To 2116 Step 4解析(1)处代码,要得到十位的数字,处按要求个位与十位数字之和等于10并且年份能被4整除。(2)处代码,2017之后第一个奥运年份是2020,然后每隔4年都是奥运年。100.1s x 3 4 * x 1min s解析处步长为0.1。处结合下文应计算函数的值处结合上文,给min赋值最新的最小值 s。11sum1 Mod j 0sum2 sum1解析由题意可知,sum1是整数i的真因数之和,处要判断sum1的真因数之和是否等于i,填 sum1 Mod j 0 ;处要排除两个和是同一个数的重复情况,填 sum2 sum1。

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 高中 > 高中信息 > 浙教版 > 必修 信息技术基础