Заменить в группах символов, состоящих только из цифр, все цифры предыдущими по значению цифрами

Заменить в группах символов, состоящих только из цифр, все цифры предыдущими по значению цифрами, а '0' заменить на точку. Например, строка: ‘ 6е-1 75 bа12 123‘ ; результат: ‘ 6е-1 64 bа12 012‘

code: #pascal
  1. uses crt;
  2. var
  3. bo,bb:boolean;
  4. b3,b2,sc,ss,b,s:string;
  5. t,p,cc,j,e,i,c:integer;
  6. begin
  7.  clrscr;
  8.  sc:='0123456789';
  9.  writeln('VVEDITE STROKU');
  10.  readln(s);
  11.  s:=s+' ';
  12.  c:=length(s);
  13.  for i:=1 to c do begin
  14.  b:=copy(s,i,1);
  15.  if b<>' ' then ss:=ss+b else begin
  16.  cc:=length(ss);
  17.  bo:=true;
  18.  for j:=1 to cc do begin
  19.  b2:=copy(ss,j,1);
  20.  bb:=false;
  21.  for t:=1 to 10 do begin
  22.  b3:=copy(sc,t,1);
  23.  if b3=b2 then bb:=true;
  24. end;
  25.  if bb=false then bo:=false;
  26. end;
  27.  if bo=true then  begin for j:=1 to cc do begin
  28.  b2:=copy(ss,j,1);
  29.  val(b2,p,e);
  30.  if p=0 then write('.') else write(p-1);
  31. end; write(' '); end else write(ss,' ');
  32.  ss:='';
  33. end;
  34. end;
  35. readkey;
  36. end.
Поделиться:

Похожие статьи: