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

Leave a Comment

+ 85 = 90