Register

OR

Do you already have an account? Login

Login

OR

Don't you have an account yet? Register

Newsletter

Submit to our newsletter to receive exclusive stories delivered to you inbox!

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.
Создать программы шифрации и дешифрации для следующего модифицированного алгоритма Цезаря: ключ шифрования 4 цифры (каждая цифра от 1 до 9), 1 цифра определяет сдвиг 1 симовла шифруемого текста, 2 цифра — 2 символа, 3 цифра — 3 символа, 4 цифра — 4 символа, а для пятого символа снова 1 цифра ключа и т. д.

более месяца назад
Просмотров : 34    Ответов : 1   

Лучший ответ:

Program Shifr;
var    
  s1,s2,alf,key:string;
  i,n, Kod:integer;
  f1,f2:text;
BEGIN
alf:='абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
assign(f1,'Dannie.txt'); 
assign(f2,'Shifr.txt'); 
reset(f1);
rewrite(f2);
writeln('Введите четырехзначный ключ шифрования:');
readln(key);
n:=0;
while Not(Eof(f1)) do
  begin
  readln(f1,s1);
  s2:='';
  for i:=1 to length(s1) do
    begin
    Kod:=Pos(s1[i],alf);
    n:=n 1;
    if n>4 then n:=1;
    Kod:=Kod StrToInt(key[n]);
    if Kod>33 then Kod:=Kod-33;
    if Kod<1 then Kod:=Kod 33;
    s2:=s2 alf[Kod];
    end;
  writeln(f2,s2);
  end;
close(f1); 
close(f2); 
END. 

Program DeShifr;
var
  s1,s2,alf,key:string;
  i,n,Kod:integer;
  f1,f2:text;
BEGIN
alf:='абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
assign(f1,'Shifr.txt'); 
assign(f2,'DeShifr.txt');
reset(f1);
rewrite(f2);
writeln('Введите четырехзначный ключ шифрования:');
readln(key);
n:=0;
while Not(Eof(f1)) do
  begin
  readln(f1,s1);
  s2:='';
  for i:=1 to length(s1) do
    begin
    Kod:=Pos(s1[i],alf);
    n:=n 1;
    if n>4 then n:=1;
    Kod:=Kod-StrToInt(key[n]);
    if Kod>33 then Kod:=Kod-33;
    if Kod<1 then Kod:=Kod 33;
    s2:=s2 alf[Kod];
    end;
  writeln(f2,s2);
  end;
close(f1); 
close(f2); 
END. 

более месяца назад
Ваш ответ:
Комментарий должен быть минимум 20 символов
Чтобы получить баллы за ответ войди на сайт





Вы можете из нескольких рисунков создать анимацию (или целый мультфильм!). Для этого нарисуйте несколько последовательных кадров и нажмите кнопку Просмотр анимации.


Другие вопросы: