Дано — A=0000; D=0001; I=0010; L=0011; M=0100; N=0101; R=0111; S=1111. Написать программу, которая расшифрует любой код — Pascal(Паскаль)

Сделать так, чтобы код расшифровки оказался минимальным (оптимизированным). К примеру, код “0101001100100100011” можно расшифровать как “NLIML”

Program p4;

const
  A = 0000;
  D = 0001;
  I = 0010;
  L = 0011;
  M = 0100;
  N = 0101;
  R = 0111;
  S = 1111;

function rasifr(str: string): string;
var
  x: string;
  cis, code: integer;
begin
  x := '';
  repeat
    val(copy(str, 1, 4), cis, code);
    case cis of
      A:
        x := x + 'A';
      I:
        x := x + 'I';
      M:
        x := x + 'M';
      R:
        x := x + 'R';
      D:
        x := x + 'D';
      L:
        x := x + 'L';
      N:
        x := x + 'N';
      S:
        x := x + 'S';
    end;
    DELETE(str, 1, 4);
  until str = '';
  rasifr := x;
end;

var
  str: string;

BEGIN
  str := '0101001100100100011'; { TUT Vvedite chislovoy shifr }
  writeln(rasifr(str));

end.

Leave a Comment

− 3 = 2