中小学教育资源及组卷应用平台
第三单元
特殊的线性表
项目四
探索电子排队预订功能的实现
——队列的应用
第三课时
程序实现
?教材分析
本节的主要内容是程序实现。通过以探索电子排队预订功能的实现为主线,整个项目分为问题分析、设计算法和程序实现三个部分。本节课是根据算法,用Python编程实现排队预订的进队与出队操作。通过本节课的学习能培养学生的信息意识和计算思维能力。
?教学目标
1.能用Python编写程序,实现进队、出队操作;
2.培养学生的信息意识和计算思维能力。
?教学重点
1.用Python编写程序,实现进队、出队操作。
?教学难点
1.用Python编写程序,实现进队、出队操作。
2.培养学生的信息意识和计算思维能力。
?教学方法
体验法、讲授法、讨论法、示例法
?教学准备
计算机教室、多媒体设备、多媒体广播软件、教学课件、Python编程环境、学生上机练习的程序文件,预先编制的Python程序文件等。
?教学过程
一、新课导入
在算法流程框图中完成进队和出队操作(数组名和变量名可以自取)。
进队操作
出队操作
活动答案参考:
巩固进队、出队算法知识。
二、python
中List
与array互换
1.输入list:
>>>
import
numpy
as
np
>>>
a
=
[[1,2],[3,4]]
>>>
type(a)
'list'>
2.将list转换为数组:
>>>
b
=
np.array(a)
>>>
b
array([[1,
2],
[3,
4]])
>>>
type(b)
'numpy.ndarray'>
3.将数组转换为list:
>>>
c
=
b.tolist()
>>>
c
[[1,
2],
[3,
4]]
>>>
type(c)
'list'>
三、程序实现
根据上述算法,可以利用学过的编程知识来编程实现排队预订。首先要定义队列的类型并进行初始化(即置空)操作,指针变量要设定初始值。用列表表示队列的类型定义如下:
class
SqQueue:
self
_init_(self,size):#队列初始化
self.size=size
#定义队列长度
self.
queue=[‘’]
size
#存储队列元素的列表
self.
front=0
#头指针
self.
rear=0
#尾指针
self.number==0
#计数器
四、课堂活动
打开配套资源中“循环顺序队列py”程序,补充完整以下代码,并进行运行测试,模拟实现排队预订功能。
def
EnQueue(self,e):#进队程序
if(self.number==self.size):
print("队满,不能进”)
else:
self.queue[self.
rear]=e
——————————
self.number=self.number+1
def
OutQueue(self):#出队程序
if
self.number==0:
print("队空")
return-1
else:
e=
self.queue[self.
Front]
——————————
self.number=self.
Number-1
return
e
参考答案:
进队程序空白处填写:
Self.rear=(self.rear+1)%self.size
出队程序空白处填写:
Self.front=(self.front+1)%self.size
21世纪教育网
www.21cnjy.com
精品试卷·第
2
页
(共
2
页)
HYPERLINK
"http://21世纪教育网(www.21cnjy.com)
"
21世纪教育网(www.21cnjy.com)(共20张PPT)
第三课时
程序实现
信息技术沪教版
选择性必修1
第三单元
特殊的线性表
项目四
探索电子排队预订功能的实现
——队列的应用
一、新课导入
二、python
中List
与array互换
三、程序实现
四、课堂活动
一、新课导入
在算法流程框图中完成进队和出队操作(数组名和变量名可以自取)。
进队操作
完成下面的任务
开始
队不满吗?
否
是
结束
在算法流程框图中完成进队和出队操作(数组名和变量名可以自取)。
进队操作
完成下面的任务
开始
队不满吗?
否
是
结束
queue[rear]
←
e
rear←(rear+1)%queue.M
number←number+1
在算法流程框图中完成进队和出队操作(数组名和变量名可以自取)。
出队操作
完成下面的任务
开始
队不空吗?
否
是
结束
在算法流程框图中完成进队和出队操作(数组名和变量名可以自取)。
出队操作
完成下面的任务
开始
队不空吗?
否
是
结束
number←number-1
front←(front+1)%queue.M
e←queue[front]
二、python
中List
与array互换
1.输入list:
>>>
import
numpy
as
np
>>>
a
=
[[1,2],[3,4]]
>>>
type(a)
'list'>
2.将list转换为数组
>>>
b
=
np.array(a)
>>>
b
array([[1,
2],
[3,
4]])
>>>
type(b)
'numpy.ndarray'>
3.将数组转换为list
>>>
c
=
b.tolist()
>>>
c
[[1,
2],
[3,
4]]
>>>
type(c)
'list'>
三、程序实现
根据上述算法,可以利用学过的编程知识来编程实现排队预订。首先要定义队列的类型并进行初始化(即置空)操作,指针变量要设定初始值。用列表表示队列的类型定义如下:
class
SqQueue:
self
_init_(self,size):#队列初始化
self.size=size
#定义队列长度
self.
queue=[‘’]
size
#存储队列元素的列表
self.
front=0
#头指针
self.
rear=0
#尾指针
self.number==0
#计数器
四、课堂活动
打开配套资源中“循环顺序队列py”程序,补充完整以下代码,并进行运行测试,模拟实现排队预订功能。
def
EnQueue(self,e):#进队程序
if(self.number==self.size):
print("队满,不能进”)
else:
self.queue[self.
rear]=e
——————————
self.number=self.number+1
打开配套资源中“循环顺序队列py”程序,补充完整以下代码,并进行运行测试,模拟实现排队预订功能。
def
EnQueue(self,e):#进队程序
if(self.number==self.size):
print("队满,不能进”)
else:
self.queue[self.
rear]=e
self.number=self.number+1
self.rear=(self.rear+1)%self.size
打开配套资源中“循环顺序队列py”程序,补充完整以下代码,并进行运行测试,模拟实现排队预订功能。
def
OutQueue(self):#出队程序
if
self.number==0:
print("队空")
return-1
else:
e=
self.queue[self.
Front]
——————————
self.number=self.
Number-1
return
e
打开配套资源中“循环顺序队列py”程序,补充完整以下代码,并进行运行测试,模拟实现排队预订功能。
def
OutQueue(self):#出队程序
if
self.number==0:
print("队空")
return-1
else:
e=
self.queue[self.
Front]
self.number=self.
Number-1
return
e
self.front=(self.front+1)%self.size
谢谢
21世纪教育网(www.21cnjy.com)
中小学教育资源网站
有大把高质量资料?一线教师?一线教研员?
欢迎加入21世纪教育网教师合作团队!!月薪过万不是梦!!
详情请看:
https://www.21cnjy.com/help/help_extract.php