资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第二单元算法的程序实现,算法与程序设计,课时31枚举算法及其实现,考试内容,考试要求,历年真题索引,枚举算法及程序实现,c,2019,年,4,月第,17,题,2018,年,4,月第,17,题,2017,年,11,月第,16,题,2017,年,11,月第,17,题,2017,年,4,月第,17,题,2016,年,10,月第,11,题,2016,年,4,月第,16,题、,17,题,一、枚举算法及程序实现,1,枚举算法的基本思想,枚举,就是将问题的可能解一个个地列举,逐一判断,即使中途找到符合的解也要继续找下去,将所有可能都找完才结束。,枚举,算法,又叫穷举算法,其基本思想是把问题,所有,的解,一一地罗列,出来,并对每一个可能解进行,判断,,以确定这个可能解是否是问题的真正解。若是,就采纳这个解,否则就抛弃它。,2.,枚举算法的实现要点,列举与检验过程既不重复也不遗漏;,尽可能地使可能解的罗列范围最小,以提高解决问题的效率;,用循环语句,(For,语句,),在一定范围内列举所有可能的解;,用选择语句,(If,语句,),判断和选择真正的解。,3,枚举算法的一般格式,For,循环变量初始,To,终值,Step,步长,If,检验表达式,Then,输出解或者计数器加,1,End If,Next,循环变量,4,双重循环,某些枚举算法的问题比较复杂,需要通过复杂的双重循环来实现。双重循环就是循环的嵌套,在一层循环结构内部又是另一层循环,其结构如下所示。,此结构由两个,For,循环构成,外循环是循环变量为,i,的循环,内循环是循环变量为,j,的循环,这两个循环之间的关系是嵌套关系,循环变量为,i,的循环将循环变量为,j,的循环包含在内,在循环执行时,外循环变量,i,每变化一次,都要执行一次完整的内循环。,在枚举算法中,有很多时候用到循环的嵌套来解决问题。,For i,语句块,For j,语句块,Next j,Next i,5,循环嵌套,多重循环在使用时,每个循环必须只有一个唯一的,变量名,作为循环变量;在,Next,语句结束循环时,必须,内循环,先结束,不得出现互相交叉。,循环嵌套的层数没有具体限定,选考时的多重循环结构一般只要求到双重循环。,6,编写枚举算法的程序要注意两个要点:,For,循环的范围要尽可能的小,这决定可能解的范围是否已经尽可能的小;,条件表达式必须要正确无误,这决定哪些解才是真正的解。,7.,素数问题,素数,素数,(,质数,),就是一个大于等于,2,的整数,并且只能被,1,和本身整除,而不能被其他整数整除的数。,算法,说明,判别某数,n,是否是素数的经典算法是,对于,n,,从,i,2,3,4,,,,,n,1,依次判别能否被,i,整除,只要有一个能整除,,n,就不是素数,否则,n,是素数。,代码,实现,Function sushu(n As Long)As Boolean,定义素数函数,Dim i As Long,For i,2 To n,1,If(n Mod i),0 Then Exit For,Next i,If i,n Then sushu,True,End Function,8.,最大公约数问题,最大公约数,就是几个数共同最大的约数。,算法说明,用辗转相除法求两自然数,m,、,n,的最大公约数,再由最大公约数求出最小公倍数。,首先,对于已知两数,m,、,n,,比较并使得,mn,;,m,除以,n,得余数,r,;,若,r,0,,则,n,为求得的最大公约数,算法结束;否则执行步骤;,使,m,n,,,n,r,再重复执行。,代码实现,Function gcd(m As Long,n As Long)As Long,Dim temp As Long,If m 0,r,n Mod 2,s,Str(r),s,n,n2,Loop,11.,十进制转十六进制问题,十进制转十六进制,将十进制数转化为十六进制数。,算法说明,通过除,16,取余法计算十进制数,n,整除,16,时产生的余数,r,,并判断,r,值是否超过,9,,若是则将每次产生的余数,r,累加到,s,中。,代码实现,m,”,0123456789ABCDEF,”,:,s,”,Do While n 0,r,n Mod 16,s,Mid(m,r,1,1),s,n,n16,Loop,12.,二进制转十进制问题,二进制转十进制,将二进制数转化为十进制数。,算法说明一,使用按权相加法将二进制数,m,转换为十进制,s,。,代码实现,m,”,10011,”,假设,m,值为,10011,s,0,n,Len(m),For i,1 To n,k,Val(Mid(s,i,1),s,s,k*2 (n,i),Next i,算法说明二,使用累乘相加法将二进制数,m,转换为十进制,s,。,代码实现,m,”,10011,”,假设,m,值为,10011,s,0,n,Len(m),For i,1 To n,k,Val(Mid(s,i,1),s,s*2,k,Next i,(三)热爱共青团工作,有较强的责任心和奉献精神,有愿望在团的岗位上进一步锻炼成长。,(14)具备履行合同所必须的服务和专业技术能力的证明,(4)在买方根据本条终止部分或全部合同的情况下,买方可以依其认为合适的方式采购未交付部分的货物。卖方应承担买方购买类似货物或提供服务的额外费用,同时卖方还应继续履行合同中未终止的部分。,5.2.7 使用部门负责编制适用的统计报表,按规定向有关部门报送统计结果;,16.1 投标人提供的货物与服务以人民币报价(如标书中另有规定,则从其规定)。,_,4.8.2岗位安全操作规程,有关的事故案例;,一般说来,建立全面顾客服务制度需要完成八个步骤:环境评估、策略规划、领导决心、人事政策、服务设计、基础设施建设、衡量标准和管理考核。其中,环境评估所获得的信息是规划决策的基础,领导决心是制度成功建立的保证,而有效的挖掘出企业的独特资源往往是企业创造服务差异化的制胜法宝。,4、优秀团员、青年入党积极分子推荐表应用钢笔或签字笔书写,内容不可复印。团支部推荐意见一栏,规范填写为:“xx年xx月x日召开支委会,应到x人,实到x人,经举手表决,x人(一致)同意推荐该同志为入党积极分子。,请您阅读以下案例,并回答相关问题。,3.3负责本站的安全监测、工具、仪器、设备的配备、管理工作,建立健全设备档案,并整理规范,妥善保管。,各县区负责人,要与各药商签订协议。,本节知识点考查关于枚举算法的实际应用。学生需要了解枚举算法的概念及程序实现,注:枚举算法的程序实现一般采用包含选择结构的循环结构。,一、枚举算法及程序实现,例,1,2016.10,浙江选考,对称字符串的特征是从左到右读和从右到左读是完全一样的。如“,abba”,是对称的,“,abcba”,也是对称的。判断字符串是否对称的,VB,程序段如下:,n,Len(s),s,是待判断的字符串,k,0:j,n,For i,1 To n/2,Next i,If k,0 Then Label1.Caption,”对称”,Else Label1.Caption,”不对称”,方框中的代码由以下三部分组成:,j,j,1,If cl c2 Then k,k,1,c1,Mid(s,i,1):c2,Mid(s,j,1),代码顺序正确的选项是,(,),A,B,C,D,C,【解析】本题综合考查根据要求设计程序。对称字符串即回文数,基于其特点从右往左读和从左往右读都一样,所以我们设计循环的比较范围是1到n/2即可。算法核心是:取出该字符串的第1个字符以及最后一个(即第n个)字符;Mid(s,i,1)含义是从字符串“s”中,从第i个字符开始,选取1个字符。将取出的两个字符进行比对,看这两个字符是否相同,若不同,则肯定不是回文数,将k值自加1,即赋值为非0,若两字符相同,则通过jj1以及Next i,选取第2个字符与倒数第2个字符(第n1个)进行比对,再看是否相同,处理方法同第一次比较。然后依次选字符进行比较,一直比较到最后一次,即ijn/2。根据最后一次k的赋值来判断是否为回文数。即最后k的赋值仍为0即是对称,最后k的赋值为非0即为不对称字符串。注意,本题就题设而言可以适当优化,因为每次比较都需要对k进行重新赋值,所以当k的值第一次更新为非0,就可以退出循环,输出结论非对称字符串。,例,2,2016.4,浙江选考,某地,1900,1999,年的年平均降水量数据保存在数据库中。现要求找出相邻两年年平均降水量变化,(,即本年度与上年度“年平均降水量”差值的绝对值,),最大的年份区间。如果有多个符合要求的年份区间,只输出距今最近的。小吴为此编写了,VB,程序,程序运行时,单击按钮,Command1,后,在文本框,Text1,中输出运行结果。实现上述功能的,VB,代码如下,但加框处代码有错,请改正。,Dim w(1 To 100)As Single,依次存储,1900,1999,年的年平均降水量数据,Const n,100,Private Sub Form_Load(),本过程从数据库中按,1900,1999,年依次读取年平均降水量数据,并存储在数组,w,中,代码略,End Sub,Private Sub Command1_Click(),Dim i As Integer,imax As Integer,imax,(1),For i,3 To n,If Abs(w(i),w(i,1),Then imax,I,(2),Next i,Text1.Text,”年平均降水量变化最大的年份区间是”,Str(imax,1898),”,Str(imax,1899),End Sub,1,Abs(w(i,1),w(i,2,【答案】(1)2(2)Abs(w(imax)w(imax1)【解析】(1)如果w(2)w(1)的值在所有相邻年份中最大的话,根据题意由循环体中的If语句中的Then imax i语句可知,我们应该记录后面这个年份编号。(2)如果当前相邻的年份(差的绝对值)比最大值imax指向的相邻年份值(差的绝对值:Abs(w(imax)w(imax1)要大的话,则更新imax变量指向的数组下标值。,例,3,2016.4,浙江选考,某数据压缩方法描述如下:,1),原始数据中,某数不为,0,且相邻无重复,压缩数据用该数据表示;,2),原始数据中,某数为,0,且相邻无重复,压缩数据用两个数表示:第,1,个为,0,,第,2,个为,0,;,3),原始数据中,某数相邻有重复,压缩数据用,3,个数表示:第,1,个为,0,,第,2,个为重复数的个数,第,3,个为该数本身。,根据上述压缩方法,对应的解压缩方法示例如图,a,所示。,图,a,资料:1、古代人们对地球的认识在古代,科学不发达,交通工具落后,人们活动的范围很小
展开阅读全文