2.4.3 算法与程序实现的综合应用(第1课时) 课件(28张ppt)+教案 +练习 (含答案)

文档属性

名称 2.4.3 算法与程序实现的综合应用(第1课时) 课件(28张ppt)+教案 +练习 (含答案)
格式 zip
文件大小 4.0MB
资源类型 教案
版本资源 中图版(2019)
科目 信息技术(信息科技)
更新时间 2020-12-08 17:28:46

文档简介

2.4.3算法与程序实现的综合应用
第一课时练习题
一、判断
1、操作系统是一个在无限循环中执行的程序,因而不是一个算法。
2、为了保存具有映射关系的数据,Python
提供了列表。
3、算法+数据结构=算法
4、一个算法的功能结构不仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。
5、编写一个特定功能的程序,使用不同的算法可以让程序的体积、效率相差很多。所以算法是编程的精华所在。
6、选出一个好的算法,再配合以一种适宜的数据结构,这样程序的效率会大大提高。
7、Python语言的字典包含多个
key-value
对,而
key
是字典的关键数据,因此程序对字典的操作都是基于
key
的。
8、Python语言的字典,
key
就相当于它的索引,只不过这些索引不一定是整数类型,字典的
key
可以是任意不可变类型。
二、有如下python字典,按照要求实现每一个功能。
dict
=
{"k1":"v1","k2":"v2","k3":"v3"}
1、请循环遍历出所有的key
2、请循环遍历出所有的value
3、请删除字典中键值对"k1":"v1",并输出删除后的结果
4、请获取字典中"k2"对应的值
答案:
一、判断题
Y
N
N
Y
Y
Y
Y
Y
二、操作题
1、请循环遍历出所有的key
dict
=
{"k1":"v1","k2":"v2","k3":"v3"}
for
k
in
dict:
print(k)
2、请循环遍历出所有的value
dict
=
{"k1":"v1","k2":"v2","k3":"v3"}
for
k
in
dict:
print(dict[k])
3、请删除字典中键值对"k1":"v1",并输出删除后的结果
dict
=
{"k1":"v1","k2":"v2","k3":"v3","k4":"v4"}
print("dict删除k1前的值:
",dict)
dict.pop("k1")
print("dict删除k1后的值:
",dict)
4、请获取字典中"k2"对应的值
dict
=
{"k1":"v1","k2":"v2","k3":"v3","k4":"v4"}
print(dict["k2"])(共28张PPT)
第二章
算法与程序实现
2.4.3
算法与程序实现的综合应用
第一课时

录CONTENTS
01
程序与算法
02
Python基本数据类型
03
Python语言的字典
04
实践活动
05
拓展探索



01


程序与算法
程序=算法+数据结构
算法和程序都是指令的有限序列
,但是程序是算法,而算法不一定是
程序。算法是程序的核心内容,一个需要实现特定功能的程序,实现它的算法可以有很多种,算法的优劣决定着程序的好坏。数据结构与算法要通过程序的实现,才能由计算机系统来执行。可以这样理解,数据结构和算法形成了可执行的程序。



02

数据类型

03



(一)创建字典
(二)删除字典
(三)遍历字典


字典是?Python?提供的一种常用的数据类型。它用于存放具有映射关系的数据。
比如有份成绩表数据,语文:79,数学:80,英语:92,这组数据看上去像两个列表,但这两个列表的元素之间有一定的关联关系。如果单纯使用两个列表来保存这组数据,则无法记录两组数据之间的关联关系。


字典保存了两组数据,其中一组数据是关键数据,被称为
key;另一组数据可通过
key
来访问,被称为
value。形象地看,字典中
key

value
的关联关系如图
所示:
字典保存的关联数据
(一)创建字典
创建字典的语法如下:
格式:字典名={键1:值1,
键2:值2,
键3:值3,……)
如:
dict
=
(
‘a’:1,
‘b’:2,
‘c’:3,
‘d’:4
)
字典的特点:无序,键唯一。字符串和整数等都可以作为键。
程序既可使用花括号语法来创建字典,也可使用
dict()
函数来创建字典。实际上,dict
是一种类型,它就是
Python
中的字典类型。
在使用花括号语法创建字典时,花括号中应包含多个
key-value
对,1、键与值用冒号“:”分开;
2、项与项用逗号“,”分开;
创建字典举例:?
scores
=
{'语文':
89,
'数学':
92,
'英语':
93}
print(scores)
dict2
=
{(20,
30):'good',
30:'bad'}
print(dict2)
(一)创建字典
删除字典有两种情况:删除字典中的一个元素、删除字典的所有元素。
1、通过键删除字典中的元素:
?<字典>.pop(<键>)或?del(<字典>
[<键>])
2、删除字典中的所有元素:?
<字典>.clear()或?del(<字典>)
(二)删除字典
删除字典举例:
#
使用del语句删除key-value对
del
scores['语文']
del
scores['数学']
print(scores)
#
{92:
5.7}
2、字典的操作——删除字典
一个Python字典可能包含数百万个键值对,那么如何查询和处理数据呢?
(三)遍历字典
语法如下:
?<字典>[<键>]
1、字典常用函数
(三)遍历字典
(1)items()
items()是可以使用字典的元素创建一个以(键,
值)为一组的元组对象。例如:
>>>dict={’name’:’致远’,
’sex’:’男’,’age’:’20’}
>>>dict.items()
Dict_items(){[(’name’,’致远’
),(’sex’,’男’
),(’age’,’20’)]}
3、字典的操作——遍历字典
(2)keys()
keys()是字典常用的一种方法,它可以使用字典的键值创建一个的列表对象。例如:
>>>dict={’name’:’致远’,‘sex
’:’男’,’age
’:’
20’}
>>>dict.keys()
Dict_keys(){[’name’,’sex’,
’age’]}
3、字典的操作——遍历字典
阅读程序,写出结果
2、对于复杂的查询,可使用for循环。遍历一个字典有如下4种方式:
遍历字典的所有键。
遍历字典的所有值。
遍历字典的所有元素。
遍历字典的所有键值对。
3、字典的操作——遍历字典



04

实践活动
举重比赛按参赛运动员的体重不同来分级,比赛前运动员在饮食上更要控制,注意食物的卡路里,以确保每天摄入的热量控制在身体所需热量1500卡路里以内。
请编写一个程序,输入食物及相应克数,能立即算出摄入的卡路里是多少,并判断是否超过所需热量。
实践活动
1、思路分析
==============================

值(卡路里/100克)
------------------------------
香蕉
90
苹果
53
牛奶
54
酸奶
72
燕麦片
338
鸡蛋
114
米饭
116
2、算法描述
第一步:创建“食物热量对照表”对应的字典,明确键与值的映射。
第二步:打印输出字典。
第三步:利用循环,查询食物的热量,并计算总热量,直到输入q为止。
第四步:输出摄入总热量。
实践活动
实践活动
3、完成下列任务,补充程序代码
fooddict
=
{‘香蕉’:
90,
‘苹果’:
53,
完成字典的创建}
print('==============================')
print('食物\t热量(卡路里/100克)')
print('------------------------------')
for
k,
v
in
fooddict.(请补充完整):
print(k,'\t',
v)
#
\t
表示输出一个tab制表符
print('==============================')
totalcalorie
=
0
#
初始化总热量变量
while
(请补充完整):
print('请输入你吃的食物名(输入q终止):',end='
')
fname
=
input()
if
fname
==
'q'
or
fname
==
'Q':
#当输入q或Q时退出
break
if
fname
not
in
(请补充完整)():
print('没有此食物的数据,请输入数据库中食物名。')
continue
print('请输入食物重量(单位克):',
end='
')
fweight
=
int(input())
calorie
=
fweight
/
100.0
fooddict[fname]
#
计算热量
totalcalorie
+=
calorie
#
目前累计热量
print('摄入总热量为',
totalcalorie,
'卡路里。',
end='')
MinCalorie
=
1500
#
最低热量
if
totalcalorie
<=
MinCalorie:
print('今天热量摄取不超标,恭喜!')
else:
print('今天热量摄取超标',
totalcalorie
-
MinCalorie,
'卡路里,
请注意控制!')
实践活动
4、调试程序



05

尝试用字典作为加密和解密工具。
基于映射关系建立替换的规则,用字典做加密器,设计一个没有规律的字母映射关系。
拓展探索

谢教学设计
课例名称
2.4.3算法与程序实现的综合应用(第一课时)
学段学科
高一
信息技术
教材版本
人教中图版
章节
必修1
第二章
第四节
授课学校
核心素养
目标
根据具体需要,应用不同的算法,编写程序实现相应的问题求解。
借助给定的资源进行对比,完成相应问题分析。有意识地迁移,应用所学方法解决类似问题,强化主动应用算法知识解决问题的意识。
3、分析程序实现的关键技术,加深学生对数字化工具背后的技术思想和方法的感悟。
教学重难点
1、教学重点:
词频统计的算法设计与程序实现。
亲历阅读与分析程序,体会程序中每一语句、函数的含义。
2、教学难点:
结合具体问题进行算法优化,并总结此类问题的解决方法,迁移到类似问题中。
教材分析
本节内容是算法与程序实现的综合应用,教材案例中引用一个重要的技术支撑:字典。本节多了一些全新概念和功能实现,在教学中需要不拘泥于教科书中提供的资源,拓展更多的内容。
本节内容较多,分为两课时讲解,第一课时主要学习字典的相关知识,第二节课主要是经历具体问题的解决过程,进行算法与程序实现的综合应用,由浅入深,自顶而下,逐步求精地学习。
教学策略
本节强调学生通过感悟迁移和操作来体验算法与程序的综合应用,通过案例的举证和类比总结相关问题的解决方法。
突出学生主体,让学生亲历问题解决的全过程,通过师生交流、生生交流、逐步理解和内化算法思想,鼓励学生对运行结果进行分析,思考问题产生的原因,进一步优化。
2.4.3算法与程序实现的综合应用
一、问题引入
思考:算法与程序的关系?
设计意图:对前面所学知识进行梳理。小组合作讨论算法与程序之间的关系,归纳算法与程序设计应用的一般规律,总结算法与程序设计在解决问题中的地位与作用。
二、Python基本数据类型
设计意图:温故知新,通过导图重温前面所学相关数据类型,并了解未知,引出本节课重要内容:字典。
三、Python字典
字典是Python提供的一种常用的数据类型。它用于存放具有映射关系的数据。字典保存了两组数据,其中一组数据是关键数据,被称为
key;另一组数据可通过
key
来访问,被称为
value。
设计意图:掌握核心概念和技术工具,这是本课的重点。通过观察思考接受新知,并在完成任务中把所学知识整理得更加条理化,从中发展思维。
任务1:请同学举例说明映射关系。
(一)创建字典
创建字典的语法如下:
格式:字典名={键1:值1,
键2:值2,
键3:值3,……)
说明:程序既可使用花括号语法来创建字典,也可使用
dict()
函数来创建字典。实际上,dict
是一种类型,它就是
Python
中的字典类型。
在使用花括号语法创建字典时,花括号中应包含多个
key-value
对,1、键与值用冒号“:”分开;2、项与项用逗号“,”分开。
例1:
scores
=
{'语文':
89,
'数学':
92,
'英语':
93}
print(scores)
例2:
dict2
=
{(20,
30):'good',
30:'bad'}
print(dict2)
(二)删除字典
删除字典有两种情况:其一是删除字典中的一个元素,其二是删除字典的所有元素。
1、通过键删除字典中的元素:
<字典>.pop(<键>)或?del(<字典>
[<键>])
2、删除字典中的所有元素:?
<字典>.clear()或?del(<字典>)
任务2:说出下列程序输出结果。
#
使用del语句删除key-value对
del
scores['语文']
del
scores['数学']
print(scores)
#
{92:
5.7}
(三)遍历字典
一个Python字典可能包含数百万个键值对,那么如何查询和处理数据呢?
语法如下:
<字典>[<键>]
1、字典常用函数
(1)items()可以使用字典的元素创建一个以(键,
值)为一组的元组对象。例如:
>>>dict={’name’:’致远’,
’sex’:’男’,’age’:’20’}
>>>dict.items()
Dict_items(){[(’name’,’致远’
),(’sex’,’男’
),(’age’,’20’)]}
(2)keys()可以使用字典的键值创建一个的列表对象。
例如:
>>>dict={’name’:’致远’,‘sex’:’男’,’age’:’20’}
>>>dict.keys()
Dict_keys(){[’name’,’sex’,
’age’]}
任务3:阅读程序,写出结果
2、对于复杂的查询,可使用for循环。遍历一个字典有如下4种方式:
遍历字典的所有键。
遍历字典的所有值。
遍历字典的所有元素。
遍历字典的所有键值对。
四、实践活动
举重比赛按参赛运动员的体重不同来分级,要比赛时运动员在饮食上都要控制,注意食物的卡路里,以确保每天摄入的热量控制在身体所需热量1500卡路里以内。
请编写一个程序,输入食物及相应克数,能立即算出摄入的卡路里是多少,并判断是否超过所需热量。
设计意图:让学生在解决问题中发挥主体作用,学以至用,提高综合素质。
1、思路分析
2、算法描述
第一步:创建“食物热量对照表”对应的字典,明确键与值的映射。
第二步:打印输出字典。
第三步:利用while循环,查询食物的热量,并计算总热量,直到输入q为止。
第四步:输出摄入总热量。
3、完成下列任务,补充程序代码
fooddict
=
{‘香蕉’:
90,
‘苹果’:
53,
完成字典的创建}
print('==============================')
print('食物\t热量(卡路里/100克)')
print('------------------------------')
for
k,
v
in
fooddict.(请补充完整):
print(k,'\t',
v)
#
\t
表示输出一个tab制表符
print('==============================')
totalcalorie
=
0
#
初始化总热量变量
while
(请补充完整):
print('请输入你吃的食物名(输入q终止):',end='
')
fname
=
input()
if
fname
==
'q'
or
fname
==
'Q':
#当输入q或Q时退出
break
if
fname
not
in
(请补充完整)():
print('没有此食物的数据,请输入数据库中食物名。')
continue
print('请输入食物重量(单位克):',
end='
')
fweight
=
int(input())
calorie
=
fweight
/
100.0
fooddict[fname]
#
计算热量
totalcalorie
+=
calorie
#
目前累计热量
print('摄入总热量为',
totalcalorie,
'卡路里。',
end='')
MinCalorie
=
1500
#
最低热量
if
totalcalorie
<=
MinCalorie:
print('今天热量摄取不超标,恭喜!')
else:
print('今天热量摄取超标',
totalcalorie
-
MinCalorie,
'卡路里,
请注意控制!')
4、调试程序
五、深入探究
尝试用字典作为加密和解密工具。
基于映射关系建立替换的规则,用字典做加密器,设计一个没有规律的字母映射关系。