Реализации алгоритмов/Шифр Бэкона
(перенаправлено с «Шифр Бэкона»)
Реализация
правитьПример реализации шифра Бэкона на языке Паскаль: (метод не рабочий)
program strug_production;
var s_out, s_in, str,itogstroka,tekbukva: string;
fa: text;
ik, len, n: integer;
begin
assign(fa, 'c:\text.txt');
reset (fa);
itogstroka:='';
{раскладываем строчку из файла}
while not Eof(fa) do begin
readln (fa, str);
len:=length(str);
n:=1;
While n<len+1 do begin
tekbukva:= Copy(str, n, 1);
If (tekbukva='A')or(tekbukva='B')or(tekbukva='C')or(tekbukva='D')or(tekbukva='E')or(tekbukva='F')or
(tekbukva='G')or(tekbukva='H')or(tekbukva='I')or(tekbukva='J')or(tekbukva='K')or(tekbukva='L')or
(tekbukva='M')or(tekbukva='N')or(tekbukva='O')or(tekbukva='P')or(tekbukva='R')or(tekbukva='S')or
(tekbukva='T')or(tekbukva='U')or(tekbukva='V')or(tekbukva='W')or(tekbukva='X')or(tekbukva='Y')or
(tekbukva='Z')or(tekbukva='А')or(tekbukva='Б')or(tekbukva='В')or(tekbukva='Г')or(tekbukva='Д')or
(tekbukva='Е')or(tekbukva='Ё')or(tekbukva='Ж')or(tekbukva='З')or(tekbukva='И')or(tekbukva='Й')or
(tekbukva='К')or(tekbukva='Л')or(tekbukva='М')or(tekbukva='Н')or(tekbukva='О')or(tekbukva='П')or
(tekbukva='Р')or(tekbukva='С')or(tekbukva='Т')or(tekbukva='У')or(tekbukva='Ф')or(tekbukva='Х')or
(tekbukva='Ц')or(tekbukva='Ч')or(tekbukva='Ш')or(tekbukva='Щ')or(tekbukva='Ъ')or(tekbukva='Ы')or
(tekbukva='Ь')or(tekbukva='Э')or(tekbukva='Ю')or(tekbukva='Я') Then
Begin
itogstroka:=itogstroka+'B';
end
Else itogstroka:=itogstroka+'A';
n:=n+1;
end;
writeln(itogstroka);
end;
{расшифровка}
len:=length(itogstroka);
n:=1;
While n<len+1 do begin
tekbukva:= Copy(itogstroka, n, 5);
If (tekbukva='AAAAA')Then Write('a') Else
If (tekbukva='AAAAB')Then Write('b') Else
If (tekbukva='AAABA')Then Write('c') Else
If (tekbukva='AAABB')Then Write('d') Else
If (tekbukva='AABAA')Then Write('e') Else
If (tekbukva='AABAB')Then Write('f') Else
If (tekbukva='AABBA')Then Write('g') Else
If (tekbukva='AABBB')Then Write('h') Else
If (tekbukva='ABAAA')Then Write('i') Else
If (tekbukva='BBBAA')Then Write('j') Else
If (tekbukva='ABAAB')Then Write('k') Else
If (tekbukva='ABABA')Then Write('l') Else
If (tekbukva='ABABB')Then Write('m') Else
If (tekbukva='ABBAA')Then Write('n') Else
If (tekbukva='ABBAB')Then Write('o') Else
If (tekbukva='ABBBA')Then Write('p') Else
If (tekbukva='ABBBB')Then Write('q') Else
If (tekbukva='BAAAA')Then Write('r') Else
If (tekbukva='BAAAB')Then Write('s') Else
If (tekbukva='BAABA')Then Write('t') Else
If (tekbukva='BAABB')Then Write('u') Else
If (tekbukva='BBBAB')Then Write('v') Else
If (tekbukva='BABAA')Then Write('w') Else
If (tekbukva='BABAB')Then Write('x') Else
If (tekbukva='BABBA')Then Write('y') Else
If (tekbukva='BABBB')Then Write('z') Else
Write('');
n:=n+5;
end;
close(fa);
{readln;}
end.