4.1 算法及其特征 课件(共49张PPT)2022—2023学年教科版(2019)高中信息技术必修1

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

4.1 算法及其特征 课件(共49张PPT)2022—2023学年教科版(2019)高中信息技术必修1

资源简介

(共49张PPT)
4.1算法及其特征
第2单元 编程计算
第1单元 初识数据与计算
第3单元 认识数据
第4单元 计算与问题解决
第5单元 数据分析与人工智能
信息技术
(必修1)
算法及其特征
学习目标
★ 了解算法的基本要素和重要特征。
★ 运用恰当的方式描述算法。
★ 运用Python语言实现简单算法,解决问题。
温故知新
1. 什么是算法?
2. 描述算法的方法有哪些?
算法是解决问题的方法和步骤。
自然语言
流程图
伪代码
程序代码
PAD图
01
知识回顾
流程图大作战
游戏规则
九宫格底下藏有流程图图例或基本结构的照片,小组抢答选择卡片数字,老师点击该卡片,卡片就会消失在荧幕上,猜出照片上的知识即可获胜。回答错误,继续抢答回答问题。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
软件设计师是业务领域和技术领域的专家。面对客户需求,软件设计师要对问题进行整体分析以找到解决方案,通过洽当的方式与客户沟通;面对技术问题,软件设计师需要借助计算机编程解决实际问题。我们将通过“软件开发社招新”项目讨论计算机编程解决问题的过程。
情境:猜一猜
猜价格赢大礼
游戏规则:
1.商品的价格在100元以内(整数),参与的顾客要猜出这件商品的价格,即可获得奖品。
2. 主持人会根据顾客给出的价格,提示“猜高了”或“猜低了”,直到你猜对价格。
3.时间限制:30s
猜价格赢大礼
情境:猜一猜
情境:猜一猜
设计:“猜价格”小游戏
由于顾客众多,我们能不能设计一款线上的猜价格小游戏,让更多的顾客参与到活动中。
算法
算法:解决问题的方法和步骤。
设计:“猜价格”小游戏——初级版
任务一:请你帮忙设计一个“猜价格”算法。
算法的表现形式
自然语言
流程图
计算机语言
price=66
guess=int(input("输入你猜的价格:"))
if guessprint("猜小了")
elif guess>price:
print("猜大了")
else:
print("恭喜你,猜中了!")
请你们帮忙测试一下程序,
提出你的建议和需要改进的地方!
设计:“猜价格”小游戏——初级版
任务二:请大家结合“自然语言”的描述,
完善流程图和程序代码。
设计:“猜价格”小游戏——改良版
第一步:设置商品价格
第二步:顾客输入猜的价格
第三步:判断顾客输入的价格和商品价格
是否相同
第四步:如果相同,则输出“猜对了!”,
游戏结束
第五步:如果不相同,判断输入的价格
是否猜低了
第六步:如果成立,则输出“猜低了!”,
并返回第二步
第七步:如果不成立,则输出“猜高了!”,
并返回第二步
自然语言
开始
结束

输出“猜对了”
输出“猜低了”








流程图
设计:“猜价格”小游戏——改良版
自然语言
流程图
开始
结束
设置商品价格
猜对了
猜低了
输出“猜对了”
输出“猜低了”
输出“猜高了”




输入猜的价格
第一步:设置商品价格
第二步:顾客输入猜的价格
第三步:判断顾客输入的价格和商品价格
是否相同
第四步:如果相同,则输出“猜对了!”,
游戏结束
第五步:如果不相同,判断输入的价格
是否猜低了
第六步:如果成立,则输出“猜低了!”,
并返回第二步
第七步:如果不成立,则输出“猜高了!”,
并返回第二步
设计:“猜价格”小游戏——改良版
price=66
while True:
guess=int(input("输入你猜的价格:"))
if guessprint("猜小了!")
elif guess>price:
print("猜大了!")
else:
print("恭喜你,猜中了!")
break
price=66
guess=int(input("输入你猜的价格:"))
if guessprint("猜小了!")
elif guess>price:
print("猜大了!")
else:
print("恭喜你,猜中了!")
VS
改良版
初级版
设计:“猜价格”小游戏——改良版
任务三:根据商家需求,设计一个可以限制竞猜次数的“猜价格”小游戏。
设计:“猜价格”小游戏——进阶版
price=66
for i in range(1,6):
guess=int(input("输入你猜的价格:"))
if guessprint("猜小了!你还有",5-i,"次机会")
elif guess>price:
print("猜大了!你还有",5-i,"次机会")
else:
print("恭喜你,猜中了!")
break
设计:“猜价格”小游戏——进阶版
商品价格 简单猜
100以内 100次
1000以内 1000次
10000以内 10000次
… … …
7次
10次
14次
对半猜
设计:“猜价格”小游戏——进阶版
算法——二分法
二分查找:也叫折半查找,该方法主要将数列有序排列,
采用跳跃式的方式查找数据。
二分法查找的前提条件是被查找的数据必须是有序的。
算法——二分法
算法——二分法
思考:对半猜的次数是如何计算的?
算法的评价
算法的评价:从时间复杂度和空间复杂度来考虑。
算法的特征
根据我们对已学算法的了解,结合程序的设计
你能归纳一下算法有哪些特征吗?
算法的特征
price=66
while True:
guess=int(input("输入你猜的价格:"))
if guessprint("猜小了!")
elif guess>price:
print("猜大了!")
else:
print("恭喜你,猜中了!")
break
输入项
输出项
开始
结束
设置商品价格
猜对了
猜低了
输出“猜对了”
输出“猜低了”
输出“猜高了”




