4.1算法及其特征课件2021—2022学年教科版(2019)必修1(12张PPT)

文档属性

名称 4.1算法及其特征课件2021—2022学年教科版(2019)必修1(12张PPT)
格式 pptx
文件大小 820.0KB
资源类型 教案
版本资源 教科版(2019)
科目 信息技术(信息科技)
更新时间 2022-04-21 08:15:29

图片预览

文档简介

(共12张PPT)
4.1 算法及其特征
本节课学习目标
熟悉将解决问题的方法归结为一系列清晰、准确的步骤的过程
了解算法的基本要素和重要特征
运用恰当的方式描述算法
运用python语言实现简单算法,解决问题
4.1 算法及其特征
活动1(寻找开关对应关系)一个房间有3盏灯,房间外有3个开关分别控制这3盏灯,在只允许进房间一次的情况下,如何判断哪个开关控制哪盏灯?
想一想:灯泡除了亮和灭两种状态外,还有什么状态?
活动1 状态分析,解决问题
4.1 算法及其特征
分析问题:灯具有亮和灭两种状态,同时开灯会伴有发热现象,触摸灯泡会有冷和热两种状态。因此一盏灯具可能有4种不同的状态。如何使3盏灯处于不同的状态?
解决问题的步骤(自然语言描述)
1.开1号和2号两个开关。
2.2分钟后关闭1号开关,进入房间。
3.显然亮着的灯由2号开关控制。触摸一下另外两盏不亮的灯,发热的灯肯定由1号开关确定。剩下的灯由3号开关控制。
活动1 状态分析,解决问题
4.1 算法及其特征
解决问题的步骤(流程图描述)
3.4 加密与解密
算法
算法的定义 算法是解决问题的方法和步骤。
算法的特征
1.有穷性。算法必须能在执行有限步骤之后终止。
2.确切性。算法中的每一次运算都有明确的定义,无二义性,计算结果唯一。
3.输入项。一个算法有0个或多个输入。
4.输出项。算法一定要有输出。任何算法不能“无功而返”。
5.可行性。算法在有限时间内完成,运算必须是可以实现的。
算法的描述方法 ①自然语言;②流程图;③伪代码。
4.1 算法及其特征
活动2(寻找被污染的药丸)有4个分别装了4种药丸的药瓶,里面每颗药丸都有单颗标准质量,其中有一个药瓶中的所有药丸都被污染了。每颗被污染的药丸比正常药丸增重1克。请在只允许称量一次的情况下,判断出哪个药瓶中的药丸被污染了。
活动2 定量分析,解决问题
4.1 算法及其特征
分析问题:如果从每个药瓶中取出1颗药丸分别进行称重,肯定可以判断哪颗药丸被污染了,但这不符合题目要求。如何改进判断方法呢?考虑:1颗药丸被污染,则增重1克;n颗药丸被污染,则增重n克;如果我们从不同的瓶子中取出不同颗数的药丸,则可以判断是哪个瓶子被污染了。
解决问题的步骤(自然语言描述)
1.从第1个瓶子取出1颗药丸;
2.从第2个瓶子取出2颗药丸;
3.从第3个瓶子取出3颗药丸;
4.从第4个瓶子取出4颗药丸;
以上共10颗药丸,进行称重,结果如下:
1.如果增重1克,则为1号瓶子污染;
2.如果增重2克,则为2号瓶子污染
……
请根据算法设计程序,输入单颗药丸重量及10颗药丸的总重量,判断输出是哪个瓶子被污染。
活动2 定量分析,解决问题
4.1 算法及其特征
活动3(寻找误删的ID号)学校历届校友的数据存储在学校网络中心服务器中(共10000条,无重复数据),某管理员由于误操作删除了一位校友的ID号(8位整数)。恰好在备份文件中保存了所有人员的ID号(无重复数据,无序)。怎样快速找出被误删的ID号以便回复数据?
活动3 巧用运算,解决问题
分析问题:仔细分析,我们发现参与处理的只有ID号,ID号的特征也很明显。
①ID号的数据类型及大小范围是:8位整型;
②数据在两个文件中出现的次数:1次;
③备份文件中ID号总和与故障文件中的ID号总和差值为:误删ID号。
4.1 算法及其特征
程序实现充分利用数值及计算的特点,可以将复杂的查找过程转换成简单的计算。准备copy.txt文件(10个数,每行一个)作为备份文件trouble.txt文件(9个数,每行一个)作为误删ID后的文件。用python编程计算两个文本文件中数据的总和之差。
活动3 巧用运算,解决问题
sum1=0 #设置初始值
sum2=0 #设置初始值
f1=open(r"copy.txt") #打开备份文件
li=f1.readlines() #读取每行数据
for line in li:
sum1=sum1+int(line) #将读取的数据做和运算
f1.close() #关闭备份文件
f2=open(r"trouble.txt") #打开故障文件
li=f2.readlines() #读取每行数据
for line in li:
sum2=sum2+int(line) #将读取的数据做和运算
f2.close() #关闭故障文件
print("被删除的ID号是:",sum1-sum2) #输出被删除的ID号
input("运行完毕,请按回车键退出...")
4.1 算法及其特征
活动4(尝试枚举,谁是冠军)冠军是ABCD四位同学中一位。A说:不是我。B说:是C。C说:是D。D说:C说的不对。已知四人中有一人说了假话。问:到底谁是冠军。
活动4 尝试枚举
分析问题:在不知道谁说真话、假话的情况下,最简单的方法就是把所有可能都枚举出来。因为只有一位冠军,可以枚举选手的编号,并对ABCD四个人的话进行判断。
枚举法是利用了计算机运算速度快、精确度高的特点来解决实际问题。枚举法是将所有可能的答案一一列举,合适就保留,不合适就丢弃,称为“枚举”或“穷举”。
4.1 算法及其特征
程序实现 我们需要把每个人说的话转化成计算机能够执行的表达式。A说不是我,可以表达为: i!=‘A’,i表示冠军的编号。它的结果是一个逻辑值,在数值计算中会自动转换成1(真)或0(假)。那么题目中说有3个人说话是真的,我们可以将4个人的话都换成逻辑表达式,然后计算累和,枚举i,看i为哪一个值的时候累和为3。
champion=['A','B','C','D'] #设置选手列表
for i in champion: #循环读取选手编号
cond=(i!='A') +(i=='C') + (i=='D')+(i!='D') #查找符合条件的选手
if cond==3: #说真话是否是3人
print("冠军是:",i) #输出冠军
input("运行完毕,请按回车键退出...")
活动4 尝试枚举
4.1 算法及其特征
课堂小结
算法的定义(描述解决问题的方法和步骤)
算法的描述方法(自然语言、流程图、伪代码)。
算法的特点:有穷性、确切性、0个或多个输入、至少1个输出、可行性。
几种常用的简单算法:状态分析、定量分析、巧用运算、简单枚举。