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

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

code: #pascal
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.      
Поделиться:

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