Program shifr; var s1,s2: string; i,n,k,p: integer; key: integer; //ключ шифрования f1,f2: text; begin assign(f1,'dannie.txt'); assign(f2,'shifr.txt'); reset(f1); rewrite(f2); writeln('введите ключ шифрования от 1 до 33: '); readln(key); while not(eof(f1)) do begin readln(f1,s1); s2: =''; for i: =1 to length(s1) do s2: =s2+chr(ord(s1[i])+key); writeln(f2,s2); end; close(f1); close(f2); end. создать программы шифрации и дешифрации для следующего цикличного модифицированного алгоритма цезаря: ключ шифрования 1 цифра от 1 до 26, эта цифра определяет сдвиг 1 симовла шифруемого текста в сторону увеличения, 2 символа шифруемого текста в сторону уменшения, 3 символа снова в сторону увеличения и т. д. при этом если мы сдвигаем в сторону увеличения последние буквы алфавита, то они циклически преобразуются в первые, напрмер 'z' сдвигаемая на 2 позиции вправо превратится в 'b'. если сдвиг идет в сторону уменшения, то наоборот первые симолы алфавита, преобразуются в посление, например, 'a' сдвигаемая в сторону уменьшения на 2 позиции, преобразуется в 'y'. примечание. для шифруемого текста в этой проще использовать только симолы латинского алфавита.

Сонька2808 Сонька2808    2   20.08.2019 17:40    0

Ответы
adilyabaxtigar adilyabaxtigar  05.10.2020 07:45
Program Shifr;
var s1,s2,alf:string;
i:integer;
key, Kod:integer; //ключ шифрования
f1,f2:text;
BEGIN
alf:='';
assign(f1,'Dannie.txt'); 
assign(f2,'Shifr.txt'); 
reset(f1);
rewrite(f2);
writeln('Введите ключ шифрования от 1 до 25:');
readln(key);
while Not(Eof(f1)) do
  begin
  readln(f1,s1);
  s2:='';
  for i:=1 to length(s1) do
    begin
    Kod:=Pos(s1[i],s1);
    Kod:=Kod+key;
    if Kod>26 then Kod:=Kod-26;
    if Kod<1 then Kod:=Kod+26;
    s2:=s2+alf[Kod];
    key:=-key;
    end;
  writeln(f2,s2);
  end;
close(f1); 
close(f2); 
END. 
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика