Заменить в группах символов, состоящих только из цифр, все цифры предыдущими по значению цифрами
Категория: Delphi/Pascal
2011-09-04 16:49:09
Заменить в группах символов, состоящих только из цифр, все цифры предыдущими по значению цифрами, а '0' заменить на точку. Например, строка: ‘ 6е-1 75 bа12 123‘ ; результат: ‘ 6е-1 64 bа12 012‘
code: #pascal
- uses crt;
- var
- bo,bb:boolean;
- b3,b2,sc,ss,b,s:string;
- t,p,cc,j,e,i,c:integer;
- begin
- clrscr;
- sc:='0123456789';
- writeln('VVEDITE STROKU');
- readln(s);
- s:=s+' ';
- c:=length(s);
- for i:=1 to c do begin
- b:=copy(s,i,1);
- if b<>' ' then ss:=ss+b else begin
- cc:=length(ss);
- bo:=true;
- for j:=1 to cc do begin
- b2:=copy(ss,j,1);
- bb:=false;
- for t:=1 to 10 do begin
- b3:=copy(sc,t,1);
- if b3=b2 then bb:=true;
- end;
- if bb=false then bo:=false;
- end;
- if bo=true then begin for j:=1 to cc do begin
- b2:=copy(ss,j,1);
- val(b2,p,e);
- if p=0 then write('.') else write(p-1);
- end; write(' '); end else write(ss,' ');
- ss:='';
- end;
- end;
- readkey;
- end.
Поделиться: