算法与程序设计-枚举算法[教学目标]1
学习算法的思想,学会使用C语言中的穷举法设计算法;2
重视与现实生活的联系,运用信息技能,解决一定的数学问题;[教学重点和难点]1
枚举算法的使用;2
正确理解循环结束条件的设置;[教学手段]以任务带动学习,用枚举算法解决生活中的问题
[教学过程]一
枚举算法【例】生活中,面对一扇门,别人交给你一串钥匙,如何打开这扇门呢
一个一个试过去
这就是枚举算法
枚举算法:就是按问题本身的性质,通过多重循环一一列举出该问题所有可能的解,并在逐一列举的过程中,检验每个可能的解是否是问题的真正解,若是,我们采纳这个解,否则抛弃它
在列举的过程中,不能遗漏但也不能重复任何一个可能的解
【例1】百鸡百钱问题:公鸡每只5元,母鸡每只3元,小鸡1元3只,现在用100元钱买100只鸡,求公鸡、母鸡、小鸡各买几只
【流程图】【例2】一张单据上有一个5位数的号码,其千位数和百位数已涂抹得模糊不清,如图2
1所示;另一方面,我们知道这个数能被57或67除尽
请设计一个算法,找出该单据原有的可能号码
【算法】在这个5位数的千位和百位上,填上二个10进制数字(能填入的所有数是00、01、02、
、97、98、99,这100个不同的数),则可以形成一个可能的解n,然后判断n是否是一个真正解,即n是否能被57或67整除
若n是真正解,则输出n的值
【思考】如果还要求统计这样的数的个数呢
【流程图】【例3】一张单据上有一个5位数的编号,万位数是1,千位数时4,十位数是7,个位数和百位数已经模糊不清
该5位数是57或67的倍数,找出所有满足这些条件的5位数并输出
【流程图】二
计数器与累加器1
计数器(counter):算法执行过程中,用来记录某种事件发生次数的变量
假定变量c作为计数器
计数器的典型用法:(1)
在算法执行的准备阶段中,应预置初值0
向计数器c预置