(共23张PPT)
第1课
算法与问题解决
主要内容:
1.在计算机中运用算法解决问题的一般步骤。
生活中的投票问题可以通过哪些途径解决?各有什么优点?
利用算法来解决问题有多种途径,如由人工实施或由计算机实现等,不同的途径适用于不同的场景。在计算机中运用算法解决问题,主要经历问题分析、抽象与建模、设计算法、验证与优化算法等过程。
解决问题首先要对问题进行分析,抽象出关键要素,建立模型。以投票问题为例,某校正在进行校徽设计征选,全校1000名学生通过投票的方式在两个候选作品中选择一个自己细化的设计方案。
一
抽象与建模
解决该问题的关键要素包括两个候选作品的编号、1000名学生的投票情况。
一
抽象与建模
本问题中,需要对每一次的投票内容进行处理,从而决定增加哪个作品的得票数。使用计算机解决这个问题时,可以用变量tp表示每一次的投票,不同的变量值代表给不同的候选作品投票,用a、b两个变量表示两个候选作品的得票数。
一
抽象与建模
■确定变量
tp的值决定了a+1还是b+1,如当tp的值为“a”时,表示投票给A作品,则a=a+1;当tp为“b”时。,表示投票给B作品,则b=b+1。
一
抽象与建模
■抽象规则
在抽象的基础上,总结规律、建立模型是涉及算法的前提。建立模型时可以借助公式、表格、图示等方式,下图是以图示的形式对上述投票问题进行建模。
一
抽象与建模
■建立模型
设计算法时,要确定算法的输入与输出,并合理地选择控制结构,准确、有序地描述解决问题的步骤。例如,使用计算机解决上述作品投票问题的算法,可以描述为以下几个步骤:
二
设计算法
步骤1:A、B作品得票数清零,即将变量a与b的值初始化赋为0;
二
设计算法
步骤2:投票者输入投票内容“a”或“b”,并将其赋值给变量tp;
步骤3:使用分支结构对投票内容进行判断,当tp为a时,a的值加1,为b时,b的值加1;
步骤4:使用循环结构重复步骤2、3,直到1000名学生都完成投票;
步骤5:输出A、B作品的得票数。
算法的流程图如右图所示:
二
设计算法
在计算机中,可以通过编写并运行程序来验证算法:
二
验证算法
三
验证算法
如果用户输入的数据既不是a,也不是b,结果会怎样?
二
验证算法
如果有3个作品参与投票,算法需要怎么调整?在流程图中做相应的修改。
谢谢聆听,
下节课再见!