Pascal字符串的应用回顾.ppt

上传人:小飞机 文档编号:6513739 上传时间:2023-11-08 格式:PPT 页数:15 大小:261KB
返回 下载 相关 举报
Pascal字符串的应用回顾.ppt_第1页
第1页 / 共15页
Pascal字符串的应用回顾.ppt_第2页
第2页 / 共15页
Pascal字符串的应用回顾.ppt_第3页
第3页 / 共15页
Pascal字符串的应用回顾.ppt_第4页
第4页 / 共15页
Pascal字符串的应用回顾.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《Pascal字符串的应用回顾.ppt》由会员分享,可在线阅读,更多相关《Pascal字符串的应用回顾.ppt(15页珍藏版)》请在三一办公上搜索。

1、1,马鞍山信息学竞赛辅导网 谷老师授课,第二讲:字符串的应用回顾,08年上学期 提高班讲稿,2,马鞍山信息学竞赛辅导网,内容提要,字符的定义和其ASCII码的特点;字符串的使用;字符串函数的应用;字符串在进制转化应用;,3,马鞍山信息学竞赛辅导网,回顾知识点,一:字符类型的概念回顾 字符是一个有序类型,字符的大小顺序按其ASC代码的大小而定。函数succ、pred、ord适用于字符类型。例如:后继函数:succ(a)=b前继函数:pred(B)=A序号函数:ord(A)=65 字符函数:chr(65)=A注意:AZ的ASCII码是连续的;az的ASCII码是连续的;09的ASCII码是连续的

2、在编程序的过程中:我们经常应用字母和数字的ASCII码的顺序性实现数字和对应数字字符的转化,和更多的应用!,4,马鞍山信息学竞赛辅导网,例1 按字母表顺序和逆序每隔一个字母打印。即打印出:a c e g I k m o q s u w yz x r v t p n l j h f d b,程序如下:program ex8_1;var letter:char;beginfor letter:=a to z doif(ord(letter)-ord(a)mod 2=0 then write(letter:3);writeln;for letter:=z downto a doif(ord(lett

3、er)-ord(z)mod 2=0 then write(letter:3);writeln;end.分析:程序中,我们利用了字符类型是顺序类型这一特性,直接将字符类型变量作为循环变量,使程序处理起来比较直观。,回顾知识点,5,马鞍山信息学竞赛辅导网,二:字符串的定义,字符串是由字符组成的有穷序列。一个字符串中的字符可以通过其对应的下标灵活使用。字符串类型定义:type=stringn;var字符串变量:字符串类型标识符;其中:n是定义的字符串长度,必须是0255之间的自然整数,第0号单元中存放串的实际长度,程序运行时由系统自动提供,第1n号单元中存放串的字符。若将stringn写成strin

4、g,则默认n值为255。例如:typeman=string8;varname:man;我们一般这样写:var man:string;字符串的输入和输出:read(name),write(name);,字符串可以直接输入、输出,6,马鞍山信息学竞赛辅导网,求输入英文句子单词的平均长度.程序如下:program ex8_2;varch:string;字符串类型 s,count,j:integer;beginwrite(The sentence is:);readln(ch);读入字符串 s:=0;count:=0;j:=0;repeatinc(j);if not(chj in:,;,!,?,.,)

5、then inc(s);if chj in,.,!,?then inc(count);until(j=ord(ch0)or(chj in.,!,?);if chj.then writeln(It is not a sentence.)else writeln(Average length is,s/count:10:4);end.分析:程序中,变量s用于存句子中英文字母的总数,变量count用于存放句子中单词的个数,chj表示ch串中的第j个位置上的字符,ord(ch0)为ch串的串长度。程序充分利用Turbo Pascal允许直接通过字符串下标得到串中的字符这一特点,使程序比较简捷。,CHJ

6、是单词的间隔符,回顾知识点,7,马鞍山信息学竞赛辅导网,三、字符串的操作,(一)字符串的运算和比较 由字符串的常量、变量和运算符组成的表达式称为字符串表达式。字符串运算符包括:1+:连接运算符例如:Turbo+PASCAL的结果是Turbo PASCAL。若连接的结果字符串长度超过255,则被截成255个字符。若连接后的字符串存放在定义的字符串变量中,当其长度超过定义的字符串长度时,超过部份字符串被截断。例如:varstr1,str2,str3:string8;beginstr1:=Turbo;str2:=PASCAL;str3:=str1+str2;end则str3的值为:Turbo PA。

7、,8,马鞍山信息学竞赛辅导网,2=、=、=:关系运算符两个字符串的比较规则为,从左到右按照ASC码值逐个比较,遇到ASC码不等时,规定ASC码值大的字符所在的字符串为大。例如:ABAC 结果为真;122 结果为真;PASCAL=PASCAL 结果为假;,9,马鞍山信息学竞赛辅导网,程序欣赏,对给定的10个国家名,按其字母的顺序输出。程序如下:program ex8_3;var i,j,k:integer;t:string20;cname:array1.10 of string20;beginfor i:=1 to 10 do readln(cnamei);for i:=1 to 9 dobeg

8、ink:=i;for j:=i+1 to 10 doif cnamekcnamej then k:=j;t:=cnamei;cnamei:=cnamek;cnamek:=t;end;for i:=1 to 10 do writeln(cnamei);end.分析:程序中,当执行到if cnamekcnamej时,自动将cnamek串与cnamej串中的每一个字符逐个比较,直至遇到不等而决定其大小。这种比较方式是计算机中字符串比较的一般方式。,10,马鞍山信息学竞赛辅导网,三、字符串的函数和过程,Turbo Pascal提供了八个标准函数和标准过程,见下表,利用这些标准函数与标准过程,一些涉及到

9、字符串的问题可以灵活解决。,11,马鞍山信息学竞赛辅导网,思考题一,输入一个十六进制数(预先不知道位数,字母用大写表示),请将期转化为对应的使进制整;范例:输入:10AB输出:4267请再思考一下下面两个问题1)请将十六进制(字母可以大写也可以小写,预先不知道输入十六进制的长度)表示转化为十进制);2)请将十进制数转化为十六进制;,12,马鞍山信息学竞赛辅导网,思考题二:乒乓球(Table.pas),【问题背景】国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,

