давно
Старший Модератор
31795
6196
24.11.2020, 16:36
общий
это ответ
Здравствуйте, JonMoxley!
Смотрите код:
[code lang=pascal]const
m=26;
var
a,b,c:integer;
i:array[1..m-1]of integer;
n:array[0..m-1]of integer;
s,p,o:string;
begin
{coder}
a:=7;
b:=5;
for c:=0 to m-1 do n[c]:=(a*c+b)mod m;
s:='example of encryption and decryption by the affine Caesar permutation system';
write('Enter string:=',s);
{ readln(s);}
while pos(' ',s)>0 do delete(s,pos(' ',s),1);
s:=UpperCase(s);
o:=s;
for c:=1 to length(s)do
{ if s[c] in ['A'..'Z']then }s[c]:=chr(ord('A')+n[ord(s[c])-ord('A')]);
writeln('Code string:=',s);
readln;
{decoder}
for c:=1 to m-1 do i[c]:=0;
for c:=1 to m-1 do for b:=1 to m-1 do
if(b<>c)and((b*c mod m)=1)then i[c]:=b;
for a:=0 to m-1 do
begin
{ writeln('':15,s);}
for c:=1 to m-1 do if i[c]<>0 then
begin
p:=s;
write('Decode string:=');
for b:=0 to m-1 do n[b]:=i[c]*(m+b-a)mod m;
for b:=1 to length(p)do
{ if p[b] in ['A'..'Z']then }p[b]:=chr(ord('A')+n[ord(p[b])-ord('A')]);
{ if p=o then writeln(p,' bingo')else} writeln(p);
end;
readln;
end;
end.[/code]
Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.