沪教版(2019)选修1 数据与数据结构2.实现文本的查找优秀课件ppt
展开项目六 探究文本字符的处理
——字符串的操作
第二课时 实现文本的查找
❑教材分析
本节的主要内容是实现文本的查找。以探究文本字符的处理为主线,整个项目分为实现文本字符编辑、实现文本查找、实现文本函数功能三个问题解决。本节课时是从探究电子表格应用中对文本字符进行比较与查找,引出文本字符在计算机中对应于字符串数据,而字符串数据是以种特殊数据类型的线性表形式存储数据的。在这一课时过程中,让学生逐步理解本项目的核心概念“字符串”及字符串应用的基本操作,如比较与查找等,并在活动中让学生利用 Python编程实现这些基本操作。通过这一项目学习过程,进一步培养学生的信息意识和计算思维。
❑教学目标
1.理解字符串的查找等基本操作和作用;
2.能设计字符串比较、查找的算法;
3.能用Python编写程序,实现字符串比较、查找等操作;
6.培养学生的信息意识和计算思维能力。
❑教学重点
1.理解字符串的概念;
2.理解字符串的存储结构;
3.掌握字符串处理的基本操作;
❑教学难点
1.能编程实现字符串处理的基本操作;
2.培养学生的信息意识和计算思维能力。
❑教学方法
体验法、讲授法、讨论法、示例法
❑教学准备
计算机教室、多媒体设备、多媒体广播软件、教学课件、Python编程环境、学生上机练习的程序文件,预先编制的Python程序文件等。
❑教学过程
一、新课导入
复习字符串的概念并尝试写出字符串抽象数据类型的定义。
ADT String:
数据对象:D={ai l ai, ∈ CharacterSet,i=1,2,…,n,n>=0}
数据关系:R={<ai-1,ai>l ai-1,ai ∈ D,i=2,...,n}
基本操作:
def Assign(self,chars) #生成一个值等于chars的字符串
def Copy(self,s) #复制字符串。
def Compare(self,s)
#比较操作,若大于s则返回1;若等于s则返回0;若小于则返回-1
def Length(self) #返回字符串的元素个数,即求长度
def Concat(self,s) #连接字符串s
def SubString(self,pos,len) #pos正确,返回第pos个字符起长度为len的子串
def Index(self,s,pos)
#返回子串s在字符串中第pos个字符之后第一次出现的位置;若无则返回0
def Replace(self,s,t) #用t替换字符串中出现的所有的子串s
def Insert(self,pos,s) #在字符串的第pos个字符位置上插入s
def Deletel(self,pos,len) #删除字符串中第pos位置开始长度为len的子串
二、字符串的基本操作——比较操作
比较两个字符串S和T是否相等。
电子表格处理软件提供了对文本查找功能。字符串的比较是按字符的ASCII码值从左到右一一依次比较,直到出现不同的字符为止。
两个字符串除比较是否相等外,还有大于、小于的比较。
例如,比较字符串“ABCDE”与字符串“ABRA”的大小,方法是从第一个字符开始,一一对应比较,因“C”>“R”为false,所以“ABCDE”>“ABRA”为false。而“ABCDE”<“ABRA”为true。又如“be”>“abcde”为true,因为“b”>“a”为true。
算法的基本思想是将存放两个字符串的数组对应字符元素 一比较,直至得出比较的结果。
三、实现文本的查找
假设要在电子表格软件中,查找姓名为“Gu, Xiao Wen的学生。可以使用软件自带的查找功能,如图3-17所示。
3-17 查找功能
看似简单的查找操作,编程实现时,需要对字符串进行匹配,即使用字符串的比较操作。例如,英文名“Gu,XiaoWen”与“Gu, Xiao Mei”比较是否相等的比较过程如图3-18所示。
图3-18比较过程
即对两个字符串中的字符依次一一进行比较,直至遇到两个字符不相等或比较完所有字符,得出字符串不相等或相等的结论。
小贴士
比较操作:两个字符串的字符 对应按字典序进行比较。可以进行相等、大于或小于的比较。
四、课堂活动
画出比较两个字符串s和的算法流程图,尝试完成下述代码,理解每一条语句的作用,并上机实践。
s=[‘G’,’u’,’’,’X’,’i’,’a’,’o’,’ ’,’W’’,’e’,’n’] #定义字符串s列表
t=[‘G’,’u’,’’,’X’,’i’,’a’,’o’,’ ’,’M’’,’e’,’i’] #定义字符串t列表
n=len(s)
m=len(t)
i=0
j=0
while (i<n and j <m):
if(_____________):
Print(“字符串s小于字符串t”)
break
else:
if(_____________):
print("字符串s大于字符串t")
break
i=i+1
j=j+1
if(_____________):
print(“字符串s等于字符串t”)
参考答案:
s[i]<t[j]
s[i]>t[j]
i==n and j==m
2020-2021学年3.探究点餐数据的计算机处理过程精品ppt课件: 这是一份2020-2021学年3.探究点餐数据的计算机处理过程精品ppt课件
高中信息技术教科版 (2019)选修1 数据与数据结构2.3 字符串应用课文ppt课件: 这是一份高中信息技术教科版 (2019)选修1 数据与数据结构2.3 字符串应用课文ppt课件,共12页。PPT课件主要包含了教学目标,字符串及相关概念,字符串匹配,相关代码如下,线性表和字符串的区别等内容,欢迎下载使用。
高中信息技术沪教版(2019)选修1 数据与数据结构2.探究为何二叉树能将算术表达式转换为后缀表达式一等奖课件ppt: 这是一份高中信息技术沪教版(2019)选修1 数据与数据结构2.探究为何二叉树能将算术表达式转换为后缀表达式一等奖课件ppt,文件包含项目七第二课时pptx、项目七第二课时doc等2份课件配套教学资源,其中PPT共41页, 欢迎下载使用。