作业帮 > 综合 > 作业

pascal题目2、扫描识别(文件名:scan.pas)【问题描述】“扫描识别”你知道是怎么回事吧?它的意思就是:先用扫

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/22 18:30:37
pascal题目
2、扫描识别(文件名:scan.pas)
【问题描述】
“扫描识别”你知道是怎么回事吧?它的意思就是:先用扫描仪把纸上的文字扫描成一个图片,再用识别软件把该图片中的文字识别出来,最后生成一个文本文件。这对于需要把大量的纸稿录入成电子文档的人来说,当然是非常方便的。
以现有的技术,扫描效果是比较理想的,但识别效果还不十分令人满意,经常会出现错误,尤其是当两个字形状特别接近的时候,而且,这种错误是很难用眼睛看出来的。
现在,我们的纸稿上有一个数字串,识别之后得到的字符串保存在输入文件中,但这个串可能有识别错误。已知可能出现的错误有以下几种:
1、 把数字0错误地识别为大写字母O;
2、 把数字1错误地识别为小写字母l;
3、 把数字2错误地识别为大写字母Z;
4、 把数字5错误地识别为大写字母S;
5、 把数字6错误地识别为小写字母b;
6、 把数字8错误地识别为大写字母B;
7、 把数字9错误地识别为小写字母q;
你的改正方案是:如果字符串中出现了上述字母,请替换为原来的数字。最后把改正之后的数字串输出。
【输入文件】
文件名:scan.in
文件中只有一个字符串,表示识别后得到的字符串。串的长度不超过100。
【输出文件】
文件名:scan.out
文件中只有一个数字串,表示改正后的数字串。
【样例输入】
321lO88BqS
【样例输出】
3211088895
3、趣味填空(文件名:fill.pas)
【问题描述】
小华的寒假作业上,有这样一个趣味填空题:
给出用等号连接的两个整数,如“1234=127”。当然,现在这个等式是不成立的。请你在左边的整数中的某个位置尝试插入一个加号,看有没有可能让等式成立。以上面的式子为例,如果写成123+4=127,这样就正确了。
现在请你编写一个程序来解决它。
【输入文件】
文件名:fill.in
文件中只有那个不相等的式子,且等号两边的整数都不会超过2000000000。
【输出文件】
文件名:fill.out
如果存在这样的方案,请输出那个正确的式子。如果不存在解决方案,请输出“Impossible”(引号中的部分)。
【样例输入】
1234=127
【样例输出】
123+4=127








4、足球联赛(文件名:football.pas)
【问题描述】
为了庆祝元旦,J市决定举办全市小学足球联赛。各学校积极响应,共有N支球队报名参加,爱好足球的小W也参加了。为了活动的开展和不影响学生学习,只能安排K场比赛,每支球队最多参加两场比赛,至少参加零场比赛。因球队水平不同,每支球队都拥有一个和其他球队不同的水平等级(用一个正整数来表示)。在比赛中,等级高的球队必须作为客场,等级低的球队必须作为主场。每个球队最多只能做一次主场和一次客场。为了增加比赛的观赏度,观众希望K场比赛中球队水平差距的总和最小。比如有7支球队,他们的等级分别是30、17、26、41、19、38、18,要进行3场比赛。那么最好安排是球队2 vs 球队7,球7 vs 球队5,球队6 vs 球队4,此时等级差的总和等于(18-17)+(19-18)+(41-38)=5达到最小。
【输入文件】
文件名:football.in
第一行两个正整数N,K,接下来有N行,第i行表示第i支球队的等级。
【输出文件】
文件名:football.out
只有一行,一个整数,表示最小的等级差的总和。
【样例输入】
7 3
30
17
26
41
19
38
18
【样例输出】
5
【数据范围】
对于20%的数据,1≤N≤300
对于80%的数据,1≤N≤5000
对于100%的数据,1≤N≤10000
保证所有输入数据中等级的值小于32000,1≤K≤N-1
pascal题目2、扫描识别(文件名:scan.pas)【问题描述】“扫描识别”你知道是怎么回事吧?它的意思就是:先用扫
Program ex_2;var s,ss:string;    i:longint;begin readln(s); for i:=1 to length(s) do  case s[i] of   'O':ss:=ss+'0';   'l':ss:=ss+'1';   'Z':ss:=ss+'2';   'S':ss:=ss+'5';   'b':ss:=ss+'6';   'B':ss:=ss+'8';   'q':ss:=ss+'9';   else ss:=ss+s[i];  end; writeln(ss);end.//--------------------------------------------------------------------------------------------------------------------
Program ex_3;var s:string;    i,j,k,x,y:longint;begin readln(s); k:=pos('=',s); val(copy(s,k+1,length(s)-k),j); delete(s,k,length(s)-k+1); for i:=1 to length(s)-1 do   begin   val(copy(s,1,i),x);   val(copy(s,i+1,length(s)-i),y);   if x+y=j then    begin     writeln(x,'+',y,'=',j);     halt;    end;  end; writeln('Impossible');end.//--------------------------------------------------------------------------------------------------------------------Program ex_4;var n,k,i,m:longint;    h:array[1..10000]of longint;procedure swap(var x,y:longint);var z:longint;begin z:=x;x:=y;y:=z;end;procedure qsort(l,r:longint);var x,y,z:longint;begin x:=l;y:=r;z:=h[(x+y)div 2]; repeat  while h[x]<z do inc(x);  while h[y]>z do dec(y);  if x<=y then    begin    swap(h[x],h[y]);    inc(x);    dec(y);   end; until x>y; if x<r then qsort(x,r); if y>l then qsort(l,y);end;begin readln(n,k); for i:=1 to n do   readln(h[i]); qsort(1,n); for i:=1 to n-1 do   h[i]:=h[i+1]-h[i]; qsort(1,n-1); for i:=1 to k do   inc(m,h[i]); writeln(m);end.