聪明人的游戏教材.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
聪明人的游戏教材

PAGE  PAGE 195 第二章 字符串处理和进制转换 在程序设计时,如果输入数据一行包含多种信息,以字符串的形式出现,这时就需要用到字符串处理的知识来进行操作。在计算机领域中,有时需要将十进制数转换成二进制、八进制和十六进制的数,有时又需要逆向转换,即将二进制、八进制和十六进制的数转换成十进制的数,或它们相互间进行转换。因此,本章主要介绍字符串处理和进制转换的相关知识。 第1课 贝贝的交通指挥系统(jqr.pas) 【问题描述】 贝贝所居住的城市有很多个交通路口,其中有26个交通路口在上下班高峰期总是塞车,严重影响市民的出行。于是交通管理部门研制了一批机器人交通警察,用它们来专门指挥这26个交通路口,但需要一个自动化的指挥系统来指挥机器人的运作。这个任务交给了贝贝,贝贝的设计如下。 分别用大写英文字母A???B、…、Z表示这26个路口,并按如下的规则派出这些机器人到交通路口协助指挥交通: 1.每次派出两名机器人; 2.当两名机器人的名字中存在一个相同的字母时,这两名机器人便到对应的交通路口上指挥交通;有多个字母相同时,两名机器人需要按字母的字典顺序到这些路口上巡逻; 3.当两名机器人的名字中不存在相同的字母时,交警部门的派出指令无效( WuXiao)。 假设这些机器人的名字全由大写字母组成,请你编一个程序,帮贝贝完成这个交通指挥系统。 【输入格式】jqr.in 第1行输入第一个机器人的名字(长度不超过250); 第2行输入第二个机器人的名字(长度不超过250)。 【输出格式】jqr.out 1.当不能派出机器人时,在第一行输出“WuXiao”; 2.当两名机器人在路口上指挥交通时,在第一行输出“ZhiHui”,第二行输出路口编号; 3.当两名机器人在路口上巡逻时,在第一行输出“XLuo,第二行输出巡逻的路口数,第三行输出巡逻线路。 【输入输出样例】 输入输出样例1OPEN CLOSEXLuo 2 E-O样例2EPSON SENPUMXLuo 4 E-N-P-S 分析问题 题目意思:输入两个机器人的名字,统计他们的名字中出现相同字母的个数,由相同字母的个数决定他们巡逻的路线。当两名机器人的名字中存在一个相同的字母时,这两名机器人便到对应的交通路口上指挥交通;有多个相同的字母时,两名机器人需要按字母的字典顺序到这些路口上巡逻;当两名机器人的名字中不存在相同的字母时,交警部门的派出指令无效。 解决问题 1.方法一 因为输入的机器人名长度不超过250,可用字符串方式读入数据。用两个字符串保存数据,使用双重循环,用枚举法查找相同的字母,用一个数组保存这些相同的字母,并用一个变量total记录相同字母的个数,然后按字母顺序排序,最后根据相同字母的个数分下面三种情况输出结果: 如果total=0,则输出“WuXiao; 如果total=1,则输出“ZhiHui; 如果total1,则输出“XLuo。 最后按题目要求输出巡逻路线。 var str1,str2:string;total,i,j,temp:longint; a:array[0..1000] of integer; begin readln(str1);readln(str2);//读入两个机器人的名字 total:=0;//记录相同字母个数,清零 for i:=1 to length(str1) do //① for j:=1 to length(str2) do if str1[i]=str2[j] then begin inc(total);a[total]:=str1[i];end; if total=0 then writeln(WuXiao); if total=1 then begin writeln(ZhiHui);writeln(a[total]);end; for i:=1 to total-1 do for j:=i+1 to total do if a[i]a[j] then begin temp:=a[i];a[i]:=a[j];a[j]:=temp;end; if total1 then begin write(a[1]); for i:=2 to total do write(-,a[i])

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档