2021-2022学年高中信息技术浙教版(2019)必修1 2.1 算法的概念及描述 课件(25张PPT)

文档属性

名称 2021-2022学年高中信息技术浙教版(2019)必修1 2.1 算法的概念及描述 课件(25张PPT)
格式 pptx
文件大小 5.4MB
资源类型 教案
版本资源 浙教版(2019)
科目 信息技术(信息科技)
更新时间 2021-10-12 09:43:41

图片预览

文档简介

(共25张PPT)
2.1算法的概念及描述
在小品《钟点工》中,宋丹丹讲了这样一个笑话:说要把大象装冰箱,一共分几步?
第一步 先把冰箱门打开
第二步 把大象放进去
第三步 把冰箱门关上。
农夫如何安全带这三样东西过河?
问题解决
问题:有一个农夫带一条狼、一只羊和一筐白菜过河。如果没有农夫看管,则狼要吃羊,羊要吃白菜。但是船很小,只够农夫带一样东西过河。问农夫该如何解此难题?
解决步骤:
1、带羊到对岸,返回;
2、带菜到对岸,并把羊带回;
3、带狼到对岸,返回;
4、带羊到对岸。
算法--计算机科学的灵魂
“算法”的定义(算法是什么)
① 广义地讲,“算法”指的是解决问题或完成任务的一系列步骤集合
② 在计算机科学领域,“算法”指的是用计算机解决问题
而需要让计算机有序执行、无歧义、有限的步骤集合
算法的特征
打印输出所有的偶数
100/正整数
计算a@b的值
有穷性:一个算法的处理步骤必须是是有限的。
确定性:算法中对于每个步骤的执行描述必须是明确的。
可行性:每个步骤都是可以做到并能在有限时间内完成。
算法的特征
有0个或多个输入:
初始数据可以从外界输入,也可以包含在算法之中。
有1个或多个输出:
算法必须包含至少一个输出(没有输出的算法是没有意义的)
思考
把大象放冰箱是不是算法?
不是算法,不满足算法的可行性。
农夫过河是不是算法?
是算法。
算法的要素
请同学们先阅读书中“用自然语言描述算法” 然后描述上图算法
算法的要素
1.设定空调温度t0=26°C;
2.输入室温t;
3.若t数据
运算
控制转移
算法设计
  某商场为了对苹果进行促销,规定苹果原价1.5元,购买2千克以上的,超过2千克的部分可以在原价的基础上打8折。请同学们用语言描述付款的算法。
算法设计
使用自然语言描述算法。
(1)输入苹果的重量x
(2)判断苹果的重量是否大于2千克
(3)如果苹果的重量不大于2千克,应付款y=x*1.5
(4)如果苹果的重量大于2千克,应付款y=2*1.5+(x-2)*1.5*0.8
(5)输出应付款的金额
算法设计
使用自然语言描述算法的优缺点
优点:容易理解
缺点:书写烦琐,不确定性,对复杂的问题难以表达准确,不能被计算机识别和执行。
如:“张先生对李先生说他的孩子考上了大学”。请问是张先生的孩子考上大学,还是李先生的孩子考上大学呢?
算法表示方法
开始
输入苹果的重量x
输出应付款 y
结束
Y
N
(1)输入苹果的重量x
(2)判断苹果的重量是否大于2千克
(3)如果苹果的重量不大于2千克,应付款y=x*1.5
(4)如果苹果的重量大于2千克,应付款y=2*1.5+(x-2)*1.5*0.8
(5)输出应付款的金额
x>2
y=x*1.5
y=2*1.5+(x-2)*1.5*0.8
流程图的基本图形及其功能
程序框 名称 功能
开始/结束 算法的开始和结束
输入/输出 输入和输出信息
处理 计算与赋值
判断 条件判断
流程线 算法中的流向
流程图的优缺点
使用流程图描述算法的优缺点
优点:直观、形象
缺点:不能被计算机识别和执行。
算法表示方法-计算机程序设计语言
常见的高级语言有basic、C、C++、Java、Python、Ruby等
算法的表示方法
自然语言
算法的描述方式
流程图
伪代码
计算机语言
练习
例1:下列关于算法的概念及描述,说法正确的是( )
A.算法就是数学运算方法
B.算法的第一个执行步骤必须是数据输入
C.算法的一个步骤可以被执行多次
D.算法只能用自然语言进行描述
C
算法的优化
解决同一个问题可能有不同的算法
著名数学家华罗庚“烧水泡茶”的两个算法。
算法一
第一步:烧水;
第二步:水烧开后,洗刷茶具;
第三步:沏茶。
算法二
第一步:烧水;
第二步:烧水过程中,洗刷茶具;
第三步:水烧开后沏茶。
第二个算法的科学性在于应用了“统筹方法”
区别?
哪个更高效?
一个好算法必须用到科学的方法
算法设计
设计一个算法,求出100以内能被3整除的所有正整数,请用三种算法语言进行描述。
算法设计
自然语言
①令I=1;
②如果I能被3整除,则输出I;
③I=I+1;
④如果I≦100,则返回第②步;
⑤结束
算法设计
流程图
开始
I=1
I能被3整除
I=I+1
I≦100
结束
输出I的值




算法设计
变式:求出100以内能被3整除的所有正整数的和,请问如何修改流程图。
开始
I=1
I能被3整除
I=I+1
I≦100
结束
输出I的值




定义输入变量sum存储总和
sum=sum+i
输出sum值




算法设计
伪代码
I=1
For I=1 to 100
If I mod 3=0 then print I
Next I