Предмет: Информатика,
автор: NaightMar
Написать процедуру кодирования строки по шифру Цезаря (сдвиг каждого символа по алфавиту с указанным ключом). Проверить ее работу для введенной строки с ключом, равным 3 и обратно с ключом, равным -3.
Ответы
Автор ответа:
0
const n=26; ab='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
procedure Caesar(s:string;k:integer; var t:string);
var i,p,j:integer;
begin
t:='';
for i:=1 to length(s) do
begin
p:=pos(s[i],ab);
if p>0 then begin
j:=(p+k-1) mod n+1;
if j<=0 then j:=n+j;
t:=t+ab[j];
end
else t:=t+s[i];
end;
end;
var t:string;
begin
Caesar('ANZ',3,t);
writeln(t);
Caesar(t,-3,t);
writeln(t);
end.
Пример:
DQC
ANZ
procedure Caesar(s:string;k:integer; var t:string);
var i,p,j:integer;
begin
t:='';
for i:=1 to length(s) do
begin
p:=pos(s[i],ab);
if p>0 then begin
j:=(p+k-1) mod n+1;
if j<=0 then j:=n+j;
t:=t+ab[j];
end
else t:=t+s[i];
end;
end;
var t:string;
begin
Caesar('ANZ',3,t);
writeln(t);
Caesar(t,-3,t);
writeln(t);
end.
Пример:
DQC
ANZ
Похожие вопросы
Предмет: Математика,
автор: Kawtim
Предмет: Алгебра,
автор: irina20082206
Предмет: Литература,
автор: igorfoxbrogaims23
Предмет: Литература,
автор: Супервопрос