Pascal字符串的应用(下).ppt_第1页
Pascal字符串的应用(下).ppt_第2页
Pascal字符串的应用(下).ppt_第3页
Pascal字符串的应用(下).ppt_第4页
Pascal字符串的应用(下).ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五讲: 字符串的应用(下) 08年上学期 提高班讲讲稿 1 马马鞍山信息学竞赛辅导竞赛辅导网 谷老师师授课课 谷老师师 讲讲稿 内容提要 v字符的定义和其ASCII码的特点; v字符串的使用; v字符串函数的应用; v字符串在进制转化应用; 2 马鞍山马鞍山 信息学竞赛辅导网信息学竞赛辅导网 谷老师师 讲讲稿 回回顾顾知知识识点点 vv 一:字符一:字符类类类类型的型的概概念回念回顾顾顾顾 字符是一个有序类型, 字符的大小顺序按其ASC代码的大小而定 。函数succ、pred、ord适用于字符类型。 例如:后继函数:succ(a)=b 前继函数:pred(B)=A 序号函数:ord(A)=65 字符函数:chr(65)=A 注意:AZ的ASCII码是连续的; az的ASCII码是连续的; 09的ASCII码是连续的 在编程序的过程中 :我们经常应用字母和数字的ASCII码的顺序 性实现数字和对应数字字符的转化,和更多的应用! 3 马鞍山马鞍山 信息学竞赛辅导网信息学竞赛辅导网 谷老师师 讲讲稿 例1 按字母表顺顺序和逆序每隔一个字母打印。即打印出: a c e g I k m o q s u w y z x r v t p n l j h f d b 程序如下: program ex8_1; var letter:char; begin for letter:=a to z do if (ord(letter)-ord(a)mod 2=0 then write(letter:3); writeln; for letter:=z downto a do if (ord(letter)-ord(z)mod 2 =0 then write(letter:3); writeln; end. 分析:程序中,我们们利用了字符类类型是顺顺序类类型这这一特性,直接将字 符类类型变变量作为为循环变环变量,使程序处处理起来比较较直观观。 回回顾顾知知识识点点 4 马鞍山马鞍山 信息学竞赛辅导网信息学竞赛辅导网 谷老师师 讲讲稿 二:字符串的定义 v 字符串是由字符组成的有穷序列。一个字符串中的字符可以通 过其对应的下标灵活使用。 字符串类型定义: type =stringn; var 字符串变量: 字符串类型标识符; 其中:n是定义的字符串长度,必须是0255之间的自然整数, 第0号单元中存放串的实际长度,程序运行时由系统自动提供,第 1n号单元中存放串的字符。若将stringn写成string,则默 认n值为255。 例如:type man=string8; var name:man; v 我们一般这样写:var man:string; v 字符串的输入和输出:read(name),write(name); 字符串可以直 接输入、输出 5 马鞍山马鞍山 信息学竞赛辅导网信息学竞赛辅导网 谷老师师 讲讲稿 v 求输输入英文句子单词单词的平均长长度. 程序如下: program ex8_2; var ch:string; 字符串类类型 s,count,j:integer; begin write(The sentence is :); readln(ch); 读读入字符串 s:=0; count:=0; j:=0; repeat inc(j); if not (chj in :,;,!,?,., ) then inc(s); if chj in ,.,!,? then inc(count); until (j=ord(ch0) or (chj in .,!,?); if chjcnamej then k:=j; t:=cnamei;cnamei:=cnamek;cnamek:=t; end; for i:=1 to 10 do writeln(cnamei); end. 分析:程序中,当执行到if cnamekcnamej时,自动将cnamek串与 cnamej串中的每一个字符逐个比较,直至遇到不等而决定其大小。这种比较方 式是计算机中字符串比较的一般方式。 9 马鞍山马鞍山 信息学竞赛辅导网信息学竞赛辅导网 谷老师师 讲讲稿 三、字符串的函数和过程 v Turbo Pascal提供了八个标准函数和标准过程,见下表,利用这些标准函数 与标准过程,一些涉及到字符串的问题可以灵活解决。 10 马鞍山马鞍山 信息学竞赛辅导网信息学竞赛辅导网 谷老师师 讲讲稿 经典运用之“最长公共子字符串” v 题目:我们把一个字符串中在两个字符串中找到最长公共子串; 题目分析: 若存在公共子串,则子串肯定存在在两个字符串st1,st2中,所以 1.两个字符串的公共自字符串的长度肯定 l=min(length(st1),length(st2); 2.因为我们要求最长公共子串,所以我们可以先设子串=st1(较短), 然后利用pos函数在st2中查找子串pos(st,st2),如果我们找到了则 既为所求。否则我们将尝试长度为l:=l-1的st1的子字符串(利用 函数str:=copy(st1,1,l), copy(st1,2,l)直到找到为止。 11 马鞍山马鞍山 信息学竞赛辅导网信息学竞赛辅导网 谷老师师 讲讲稿 program search(input,output); var str1,str2,str:string; l1,l2,l,a,:integer; flag:boolean;布鲁形变量它的值只有TRUE,FALSE begin flag:=false;标识有没有找到最大公共子字符串 writeln(please input string1); readln(str1); writeln(please input string2); readln(str2);输入两个字符串 l1:=length(str1); l2:=length(str2);用length函数求两个字符串的长度 if l1l2 then begin str:=str2;str2:=str1;str1:=str end; l:=length(str1);将较短的字符串-str1,较长的字符串-str2,l:=min(l1,l2); for a:=L downto 1 do公共子字符串的长度依次减少 for b:=1 to L do 起始位置1-L begin str:=copy(str1,b,a);取长度为a,第b个位置开始的字符串为假定的公共子字符串 if pos(str,str2)=0) and (stri=0) and (stri=10 then stri:=chr(n+ord(A)-10) ELSE stri:=chr(n+ord(0); 15 马鞍山马鞍山 信息学竞赛辅导网信息学竞赛辅导网 谷老师师 讲讲稿 思考题题二:乒乓球(Table.pas) 【问题背景】国际乒联现在主席沙拉拉自从上任以来就立志于推行 一系列改革,以推动乒乓球运动在全球的普及。其中11分制改革 引起了很大的争议,有一部分球员因为无法适应新规则只能选择 退役。华华就是其中一位,他退役之后走上了乒乓球研究工作, 意图弄明白11分制和21分制对选手的不同影响。在开展他的研 究之前,他首先需要对他多年比赛的统计数据进行一些分析,所 以需要你的帮忙。 【问题描述】华华通过以下方式进行分析,首先将比赛每个球的胜 负列成一张表,然后分别计算在11分制和21分制下,双方的比 赛结果(截至记录末尾)。 比如现在有这么一份记录,(其中W表示华华获得一分,L表示华 华对手获得一分): 16 马鞍山马鞍山 信息学竞赛辅导网信息学竞赛辅导网 谷老师师 讲讲稿 WWWWWWWWWWWWWWWWWWWWWWLW 在11分制下,此时比赛的结果是华华第一局11比0获胜,第二局11比0获胜, 正在进行第三局,当前比分1比1。而在21分制下,此时比赛结果是华华第一 局21比0获胜,正在进行第二局,比分2比1。如果一局比赛刚开始,则此时 比分为0比0。 你的程序就是要对于一系列比赛信息的输入(WL形式),输出正确的结果 。 【输入格式】每个输入文件包含若干行字符串(每行至多20个字母),字符 串有大写的W、L和E组成。其中E表示比赛信息结束,程序应该忽略E之后 的所有内容。 【输出格式】输出由两部分组成,每部分有若干行,每一行对应一局比赛 的比分(按比赛信息输入顺序)。其中第一部分是11分制下的结果,第二部 分是21分制下的结果,两部分之间由一个空行分隔。 17 马鞍山马鞍山 信息学竞赛辅导网信息学竞赛辅导网 谷老师师 讲讲稿 思考思考题题题题三三 CONT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论