欢迎来到天天文库
浏览记录
ID:37430175
大小:369.81 KB
页数:14页
时间:2019-05-12
《Pascal字符串的运用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一讲字符串的应用导入在历年的信息学奥赛中,字符串的操作已经是考察的热点,比如近两年来提高组的分区联赛试题中的第一题都考察到了字符串的操作,应该是大家着重掌握的内容之一。几点熟练掌握的要求1:熟练掌握从文件中读入字符串并且进行处理的技巧;2:熟练掌握字符串的各种函数和过程的运用。3:能熟练运用字符和数字之间的转化;乒乓球【问题背景】国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白11分制
2、和21分制对选手的不同影响。在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。【问题描述】华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在11分制和21分制下,双方的比赛结果(截至记录末尾)。比如现在有这么一份记录,(其中W表示华华获得一分,L表示华华对手获得一分):WWWWWWWWWWWWWWWWWWWWWWLW在11分制下,此时比赛的结果是华华第一局11比0获胜,第二局11比0获胜,正在进行第三局,当前比分1比1。而在21分制下,此时比赛结果是华华第一局21比0获胜,正在进行第二局,比分2比1。如果
3、一局比赛刚开始,则此时比分为0比0。你的程序就是要对于一系列比赛信息的输入(WL形式),输出正确的结果。【输入格式】每个输入文件包含若干行字符串(每行至多20个字母),字符串有大写的W、L和E组成。其中E表示比赛信息结束,程序应该忽略E之后的所有内容。【输出格式】输出由两部分组成,每部分有若干行,每一行对应一局比赛的比分(按比赛信息输入顺序)。其中第一部分是11分制下的结果,第二部分是21分制下的结果,两部分之间由一个空行分隔。算法分析首先,对当前输入行计算11分制下每一局比赛的比分。设a为当前局华华的得分,每输入一个‘W’,a+1;b为当前局对方的得分,每输入
4、一个‘L’,b+1。若输入‘E’或者华华的得分a或者对方得分b达到11分且双方的分数差值大于1(((a≥11)or(b≥11))and(abs(a-b)>1)),则输出当前局的比分a:b。请注意,如果输入的字符为‘E’,则标志比赛结束,11分制计算完毕;否则,继续读下一个字符,计算新一局的比分。然后,对当前输入行计算21分制下每一局比赛的比分。计算方法基本如上。有所不同的是,若华华得分a或者对方得分b达到21分且双方的分数差值大于1(((a≥21)or(b≥21))and(abs(a-b)>1)),则输出当前局的比分a:b。按照上述方法对每一输入行计算11分制和
5、21分制的比赛结果,直至文件读完(eof(input))为止。assign(input,inp);reset(input);{输入文件读准备}assign(output,out);rewrite(output);{输出文件写准备}a:=0;b:=0;{当前局双方的比分初始化}whilenoteof(input)do{若文件未读完,则循环}beginwhilenoteoln(input)do{若当前行处理完,则11分制的比赛结束}beginread(ch);{读一个字符}casechof{根据字符的种类分情形处理}'E':begin{若比赛结束,则输出双方比分}w
6、riteln(a,':',b);break;{退出11分制的计算过程}end;{'E'}'W',’L’:begin{华华或对方得一分}ifch=’W’theninc(a)elseinc(b);if((a>=11)or(b>=11))and(abs(a-b)>1)then{若有一方得分达到11分且双方的分数差值大于1,则输出双方比分}beginwriteln(a,':',b);a:=0;b:=0;{新一局的比分初始化}end;{then}end;{'W',’L’}end;{case}end;{while}readln;end;{while}a:=0;b:=0;{新
7、一局的比分初始化}writeln;reset(input);{重新读输入行}whilenoteof(input)do{若文件未读完且比赛未结束,则循环}beginwhilenoteoln(input)do{若当前行处理完,则21分制的比赛结束}beginread(ch);{读一个字符}casechof{根据字符的种类分情形处理}‘E’:begin{若比赛结束,则输出双方比分,退出21分制的计算过程}writeln(a,':',b);break;end;{'E'}'W',’L’:begin{华华或对方得一分}ifch=’W’theninc(a)elseinc(b)
8、;if((a>=21)o
此文档下载收益归作者所有