10、他退役之后走上了乒乓球研究工作,意图弄明白11分制和21分制对选手的不同影响。在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。【问题描述】华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在11分制和21分制下,双方的比赛结果(截至记录末尾)。比如现在有这么一份记录,(其中W表示华华获得一分,L表示华华对手获得一分):,13,马鞍山信息学竞赛辅导网,每周一题,CONTEXT:在键盘中输入两个位数不超过200位的正整数A和B,求A-B的差和和A+B;,14,马鞍山信息学竞赛辅导网,WWWWWWWWWWWWWWWWWWWWWWLW在11分制

11、下,此时比赛的结果是华华第一局11比0获胜,第二局11比0获胜,正在进行第三局,当前比分1比1。而在21分制下,此时比赛结果是华华第一局21比0获胜,正在进行第二局,比分2比1。如果一局比赛刚开始,则此时比分为0比0。你的程序就是要对于一系列比赛信息的输入(WL形式),输出正确的结果。【输入格式】每个输入文件包含若干行字符串(每行至多20个字母),字符串有大写的W、L和E组成。其中E表示比赛信息结束,程序应该忽略E之后的所有内容。【输出格式】输出由两部分组成,每部分有若干行,每一行对应一局比赛的比分(按比赛信息输入顺序)。其中第一部分是11分制下的结果,第二部分是21分制下的结果,两部分之间由一个空行分隔。,15,马鞍山信息学竞赛辅导网,思考题的程序可发送至:E-mail:或则写在竞赛网中程序流言板中,并及时和老师沟通.,Thank you!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号