Pascal字符串的应用[下].pptVIP

  • 0
  • 0
  • 约2.24千字
  • 约 19页
  • 2017-05-04 发布于四川
  • 举报
Pascal字符串的应用[下]

第五讲: 字符串的应用(下);内容提要;回顾知识点;例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_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 (ch[j] in [:,,,;,,!,?,., ]) then inc(s);      if ch[j] in[ ,.,!,?] then inc(count);     until (j=ord(ch[0])) or (ch[j] in [.,!,?]);     if ch[j]. then writeln(It is not a sentence.)     else writeln(Average length is ,s/count:10:4);    end.   分析:程序中,变量s用于存句子中英文字母的总数,变量count用于存放句子中单词的个数,ch[j]表示ch串中的第j个位置上的字符,ord(ch[0])为ch串的串长度。程序充分利用Turbo Pascal允许直接通过字符串下标得到串中的字符这一特点,使程序比较简捷。;三、字符串的操作;;程序欣赏;三、字符串的函数和过程; 经典运用之“最长公共子字符串”;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 then{用POS函数来找str2中有没有此字符串} begin write(str); flag:=true;exit;end{如果有既为所求,输出,退出循环} end; if flag=false then writeln(‘no match’);{如果始终没有找到,则输出没有} end.;思考题一;参考程序 Readln(str); Len:=length(str); K:=0; J:=1; For i:=len downto 1 do Begin If (str[i]=‘0’) and (str[i]=‘9’) then K:=k+j*(ord(str[i])-ord(‘0’)) Else k:=k+j *(ord(str[i])-ord(‘A’)+10); J:=J*16; end;;思考题二:乒乓球(Table.pas);WWWWWWWWWWWWWWWWWWWWWWLW 在11分制下,此时比赛的结果是华华第一局11比0获胜,第二局11比0获胜,正在进行第三局,当前比分1比1。而在21分制下,此时比赛结果是华华第一局21比0获胜,正在进行第二局,比分2比1。如果一局比赛刚开始,则此时比分为0比0。 你的程序就是要对于一系列比赛信息的输入(WL形式),输出正确的结果。? 【输入格式】每个输入文件包含若干行字符串(每行至多20个字母),字符串有大写的W、L和E组

文档评论(0)

1亿VIP精品文档

相关文档