欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    其他典型算法之文本处理-专项训练浙江2022届选考专用(教师版).docx

    • 资源ID:41109362       资源大小:735.44KB        全文页数:7页
    • 资源格式: DOCX        下载积分:3.6金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要3.6金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    其他典型算法之文本处理-专项训练浙江2022届选考专用(教师版).docx

    其他典型算法之文本处理【例1】 编写VB程序,实现如下功能:在文本框Text1中输入包含数字、字母的字符串,单击“统计”按钮Commandl,统计该字符串中数字字符的个数,并在标签Label1中输出结果。为实现上述功能,请在划线处填入合适代码或选项。Private Sub Commandl_Click()Dim s As String,c As StringDim i As Integer,n As Integer,num As Integers='(填程序代码) num=0n=Len(s)'(填字母:从下列A、B、C三个选项中选取一项) '(填字母:从下列A、B、C三个选项中选取一项)If c>= 0 And c<=9 Thennum=num+1End IfNext iLabell.Caption=str(num)End Sub划线、的选项:A.Do While i<=nB.c=Mid(s,i,1)C.For i=1 To n答案:Text1.TextCB解析:这是一个关于文本统计的题型,这类题型通常先是从文本框中获取待处理的字符串存入变量,然后通过循环,每次用Mid函数提取1个(或若干个)字符,对字符进行分析统计。循环次数一般是字符串的个数。因此,处是要从文本框中获取待处理的字符串,并将其存入变量,填Text1.Text。处设置循环,循环次数一般是字符串的个数,可填For i=1 To n或For i=1 To len(Text1.Text)。根据语句“If c>=0 And c<=9 Then”判断,变量c存的是一个字符,因此处需从s中提取1个字符。【例2】.要求从原文本(均为ASCII字符)中删除指定的单词(完整的单词),并将处理后的文本重新输出。程序界面如图所示,在文本框Text1中输入原文本,在文本框Text2中输入需要删除的单词,单击“删除”按钮(Command1)后,在文本框Text3中输出处理后的结果。实现上述功能的VB程序如下,但加框处有错,请更正。Function delstr(s1 As String, s2 As String) As StringDim n1 As Integer, n2 As Integer, i As Integer,ch As Stringn1 = Len(s1) : n2 = Len(s2) : i = 1Do While i <= n1word = Mid(s1, i, n2)ch = Mid(s1, i + n2, 1)If i = 1 Thenf = zm(ch)Elsef = zm(Mid(s1, i - 1, 1)And zm(ch)'End IfIf word = s2 And Not f Theni = i +1'Elses = s + Mid(s1, i, 1)i = i + 1End If Loop delstr = sEnd FunctionFunction zm(ch As String) As BooleanIf ch > a And ch <= z Or ch >= A And ch <= Z Thenzm = TrueElsezm = FalseEnd IfEnd FunctionPrivate Sub Command1_Click()Dim t1 As String, t2 As Stringt1 = Text1.Textt2 = Text2.TextText3.Text = delstr(t1, t2)End Sub答案: f =zm(Mid(s1, i - 1, 1) Or zm(ch)i = i + n2解析: 程序中变量word存放位置i开始的一个单词,ch存放单词word后的一个字符。处是判断单词word左右是否为字母,只要左右有一个是字母,则f=true。比如当i=8,word=tea,但其右边是字母c,说明这个“tea”只是单词“teacher”中的一部分,不能删除,得f=true。处所在的if语句功能为判断是否要删除单词,如果满足条件word = s2 And Not f,表明i位置开始的单词word就是要删除的单词s2,且该词左右都不是字母,则删除。否则不删除,把i位置的字母存入s,位置i的值加1指向下一个字母。所以处应填i = i + n2,表示略过n2个字母。课后训练1.编写“单词查询”程序,实现如下功能:在文本框Text1中输入一段英文文本(以“.”为结束符),在文本框Text2输入一个英文字母,单击“获取单词”按钮Command1,在列表框List1依次显示Text1中包含该英文字母的所有单词。程序运行界面如图所示。(1)实现上述功能的VB程序如下,请在划线处填入合适的代码。Private Sub Command1_Click()Dim s As String,tmp As String,c As StringDim n As Integer,i As Integer,flag As BooleanDim cnt As Integer'存储符合条件的单词数s=Text1.Text:n=Len(s):flag=False:cnt=0List1.ClearFor i=1 To nc=Mid(s,i,1)If c>=a And c<=z Or c>=A And c<=Z Then If c=Text2.Text Then flag=True:cnt=cnt+1ElseIf flag Then List1.AddItem tmptmp=  End IfNext iIf cnt=0 ThenList1.AddItem 找不到符合条件的单词.End IfEnd Sub(2)若文本框Text2中输入“M”,单击“获取单词”按钮后,列表框List1中显示的单词个数是。 答案 (1)tmp=tmp+cflag=False(2)1解析 该算法查找的方法是:每次循环,从文本中取出一个字符c,若是字母,存入变量tmp,如果字符c等于要查找的字母,则flag=True,表示当前单词含有要查找的字母,同时cnt的值加1,变量cnt存放含有要查找的字母的单词的数量。如果字符c不是字母,说明当前单词结束,此时判断flag的值,如果flag=True,则输出当前单词。接下来要取出下一个单词,需把变量tmp设为空值,flag设为False。2.RLE(Run-Length Encoding行程长度编码)压缩算法是Windows系统中使用的一种图像文件压缩方法,用两个数据表示,第一个记录指定像素重复的次数;第二个记录具体像素的值。例如,有一表示颜色像素值的字符串RRRRGGBBB,用RLE压缩方法压缩后可用4R2G3B表示。小芳设计了一个VB程序实现RLE算法功能。在Text1中输入原始数据,点击“压缩”按钮Command1后,在Text2中显示经过压缩后的数据。程序运行界面如下图所示。(1)这里采用的压缩技术属于(选填有损压缩/无损压缩)。 (2)实现上述功能的VB程序如下,请在划线处填入合适的代码Private Sub Command1_Click()Dim s1 As String,s2 As String,c As Integer,p As Integers1=Text1.Texts2= :c=1: Do While p<=Len(s1)If Mid(s1,p,1)=Mid(s1,p-1,1) Thenc=c+1Elses2=s2+Str(c)+Mid(s1,p-1,1) End Ifp=p+1LoopText2.Text= End Sub答案 p=2c=1s2+Str(c)+Mid(s1,p-1,1)或s2+Str(c)+Mid(s1,len(s1),1)解析 程序中变量p指示取字符的位置,循环中比较的两个字符位置是p和p-1,说明p的初值应该是2,所以处填p=2。本程序压缩的具体算法是:比较p和p-1位置中的两个字符,若相等,则c加1,若不等,则把之前统计的相同字符数c和字符存入变量s2,同时c重新赋值为1,所以处填c=1。循环结束后,最后一串相同字符的信息未存入变量s2,所以处填s2+Str(c)+Mid(s1,p-1,1)或s2+Str(c)+Mid(s1,len(s1),1)。3.通常加密算法中密钥中的字符不能有重复,现编写一VB程序,检查密匙是否有重复。单击“检验”按钮Command1,若出现的是互不重复的一串大写字母,则在列表框List1中输出“该字符串符合加密条件!”,反之,则在列表框List1中输出重复的字母及该字母第二次出现的位置。程序运行界面如图所示。(1)为实现上述功能,请在划线处填入合适的代码。Private Sub Command1_Click()Dim s As String,i As Integer,a(1 To 26) As Integer,r As String,j As IntegerDim b(1 To 26) As String,c(1 To 100) As Integers=Text1.TextList1.ClearFor i=1 To 26a(i)=0Next ij=1For i=1 To Len(s)r=Mid(s,i,1) If a(Asc(r)-64)=2 Thenb(j)=r:c(j)=i:j=j+1End IfNext iIf j=1 Then List1.AddItem 该字符串符合加密条件!For i=1 To j-1 Next iEnd Sub(2)由上述算法可知,在文本框Text1中输入字符串“INTEGER”,在列表框中输出的值为。 答案 a(Asc(r)-64)=a(Asc(r)-64)+1List1.additem b(i)+ +Str(c(i)解析 程序中涉及3个数组,数组a存放各字母出现的次数,数组b存放第二次出现的字母,数组c存放字母第二次出现时的位置。本题难点在于如何把字母转换为对应的编号x,并把字母出现的次数存入数组a对应的元素a(x)中。即:如果是A,对应编号是1,则a(1)=a(1)+1;如果是B,对应编号是2,则a(2)=a(2)+1;以此类推。计算编号的表达式是Asc(r)-64或Asc(r)-Asc(“A”)+1,若a(Asc(r)-64)=2,说明该字母出现了2次,此时记录字母到b(j),位置i存入c(j)。4.用VB编写一个字符串分行程序,功能如下:单击“分行”按钮Command1,将文本框Text1中的英文文本在列表框List1中分行显示(分行时单词不得跨行,每行字符尽可能多但不超过40个),并在标签Label1中输出总行数,运行效果如下图所示。分行算法如下:(1)将文本框中的字符串保存到变量s中;(2)当s中字符个数超过40时,循环执行下列步,否则跳转到(3):如果第41个字符不是英文字母,则分行位置p=40;否则,向左逐个查找,直至找到第一个非英文字母,将其位置作为分行位置p;截取s的前p个字符,作为新增行显示在列表框List1中,同时总行数加1;将s中未分行部分重新赋值给变量s。(3)将s作为新增行显示在列表框List1中,同时总行数加1。实现上述功能的VB程序如下,请在划线处填入合适代码。Private Sub Command1_Click()Dim s As String, c As StringDim r As Integer, total As Integer, p As Integertotal= 0s = Do WhileLen(s)> 40r = 41c = Mid(s,r,1)If Not(c > = aAnd c < = z)Or (c>=AAnd c<=Z) Thenp = 40Else'从第41个字符开始向左找到第1个非英文字母,并将其位置值赋给pDo While (c >=aAnd c<=z)Or (c>=AAnd c<=Z)r= c=Mid(s,r,1)Loopp=rEnd IfList1.AddItem Mid(s,1,p)total=total+1s= LoopList1.AddItem stotal=total+1Label1.Caption=共+Str(total)+行End Sub在程序、划线处,填入适当的语句或表达式,把程序补充完整。答案: Text1.Textr-1Mid(s,p+1,Len(s)-p)或Mid(s,p+1)或Right(s,Len(s)-p)解析: 根据题目中自然语言的描述,本处是将文本框text1中输入的字符串保存到变量s中。变量r指示字符位置,从第41个字符开始向左找到第1个非英文字母,r每次循环递减1。将s中未分行部分重新赋值给变量s。5.小明编写某VB程序,其功能如下:文本框Text1里输入数学表达式(假设表达式的长度小于等于100),在列表框List1里输出所有配对括号在表达式中的位置。例如在文本框Text1里入:“12􀆽 (3-(1+2)􀆽 3”,程序运行效果如图所示。实现上述功能的VB代码如下,在划线的地方填入合适代码,完善程序。Private Sub Command1_Click()Dim s As String,i As Integer,top As Integer,a(1 To 100) As Integers=Text1.Text:i=1:top=0Do While i<=Len(s)If Mid(s,i,1)=( Thentop=top+1 End IfIf Mid(s,i,1)=) ThenList1.AddItem Str(a(top)+ +Str(i) End Ifi=i+1LoopEnd Sub答案 a(top)=itop=top-1解析 程序中,数组a存放左括号出现的位置,变量top存放数组a中未匹配的左括号数量。如果表达式第i个字符是(,则top=top+1,并把位置i存入a(top)中。如果表达式第i个字符是),则与位置是a(top)的左括号匹配,此时top的值减1。6.小明编写一个VB程序其功能为:在英文句子(以“.”结束)中查找包含指定字符串的单词,运行界面如图所示。文本框Text1为英文句子,文本框Text2中输入包含字符串,单击“运行”按钮Command1后,List1中显示符合条件的单词。实现上述功能的VB程序如下,但加框处代码有错,请改正。Private Sub Command1_Click()Dim k As Integer,b As Integer,h As Integer,c As String,key as StringDim w(1 To 1000) As Strings=Text1.Text:n=Len(s):key=Text2.Textj=0:k=1:b=1:i=1:h=0Do While i<=nc=Mid(s,i,1)If Not (c>=a And c<=z Or c>=A And c<=Z) ThenIf j<>0 Thenw(b)=Mid(s,k,j)'k=k+1:j=0End Ifb=i+1Elsej=j+1End Ifi=i+1LoopFor i=1 To k-1h=0For j=1 To Len(w(i)-len(key)+1If key=w (i) Then h=h+1'Next jIf h<>0 Then List1.AddItem w(i)Next iEnd Sub答案 w(k)=Mid(s,b,j)Mid(w(i),j,Len(key)解析 程序中,数组w保存每个单词,变量b记录单词的开始位置,j记录单词中字母的个数,k记录已保存的单词数。程序中的do while循环部分功能是把原文s中的单词取出来,存储到w数组中。具体实现方法是每次循环取一字符c,若是字母,说明当前单词尚未结束,字母个数j加1,若不是字母,表明当前单词结束,则把单词存入w(b)中,所以处填w(k)=Mid(s,b,j),同时k加1,j重置为0,b赋值为i+1,即为下一个单词的开始位置。处所在的二重循环,其功能是从每个单词里去找是否包含Text2中的字符串。检索方法是从单词w(i)中取len(key)个字符,第1次从第1位开始取,如果和key相等,则h加1;第2次从第2位开始取len(key)个字符,如果和key相等,则h加1,如此循环。那么当循环结束后,如果h>0,表明w(i)中含有查找单词,显示出来。

    注意事项

    本文(其他典型算法之文本处理-专项训练浙江2022届选考专用(教师版).docx)为本站会员(公**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开