信息技术选修1 数据与数据结构1.实现文本字符的编辑获奖课件ppt
展开第三单元 特殊的线性表
项目六 探究文本字符的处理
——字符串的操作
第一课时 实现文本字符的编辑
❑教材分析
本节的主要内容是实现文本字符的编辑。以探究文本字符的处理为主线,整个项目分为实现文本字符编辑、实现文本查找、实现文本函数功能三个问题解决。本节课时是从探究电子表格应用中对文本字符进行插入、删除,引出文本字符在计算机中对应于字符串数据,而字符串数据是以种特殊数据类型的线性表形式存储数据的。在这一课时过程中,让学生逐步理解本项目的核心概念“字符串”及字符串应用的基本操作,如删除、插入等,并在活动中让学生利用 Python编程实现这些基本操作。通过这一项目学习过程,进一步培养学生的信息意识和计算思维。
❑教学目标
1.理解字符串的概念和特征;
2.理解字符串存储的原理和特点;
3.理解字符串的删除、插入两种基本操作和作用;
4.能设计字符串删除、插入的算法;
5.能用Python编写程序,实现字符串删除、插入等操作;
6.培养学生的信息意识和计算思维能力。
❑教学重点
1.理解字符串的概念;
2.理解字符串的存储结构;
3.掌握字符串处理的基本操作;
❑教学难点
1.能编程实现字符串处理的基本操作;
2.培养学生的信息意识和计算思维能力。
❑教学方法
体验法、讲授法、讨论法、示例法
❑教学准备
计算机教室、多媒体设备、多媒体广播软件、教学课件、Python编程环境、学生上机练习的程序文件,预先编制的Python程序文件等。
❑教学过程
一、新课导入
电子表格等办公软件能方便地对文本字符进行如插入、删除、查找等编辑和处理(图3-12)。这些文本字符的操作是如何实现的呢?文本字符如学生的姓名、性别等,在计算机世界中对应于字符串数据。字符串是非数值计算问题所要处理的主要对象之一,在文本编辑等方面使用非常广泛。因此,我们有必要了解字符串的概念及其基本操作。
二、认识字符串
核心概念
字符串( string)(简称串):由零个或多个字符组成的有限序列。
字符串的长度:字符串中字符的个数。
小贴士
字符串是特殊的线性表即数据元素只有一个字符的线性表。字符串的插入、删除操作实现与一般的线性表相同。
文档中的一个词组、一句话或选中的一段文字就是一个具体的字符串,在计算机中道常记为s=“a1a2a3…an“,其中s是字符串的名,双引号括起来的字符序列称为字符串的值; ai(1≤i≤n)可以是字母、数字或其他字符,n为字符串长度。长度为零的串称为空串。学符串是有限个字符组成的序列,它也是一种线性表,只是线性表中的每个数据元素只能是字符类型,因此称字符串为特殊的线性表。字符串就是字符序列,是数据元素为字符型的线性表。因为字符串的数据元素类型是确定的字符类型,所以大部分程序设计语言都提供了字符串的存储和对字符串操作的丽数,只要直接调用系统提供的字符串操作函数即可实现对字符串的操作。
字符串的抽象数据类型表示如下:
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的子串
三、字符串的常用基本操作
1.插入操作
字符串中任何位置上都可以插入字符串。
例如,s=“Cheng,Fei”中第11个位置(下标为10)上插人字符串t=“Adam”,插入后s=“Cheng,Fei Adam”。在s=“Cheng,Fei”中第7个位置(下标为6)上插入宇符串t=“Adam"(末尾须有一个空格),插入后s=“Cheng,Adam Fei”。
在Python语言中没有直接使用的插入函数,可用截取子串和连接操作实现插入操作。使用数组存储时,算法的基本思想是先将插入位置上的元素依次后移空出空间然后插入元素。
2.删除操作
删除宇符串中的子串操作。
例如,=“China Beijing Shanghai”中将第14个位置(下标为13)开始的长度为9的子串删除,删除后s=“China Beijing”。
在Python语言中可以用del语句实现删除操作。使用数组存储时,算法的基本思想是将被删结点后面的数据元素依次往前移动覆盖前一结点(有些程序设计语言中字符串数组最后一个元素是结束符)。
四、实现文本字符的编辑
用户在输入文本字符时,会发生漏输或多输,这时对输入的文本进行编辑修改,如插入或删除字符。使用文档处理软件进行编辑修改的操作很简单,只要定位光标,直接删除和插入即可,那么这些操作对于开发者来说是如何通过编程实现的呢?
在输入文本数据时,假设用数组存放一串文本字符,即字符串,实际上就是对数组进行赋值操作,如图3-13所示为存储学生信息表中学生李婷的昵称“Audrey”的数组s(以下都以存储单元加数组下标的形式表示)。
该字符串中有6个字符,称其长度的顺序存储若输入时,“ Audney”错输成 “Audneey”,多输了一个字母“e”,要在“Audneey”中删除这个“e”的过程如图3-14,图3-15所示。
图3-14 图3-15
思考与讨论
1.如果插入和删除的是多个字符的字符串,该如何处理?
插入或删除多个字符的操作是在插入或删除个字符的基础上重复操作完成的。要确定重复操作次数,须确定字符的个数(字符串的长度)。
2.使用链表如何实现字符串的存储和删除?
与线性表的链表操作基本相同。
五、课堂活动
1.尝试写出字符串抽象数据类型的定义。
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的子串
2.画出字符串插入与删除的算法流程图,利学过的数组知识,尝试完成下述代码,理解每一条语句的作用,并上机实践(为了便于理解算法思想,本项目所有活动采用 Python列表模拟数组的方式,而不直接采用 Python语言的字符串变量及相关操作)。
(1)插入程序
s=[‘A’,’u’,’n’,’e’,’y’] #定义s列表并赋值
n=len(s) #n为s列表长度
t= input(“输入要插入的字符串")
m=len(t)
s.extend(t) #扩大s列表空间
J=n-1
i=3
while(j>=i-1):
_____________ #元素后移,空出插入字符串的位置
_____________
for j in range(0. m):
_____________ #依次送入元素
n=n+m
print(“插入后的字符串为",s)
参考答案:
s[j+m]=s[j]
j=j-1
s[j+i-1]=t[j]
(2)删除程序:
s=[‘A ',u’,’d’, ‘n’, 'n’, ‘n,'e’,'e’, ‘y’]
print(s)
n=len(s)
i=5 #位置开始删除m个字符
m=3
j=i-1+m
while (j<n):
____________ #元素前移,覆盖删除部分
____________
if(i-1+m>n-1): #释放多余的空间
del s[i-1: n]
else:
del s[n-m: n]
print(“删除第",”j”位置,长度为”,m,"的数据后:",s)
参考答案:
s[j-m]=s[j]
j=j+1
2020-2021学年3.探究点餐数据的计算机处理过程精品ppt课件: 这是一份2020-2021学年3.探究点餐数据的计算机处理过程精品ppt课件
高中信息技术教科版 (2019)选修1 数据与数据结构2.3 字符串应用课文ppt课件: 这是一份高中信息技术教科版 (2019)选修1 数据与数据结构2.3 字符串应用课文ppt课件,共12页。PPT课件主要包含了教学目标,字符串及相关概念,字符串匹配,相关代码如下,线性表和字符串的区别等内容,欢迎下载使用。
高中信息技术1.探究计算机中算术表达式的计算原理优秀ppt课件: 这是一份高中信息技术1.探究计算机中算术表达式的计算原理优秀ppt课件,文件包含项目七第一课时pptx、项目七第一课时doc等2份课件配套教学资源,其中PPT共30页, 欢迎下载使用。