输入猜的价格
确切性、可行性、有穷性
算法的特征
输入项:有0个或多个输入。0个输入是指算法本身给出了初始条件。
输出项:算法一定要有输出。有1个或多个输出。
可行性:算法中执行的任何计算都可以在有限时间内完成。
有穷性:算法必须能在执行有限个步骤之后终止。
确切性:算法中的每一次运算都有明确的定义,具有无二义性,并且
可以通过计算得到唯一的结果。
1
2
3
4
5
算法的特征
输出所有的正整数。
100/正整数
100/0
X
X
X
有穷性:一个算法必须保证他的执行步骤是有限的。
确定性:算法中的每个步骤必须有确切的含义。
可行性:算法中的每个步骤都是可行的,能在有限的时间内完成。
谁是竞猜冠军
任务四:根据“猜价格”小游戏后台数据的统计,请你帮商家评出这次活动的竞猜冠军。
谁是竞猜冠军
这次竞猜的冠军在A、B、C、D四位顾客中。
A说:“不是我。”
B说:“是C。”
C说:“是D。”
D说:“C说的不对。”
已知四人中有一人说了假话。你能判断出到底谁是冠军吗?
小提示:
逐一假设A、B、C、D是冠军,判断是否正确
谁是竞猜冠军
冠军 A说:“不是我。” B说:“是C。” C说:“是D。” D说:“C说的不对。”
A
B
C
D
x
谁是竞猜冠军



x
x
x

x
x
x




x
冠军 A说:“不是我。” B说:“是C。” C说:“是D。” D说:“C说的不对。”
A
B
C
D
x

x
x
x
x
x
x
x







竞猜冠军
谁是竞猜冠军
champion=['A','B','C','D']
for i in champion:
cond=(i!='A') +(i=='C') + (i=='D')+(i!='D')
if cond==3:
print("冠军是:",i)
逻辑运算
谁是竞猜冠军
champion=['A','B','C','D'] #设置选手列表
for i in champion: #循环读取选手编号
cond=(i!='A') +(i=='C') + (i=='D')+(i!='D') #查找符合条件的选手
if cond==3: #说真话是否是3人
print("冠军是:",i) #输出冠军
逻辑运算
谁是竞猜冠军
算法——枚举法
把所有可能的答案一一例举,合适就保留,不合适就丢弃。
——枚举法
枚举法也称作穷举法。
算法——枚举法
枚举法解决问题的一般结构:循环+判断
枚举法解题的基本思路如下:
1.确定枚举对象、枚举范围和判定条件;
2.一一列举可能的解,验证是否为问题的解。
算法——枚举法
优点:直观、易于理解。
正确性容易证明。
缺点:运算量较大,解题效率不高。
课堂巩固
1.下列有关算法的描述正确的是( )
A.算法描述只有流程图才能确保无二义性
B.算法必须在有限步骤执行后终止
C.算法描述中必须要有输入项,否则无法进行运算
D.一种算法设计只对应一种计算机程序设计语言
2.使用枚举法解决问题的优势为( )
A.算法简单、直接 B运算时间短
C.可以求解任何问题 D.算法灵活多样
3.评价一个算法好的最主要标准是( )
A.运行速度快 B.运算准确度高
C.时间复杂度低 D.程序代码短
B
A
C
知识小结
“算法”其实很接地气,可以与我们的生活零距离靠近,让生活变得更美好。

展开更多......

收起↑

资源预览