Program Shifr;var s1,s2:string; i,n,k,p:integer; key:integer; //ключ шифрования f1,f2:text;BEGINassign(f1,'Dannie.txt'); assign(f2,'Shifr.txt'); reset(f1);rewrite(f2);writeln('Введите ключ шифрования от 1 до 33:');readln(key);w...

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'. Примечание. Для шифруемого текста в этой задаче проще использовать только симолы латинского алфавита.
Гость
Ответ(ы) на вопрос:
Гость
Program Shifr; var s1,s2,alf:string; i:integer; key, Kod:integer; //ключ шифрования f1,f2:text; BEGIN alf:='abcdefghijklmnopqrstuvwxyz'; 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. 
Не нашли ответ?
Ответить на вопрос
Похожие вопросы