内容正文:
数据与计算 学教案
3.2算法及其描述
【学习目标】:
1、掌握算法的定义及基本特征。
2、了解算法的三种描述方法。
3、初步接触Python程序设计语言,体验程序设计的魅力。
【重点和难点】:
重点:
1、运用计算思维对具体问题进行分析,并设计解决方案。
2、掌握算法的三种描述方法
难点:
1、 运用计算思维对具体问题进行分析和设计解决方案。
2、亲历项目问题分析、建立数学模型、设计算法,编程实现的过程,初步学习项目规划解决方案。
【学法提示】:
讲授法、演示法、小组合作学习法
【课时安排】:1课时
【情境再现】:
开学时同学们纷纷购买用于学习的各种文具,假如同学手中有50元现金,分别购买单价为6元的笔记本,单价为5元的签字笔,和单价为4元的橡皮,请问各种文具应该购买何种数量,才能让手中的资金最大化利用(即刚好用完)呢?
【内容精讲】:
设计“分别可以买6元、5元、4元的笔记本的组合方案”问题的算法
1、 算法概念
算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地说,算法就是用计算机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。
2、 算法的特征
(1) 数据输入:一个算法有零个或多个输入;
(2) 确定性:算法执行的每一步必须有确切的定义,不可含混不清;
(3) 有穷性:一个算法在执行有穷步之后必须结束;
(4) 数据输出:一个算法有一个或多个输出,即最后的结果
(5) 可行性:算法中执行的任何计算步骤都可以被分解成基本的可执行的操作步骤,即每个基本步骤都可以在有限时间内完成。
三、算法的描述
1.用自然语言描述算法:用自然语言描述算法,就是用人们日常所用的语言,如:汉语、英语等来描述算法。
t=0;
x=1;
y=1;
z=1;
如果满足式子6x+5y+4z=50,则购买的方案数加1(即t=t+1),并输出这种购买方案(即输出t、x、y、z的值)。
z=z+1;
如果z<=12则转⑤,否则继续⑧;
y=y+1;
如果y<=10则转④,否则继续⑩;
x=x+1;
如果x<=8则转③,否则继续⑫;
结束。
2.用流程图描述算法:用流程图描述算法是用程序框图来描述算法的一种表示方法。使用流程图描述算法,让人感到算法的流程描述清晰简洁。流程图的基本图形及其功能如下表所示。(例:教材图3-8)
图 形
名 称
功 能
开始/结束
表示算法的开始或结束
输入/输出
表示算法中变量的输入或输出
处理
表示算法中变量的计算与赋值
判断
表示算法中的条件判断
流程线
表示算法中的流向
连接点
表示算法中的转接
3. 用伪代码描述算法:用伪代码描述算法就是用介于自然语言和计算机语言之间的文字和符号来描述算法。
t=0
for x in range(1,50):
for y in range(1,50):
for z in range(1,50):
if x*6+y*5+z*4==50:
{t=t+1;
输出解的个数t和三个整数x,y,z}
【小组探讨】:
分析归纳算法三种描述方法的优劣
算法描述的方法
优 势
不足
自然语言表示法
流程图表示法
伪代码表示法
【【内容精讲】:
算法的三种基本控制结构
这三种基本控制结构的主要作用是:
(1)顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的。
(2)选择结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行。选择结构有单选择、双选择和多选择三种形式。
(3)循环结构表示程序反复执行某个或某些操作,直到某条件为假(或为真)时才可终止循环。
实践探索:参考教材P51实践活动,探讨辗转相除法的算法描述
自然语言表示法
流程图表示法
伪代码表示法
示例
【小组探讨】:
请各项目学习小组对本小组所选的项目主题的问题解决设计一种算法,分别用自然语言和流程图的方法将算法表示出来并展评。完成《项目活动记录表》活动2:“算法及其描述” 小组项目成果“设计项目问题的算法”
【课堂小结】:
1、什么是算法
算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则。
2、算法的特征
有穷性、确定性、数据输入、数据输出、可行性
3、算法的描述
自然语言描述、流程图描述、伪代码描述
4、基本控制结构
顺序结构、选择结构、循环结构
【课堂巩固 问卷星考试】:
3.2.1 算法
1.根据算法的特征,下面描述正确的是:()
A.一个算法有0个或多个输入
B.一个算法可以有0个输出
C.