永发信息网

第二届全国青少年信息学(计算机)奥林匹克分区联赛复赛试题 Pascal答案

答案:2  悬赏:70  手机版
解决时间 2021-05-02 05:39

要是没有的话帮我作作这两道题,就是那上的,做出来也给分

求求各位了,做一道也可

Pascal的

问题描述:

给你一个字符串(长度<=40个字符),并以字符 ’.’ 结束。

例如:’This is a book.’ 现对该字符串进行编辑,编辑功能有:

D:删除一个字符,命令的方式为:

D a 其中a为被删除的字符

例如:D s 表示删除字符 ’s’ ,若字符串中有多个 ‘s’,则删除第一次出现的。

如上例中删除的结果为: ‘Thi is a book.’

I:插入一个字符,命令的格式为:

I a1 a2 其中a1表示插入到指定字符前面,a2表示将要插入的字符。

例如:I s d 表示在指定字符 ’s’ 的前面插入字符 ‘d’ ,若原串中有多个 ‘s’ ,则插入在最后一个字符的前面,如上例中:
原 串:’This is a book.’

插入后:’This ids a book.’

R:替换一个字符,命令格式为:

R a1 a2 其中a1为被替换的字符,a2为替换的字符,若在原串中有多个a1则应全部替换。

例如: 原 串: ‘This is a book.’

输入命令:R o e

替换后的字符串为: ‘This is a beek.’

在编辑过程中,若出现被改的字符不存在时,则输出“error!”。

你的任务是输出编辑后的字符串。

程序名:edit

输入格式:

两行:

第一行:一个字符串,表示待编辑的字符串

第二行:一行编辑命令,命令中间用一个空格隔开 (编辑命令D R I都是大写字母)

输出:

一行字符串,表示编辑后的字符串,若出现被改的字符不存在时,则输出“error!”

样例输入1:

a123 b12 aa.

D 2

样例输出1

a13 b12 aa

样例输入2:

abc dc e .

I c f

样例输出2

abc dfc e.

样例输入3:

abcd efg.

R s t

样例输出3

Error!


————————————————————————————

第四题:编码问题

问题描述:

设有一个数组A,共有N个元素 (N<=10),元素值小于30000;数组中存放的元素为0~N-1之间的整数,且A[i]≠A[j](当i≠j时)。

例如:N=6时,有: A=(4,3,0,5,1,2)

此时,数组A的编码定义如下:

A[0]的编码为0;

A[i]的编码为:在A[0],A[1],……A[i-1]中比A[i]的值小的个数(i=1,2……N-1)

∴上面数组A的编码为: B=(0,0,0,3,1,2)

程序要求解决以下问题:

① 给出数组A后,求出其编码;

② 给出数组A的编码后,求出A中的原数据。

程序名:encode

输入格式:

两行:

第一行两个整数,第一个一个整数(0或者1),如果是0,表示是给出数组A,求编码,如果是1,表示给出编码,求原数据,第二个整数N,表示数组长度

第二行:N个整数

输出格式:

一行,输出n个整数。整数之间用一个空格隔开

输入样例1:

0 6

4,3,0,5,1,2

输出样例1:

0,0,0,3,1,2

输入样例2:

1 6

0,0,0,3,1,2

输出样例2:

4,3,0,5,1,2

最佳答案

这是我按题目写的程序


第一题


var
q:longint;
a,a1,a2:char;
st,st2,st3:string;
begin
readln(st);
readln(st2);
if st2[1]='D' then
begin
a:=st2[3];
q:=pos(a,st);
if q<>0 then
begin
delete(st,q,1);
writeln(st);
end
else
begin
writeln('Error!');
exit;
end;
end;
if st2[1]='I' then
begin
a1:=st2[3];
a2:=st2[5];
q:=pos(a1,st);
if q=0 then
begin
writeln('Error!');
exit;
end;
repeat
st3:=st3+copy(st,1,q);
delete(st,1,q);
q:=pos(a1,st);
until q=0;
q:=length(st3);
insert(a2,st3,q);
st3:=st3+st;
writeln(st3);
end;
if st2[1]='R' then
begin
a1:=st2[3];
a2:=st2[5];
q:=pos(a1,st);
if q=0 then
begin
writeln('Error!');
exit;
end;
repeat
st3:=st3+copy(st,1,q-1);
st3:=st3+a2;
delete(st,1,q);
q:=pos(a1,st);
until q=0;
st3:=st3+st;
writeln(st3);
end;
end.

全部回答
你好哦。 有幸看到你的问题。 但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。 对于你的问题我爱莫能助! 可能是你问的问题有些专业了。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去你问问题的相关论坛去求助,那里的人通常比较多,也比较热心,可能能快点帮你解决问题。 祝你好运~! 快过年了, 最后祝您全家幸福健康快乐!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
在穿越火线中,玩13号地区,怎么才能一个人,
《青花瓷》到底是什么意思呢?
老鼠怕什么声音下载,老鼠最怕什么东西?是气
如果女生经常会生男友的气 很经常 可以说是小
新武林外传的职业都是什么类型的?
现在卫星天线密码是?
同学能帮个忙吗?
砚山县法制局地址有知道的么?有点事想过去
假如你是埃及法老。艳后和舞姬,你更偏爱哪一
用WORD怎么做流程图?急急急!
求DNF蛇王官网
是否男人的话都不可信?
IVT BlueSoleil V6.4.237.0的破解补丁
要《不想让你哭》 歌词
谁有冠军足球经理2010汉化版的网址~~
推荐资讯
为什么我的空间图标不亮???
如何用手机发短信开通黄钻?
避风港时尚酒店怎么去啊,有知道地址的么
要购买婚纱的进来看看
现在有啥好滴电影吗?喜剧片也可以不过要好看
今天云冈石窟门票还免费吗?
大连害虫防治中心地址在什么地方,想过去办事
短波王收音机,调频时为什么数码显示会不动?
QQ玄舞几天不上为什么点卷就没了呢?
我是1980年的天蝎座,出生11月21日,请问2010
如何上传音乐?
为什么要发明支票
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?