Pascal问题:完善程序
(字符串替换)给定一个字符串S(S仅包含大小写字母),下面的程序将S中的每个字母用规定的字母替换,并输出S经过替换后的结果。程序的输入是两个字符串,第一个字符串是给定的字...
(字符串替换)给定一个字符串S(S仅包含大小写字母),下面的程序将S中的每个字母用规定的字母替换,并输出S经过替换后的结果。程序的输入是两个字符串,第一个字符串是给定的字符串S,第二个字符串S’由26个字母组成,它是a~z的任一排列,大小写不定,S’规定了每个字母对应的替换字母:S’中的第一个字母是字母A和a的替换字母,即 S中的A用该字母的大写替换,S中的a用该字母的小写替换;S’中的第二个字母是字母B 和b的替换字母,即S中的B用该字母的大写替换,S中的b用该字母的小写替换;… …以此类推。
var change:string;
str:string;
procedure CheckChangeRule;
var i:integer;
begin
for i:=1 to 26 do begin
if ____①_____ then
change[i]:=chr(ord(change[i])-ord('A')+ord('a'));
end;
end;
procedure ChangeString;
var len,i:integer;
begin
len:=length(str);
for i:=1 to len do begin
if ______②______ then
begin
str[i]:=upcase(change[ord(str[i]-ord('A')+1]);
end;
else
begin
_______④_______
end;
end;
end;
begin
readln(str);
readln(change);
CheckChangeRule;
_______⑤_______
writeln(str);
end. 展开
var change:string;
str:string;
procedure CheckChangeRule;
var i:integer;
begin
for i:=1 to 26 do begin
if ____①_____ then
change[i]:=chr(ord(change[i])-ord('A')+ord('a'));
end;
end;
procedure ChangeString;
var len,i:integer;
begin
len:=length(str);
for i:=1 to len do begin
if ______②______ then
begin
str[i]:=upcase(change[ord(str[i]-ord('A')+1]);
end;
else
begin
_______④_______
end;
end;
end;
begin
readln(str);
readln(change);
CheckChangeRule;
_______⑤_______
writeln(str);
end. 展开
4个回答
展开全部
首先先理解一下这个程序:
CheckChangeRule这个程序的作用是将change数组里所有的字母都统一为小写字母,便于操作
ChangeSting这个程序当然就是按照change数组对str(原串)进行改变。对于每个字母,都有两种操作:
1、这个字母是大写字母时,将这个字母改为change数组里的字母(此时change数组里都是小写)的大写【upcase】。
2、这个字母是小写字母时,将这个直接改为change数组里相对应的字母(已经同样是小写,无需在操作)
现在明白了程序的内容,答案具体见下= =
①是判断change[i]是否是大写字母(是就替换为小写字母【统一,便于操作】)于是有这两种写法:1、change[i] in ['A'..'Z'] 或者 2、(change[i]>='A')and(change[i]<='Z') 任选其一
②是判断str[i]是否是大写字母,基本同上 两种:1、str[i] in ['A'..'Z'] 或者 2、(str[i]>='A')and(str[i]<='Z') 任选其一
④【不明白咋就木有③勒】就是对str[i]是小写字母时进行的操作【见上程序分析】直接替换:str[i]:=change[ord(str[i])-'a'+1];
⑤就简单了把。。。总共就两个过程 其中一个过程里也没有调用另个过程的语句= = 所以在这肯定要用到【不然第二个过程就没用了= =】 SO。。。果断ChangeString;
--END--
CheckChangeRule这个程序的作用是将change数组里所有的字母都统一为小写字母,便于操作
ChangeSting这个程序当然就是按照change数组对str(原串)进行改变。对于每个字母,都有两种操作:
1、这个字母是大写字母时,将这个字母改为change数组里的字母(此时change数组里都是小写)的大写【upcase】。
2、这个字母是小写字母时,将这个直接改为change数组里相对应的字母(已经同样是小写,无需在操作)
现在明白了程序的内容,答案具体见下= =
①是判断change[i]是否是大写字母(是就替换为小写字母【统一,便于操作】)于是有这两种写法:1、change[i] in ['A'..'Z'] 或者 2、(change[i]>='A')and(change[i]<='Z') 任选其一
②是判断str[i]是否是大写字母,基本同上 两种:1、str[i] in ['A'..'Z'] 或者 2、(str[i]>='A')and(str[i]<='Z') 任选其一
④【不明白咋就木有③勒】就是对str[i]是小写字母时进行的操作【见上程序分析】直接替换:str[i]:=change[ord(str[i])-'a'+1];
⑤就简单了把。。。总共就两个过程 其中一个过程里也没有调用另个过程的语句= = 所以在这肯定要用到【不然第二个过程就没用了= =】 SO。。。果断ChangeString;
--END--
参考资料: 自己写的哈= =
展开全部
这题本身很水的说……
题目大意一楼已经给的很清楚了,不再赘述。
以后的程序填空都用这种方法做,最好再用几个数据代入试一下,可以保证AC
题目大意一楼已经给的很清楚了,不再赘述。
以后的程序填空都用这种方法做,最好再用几个数据代入试一下,可以保证AC
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一楼已解释十分清楚,此题实在很水
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
水题,ctrl c &ctrl v一下一楼的。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询