3.2.1 算法-粤教版高中信息技术数据与计算必修1-学案

资源下载
  1. 二一教育资源

3.2.1 算法-粤教版高中信息技术数据与计算必修1-学案

资源简介

3.2.1 算法 学案
【学习目标】
1. 掌握算法的定义,能够用自己的语言准确描述算法的概念。
2. 了解算法的五个基本特征(有穷性、确定性、数据输入、数据输出、可行性),能够结合实例加以说明。
3. 了解算法的三种常用描述方法(自然语言、流程图、伪代码),能够区分不同描述方法的特点。
4. 感受算法在问题解决过程中的重要作用,初步建立计算思维意识。
【重点和难点】
重点:
算法的定义
算法的五个基本特征
难点:
理解算法的有穷性和确定性特征
能够区分算法的三种描述方法及其适用场景
【学法提示】
自主探究,小组合作等
【课时安排】
1课时
【检查复习】
1. 计算机解决问题的基本过程包括哪几个步骤?
2. 在计算机解决问题的过程中,“设计算法”处于什么位置?它的作用是什么?
3. 什么是遍历?请简要说明。
【课堂探究】
科学探究一:认识算法的概念与特征
情境导入:
“算法”这个词对同学们来说可能有些陌生,但其实我们在日常生活中经常用到算法。比如,我们按照菜谱的步骤做一道菜,按照说明书组装一个家具,或者按照老师的要求完成一道数学题的解答——这些都可以看作是“算法”。
观察以下场景:
场景一:小明按照以下步骤泡一杯茶:①烧开水;②取适量茶叶放入杯中;③将开水倒入杯中;④等待2分钟;⑤饮用。
场景二:小红用“枚举法”解决“鸡兔同笼”问题:假设笼中有x只兔子、y只鸡,已知头数和脚数,逐一尝试x的可能取值,直到找到满足条件的解。
场景三:小华用“遍历法”求方程3x+2y=30的正整数解个数:逐一尝试x=1到9、y=1到13的所有组合,判断是否满足方程。
问题1: 以上场景中,泡茶的步骤、解决鸡兔同笼的方法、求方程解的方法有什么共同特点?
问题2: 请尝试用自己的语言概括:什么是算法?
问题3: 算法应该具备哪些特征?请结合以上场景进行分析。
科学探究二:体验算法的描述方法
情境导入:
设计好算法后,需要将算法用某种方式表达出来,以便人们理解、交流,并最终转化为计算机程序。描述算法的常用方法有三种:自然语言、流程图和伪代码。
任务: 以小组为单位,完成以下问题:
问题: 某超市举行促销活动:购物满100元打9折,满200元打8折,满300元打7折。请设计一个算法,根据顾客的消费金额计算实际应付金额。
问题1: 请先用自然语言描述这个算法。自然语言描述有什么优点和缺点?
问题2: 请尝试用流程图描述这个算法。流程图描述有什么优点?
问题3: 请尝试用伪代码描述这个算法。伪代码描述有什么特点?
问题4: 通过以上体验,你认为三种描述方法各有什么优缺点?分别适用于什么场景?
【精讲点拨】
一、算法的定义
1. 算法的概念
算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则。
通俗地说,算法就是用计算机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。
2. 对算法概念的理解
算法是解决问题的具体方法和步骤
算法中的每一步都必须是明确的、可执行的
算法必须在有限步骤内结束
算法是连接问题与程序的桥梁,是计算机程序的“灵魂”
二、算法的特征
算法作为能确实解决某个问题的策略,具有五个方面的重要特征:
1. 有穷性
一个算法在执行有穷步之后必须结束,即一个算法所包含的计算步骤是有限的。算法不能无限循环,否则就没有意义。
> 举例: 在求方程3x+2y=30的正整数解个数的算法中,x从1到9、y从1到13逐一尝试,总共循环117次后结束,体现了有穷性。
2. 确定性
算法执行的每一个步骤必须有确切的定义,不能出现模棱两可的情况。算法的每一步含义都必须是清晰的,不能有歧义。
> 举例: 算法步骤中明确规定“当满足式子6x+5y+4z=50时,则解的个数加1”,这一规定是明确无误的。
3. 数据输入
一个算法必须有零个或多个数据输入,以刻画运算对象的初始情况。算法可以没有输入,也可以有多个输入。
> 举例: 在求1到100的和的算法中,没有外部数据输入;在求方程解的算法中,需要输入方程的各项系数。
4. 数据输出
一个算法有一个或多个数据输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。
> 举例: 求方程解的算法输出解的个数t和每个具体解(x,y,z的值)。
5. 可行性
算法中执行的任何计算步骤都可以被分解为基本的可执行的操作步骤,即每个计算步骤都可以在有限时间内完成。
> 举例: 算法中的每一步——赋值、比较、判断、输出等——都是计算机可以执行的基本操作。
三、算法的描述方法
算法是对解题过程的精确描述,且需要使用某种方法将其表示出来。描述算法的常用方法有三种:
1. 自然语言描述法
用人们日常所用的语言,如汉语、英语等来描述算法。
优点:通俗易懂,容易掌握。
缺点:当算法中含有多分支或循环操作较多时,很难清晰表示;自然语言存在歧义性。
> 举例:“如果明天天气好,我们就去公园”中的“天气好”定义不够明确,存在歧义。
2. 流程图描述法
用程序框图(流程图)来描述算法的一种表示方法。
优点:直观清晰,能清楚地表示算法的逻辑结构和执行流程。
缺点:绘制较为繁琐,复杂算法的流程图可能过于庞大。
3. 伪代码描述法
用介于自然语言和计算机语言之间的文字和符号来描述算法。
优点:既保留了自然语言的易读性,又接近程序设计语言,便于后续转化为程序代码。
缺点:没有统一的语法标准,不同的人可能写出不同的伪代码。
【拓展与延伸】
1. 算法与程序的关系
算法是程序的“灵魂”,程序是算法的具体实现。算法独立于具体的程序设计语言,可以用不同的语言实现同一个算法。没有算法的程序就像没有设计图纸的建筑,是无法有效解决问题的。
2. 算法的多样性
对于同一个问题,可能存在多种不同的算法。不同的算法在效率、复杂度、可读性等方面可能有所不同。例如,排序问题可以有冒泡排序、选择排序、快速排序等多种算法。在设计算法时,我们需要根据实际需求选择最合适的算法。
3. 算法在生活中的应用
算法不仅存在于计算机程序中,也广泛应用于日常生活中:
| 生活场景 | 算法描述 |
|||
| 烹饪 | 按照菜谱的步骤制作菜肴 |
| 出行 | 规划从A地到B地的最优路线 |
| 就医 | 医生根据症状按照诊断流程判断病情 |
| 购物 | 按照预算和需求选择商品 |
4. 三种描述方法的比较
| 比较维度 | 自然语言 | 流程图 | 伪代码 |
|||||
| 易读性 | 高 | 较高 | 中等 |
| 精确性 | 较低(易歧义) | 较高 | 高 |
| 转换为程序的便捷性 | 低 | 中等 | 高 |
| 适用场景 | 简单算法、初步设计 | 教学演示、逻辑展示 | 算法设计、程序开发准备 |
【课堂练习】
一、选择题(每题6分,共60分)
1. 以下关于算法的说法,正确的是( )
A. 算法就是计算机程序
B. 算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则
C. 算法可以无限循环
D. 算法只能用流程图来描述
答案:B
解析: 算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则。A错,算法是程序的灵魂,但不等同于程序;C错,算法必须具有有穷性;D错,算法可以用自然语言、流程图、伪代码等多种方式描述。
2. 算法的五个基本特征包括有穷性、确定性、数据输入、数据输出和( )
A. 多样性
B. 可行性
C. 复杂性
D. 唯一性
答案:B
解析: 算法的五个基本特征是有穷性、确定性、数据输入、数据输出和可行性。
3. “一个算法在执行有穷步之后必须结束”体现的是算法的( )
A. 有穷性
B. 确定性
C. 可行性
D. 数据输出
答案:A
解析: 有穷性是指一个算法在执行有穷步之后必须结束,即算法所包含的计算步骤是有限的。
4. “算法执行的每一个步骤必须有确切的定义,不能出现模棱两可的情况”体现的是算法的( )
A. 有穷性
B. 确定性
C. 可行性
D. 数据输入
答案:B
解析: 确定性是指算法执行的每一个步骤必须有确切的定义,不能出现模棱两可的情况。
5. 以下关于算法特征的说法,错误的是( )
A. 一个算法可以没有数据输入
B. 一个算法至少有一个数据输出
C. 算法的步骤越多越好
D. 算法的每个步骤都应在有限时间内完成
答案:C
解析: 算法的步骤必须是有限的(有穷性),但并非步骤越多越好。好的算法应该在保证正确的前提下尽量简洁高效。A正确,算法可以没有输入;B正确,算法必须有输出;D正确,体现了可行性。
6. 以下哪种方法不属于算法的常用描述方法?( )
A. 自然语言
B. 流程图
C. 伪代码
D. 机器语言
答案:D
解析: 描述算法的常用方法有自然语言、流程图和伪代码三种。机器语言是计算机直接执行的语言,不属于算法的描述方法。
7. 用自然语言描述算法的主要缺点是( )
A. 不够通俗
B. 容易产生歧义
C. 不能描述循环
D. 需要专门的软件
答案:B
解析: 自然语言描述算法比较容易掌握,但存在明显的缺点:当算法中含有多分支或循环操作较多时,难以清晰表示;并且由于自然语言存在歧义性。
8. 以下关于算法与程序关系的说法,正确的是( )
A. 算法就是程序
B. 程序是算法的具体实现
C. 算法必须用Python语言描述
D. 没有程序的算法毫无意义
答案:B
解析: 算法是程序的“灵魂”,程序是算法的具体实现。算法可以独立于具体的程序设计语言存在。
9. 在求方程3x+2y=30的正整数解个数的算法中,x从1到9、y从1到13逐一尝试,体现了算法的( )
A. 有穷性
B. 确定性
C. 可行性
D. 数据输出
答案:A
解析: 逐一尝试x=1到9、y=1到13的所有组合,总共循环117次后结束,体现了算法必须在有限步骤内结束的有穷性特征。
10. 以下关于伪代码描述算法的说法,正确的是( )
A. 伪代码是计算机可以直接执行的语言
B. 伪代码介于自然语言和计算机语言之间
C. 伪代码有严格的语法标准
D. 伪代码只能描述简单算法
答案:B
解析: 伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。A错,伪代码不能直接执行;C错,伪代码没有统一的语法标准;D错,伪代码可以描述各种复杂程度的算法。
二、填空题(每空4分,共40分)
1. 算法是指在________步骤内求解某一问题所使用的一组定义明确的________。
答案: 有限;规则
解析: 算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则。
2. 算法的五个基本特征包括:________、确定性、________、数据输出和可行性。
答案: 有穷性;数据输入
解析: 算法的五个基本特征是有穷性、确定性、数据输入、数据输出和可行性。
3. 一个算法在执行有穷步之后必须结束,这体现了算法的________特征。
答案: 有穷性
解析: 有穷性是指算法在执行有穷步之后必须结束。
4. 算法执行的每一个步骤必须有确切的定义,不能出现模棱两可的情况,这体现了算法的________特征。
答案: 确定性
解析: 确定性是指算法的每个步骤必须有确切的定义。
5. 一个算法必须有零个或多个________输入,有一个或多个________输出。
答案: 数据;数据
解析: 算法必须有零个或多个数据输入,有一个或多个数据输出。
6. 描述算法的常用方法有________描述法、________描述法和伪代码描述法。
答案: 自然语言;流程图
解析: 描述算法的常用方法有自然语言描述算法、流程图描述算法和伪代码描述算法。
7. 用人们日常所用的语言来描述算法,称为________描述法。
答案: 自然语言
解析: 用自然语言描述算法,就是用人们日常所用的语言来描述算法。
8. 用程序框图来描述算法,称为________描述法。
答案: 流程图
解析: 用流程图描述算法是用程序框图来描述算法的一种表示方法。
9. 用介于自然语言和计算机语言之间的文字和符号来描述算法,称为________描述法。
答案: 伪代码
解析: 伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。
10. 算法中执行的任何计算步骤都可以被分解为基本的可执行的操作步骤,这体现了算法的________特征。
答案: 可行性
解析: 可行性是指算法中执行的任何计算步骤都可以被分解为基本的可执行的操作步骤,即每个计算步骤都可以在有限时间内完成。
【课堂小结】
1. 算法的定义
算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则
通俗地说,算法是用计算机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合
2. 算法的五个特征
有穷性:算法必须在有限步骤内结束
确定性:算法的每一步必须有确切的定义
数据输入:算法可以有零个或多个输入
数据输出:算法必须有一个或多个输出
可行性:算法的每一步都可在有限时间内完成
3. 算法的三种描述方法
自然语言:通俗易懂,但容易产生歧义
流程图:直观清晰,能清楚表示逻辑结构
伪代码:介于自然语言和计算机语言之间,便于转化为程序
4. 算法与程序的关系
算法是程序的“灵魂”,程序是算法的具体实现

展开更多......

收起↑

资源预览