Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Разработать программу шифрования текстовых файлов (http://www.tehnari.ru/f41/t106402/)

AlexZir 16.01.2016 21:24

Владимир Игоревич, согласно алгоритму Цезаря, последняя буква алфавита меняется на первую при шифровании и наоборот при дешифровке. Так что почти наверняка это важно :)

Vladimir_S 16.01.2016 21:37

Цитата:

Сообщение от AlexZir (Сообщение 1199170)
Владимир Игоревич, согласно алгоритму Цезаря, последняя буква алфавита меняется на первую при шифровании и наоборот при дешифровке. Так что почти наверняка это важно :)

Тогда так:
Код:

Var
 f1,f2:Text;
 N1,N2:String;
 ED:byte;

Function Encode_String(S:String):String;
var
 i,L:byte;
 S1:String;
begin
 S1:='';
 L:=Length(S);
 for i:=1 to L do
  if Ord(S[i])=255 then
  S1:=S1+Chr(1)
  else
  S1:=S1+Chr(Ord(S[i])+1);
 Encode_String:=S1;
end;

Function Decode_String(S:String):String;
var
 i,L:byte;
 S1:String;
begin
 S1:='';
 L:=Length(S);
 for i:=1 to L do
  if Ord(S[i])=1 then
  S1:=S1+Chr(255)
  else
  S1:=S1+Chr(Ord(S[i])-1);
 Decode_String:=S1;
end;

Procedure Encode_File(Nm1,Nm2:String);
var S:String;
begin
 Assign(f1,Nm1);
 Reset(f1);
 Assign(f2,Nm2);
 Rewrite(f2);
 Repeat
  Readln(f1,S);
  Writeln(f2,Encode_String(S));
 Until EoF(f1);
 Close(f1);
 Close(f2);
end;

Procedure Decode_File(Nm1,Nm2:String);
var S:String;
begin
 Assign(f1,Nm1);
 Reset(f1);
 Assign(f2,Nm2);
 Rewrite(f2);
 Repeat
  Readln(f1,S);
  Writeln(f2,Decode_String(S));
 Until EoF(f1);
 Close(f1);
 Close(f2);
end;

Begin
 Repeat
  Writeln('Choose the action: 1 - encode');
  Writeln('                  2 - decode');
  Writeln('                  0 - quit');
  Readln(ED);
  Case ED of
  1: begin
      write('Initial file name (full path): ');
      readln(N1);
      write('Encoded file name (full path): ');
      readln(N2);
      Encode_File(N1,N2);
      end;
  2: begin
      write('Encoded file name (full path): ');
      readln(N1);
      write('Decoded file name (full path): ');
      readln(N2);
      Decode_File(N1,N2);
      end;
  end;
  Writeln;
 Until ED=0;
End.


Николай_С 16.01.2016 21:39

Могу дать готовый шифровирус.
Не уверен что он работает по заданному алгоритму, но зашифрует все наработки на компе препода. :)))

Vladimir_S 16.01.2016 21:47

Цитата:

Сообщение от Николай_С (Сообщение 1199183)
Могу дать готовый шифровирус.
Не уверен что он работает по заданному алгоритму, но зашифрует все наработки на компе препода. :)))

Коля, обсуждение способов суицида законодательством запрещено! :D

Programmer8 16.01.2016 22:23

Ну желательно конечно бы без катастроф, если вам не сложно то можете поправить?:)

Vladimir_S 16.01.2016 22:43

Цитата:

Сообщение от Programmer8 (Сообщение 1199205)
Ну желательно конечно бы без катастроф, если вам не сложно то можете поправить?:)

Так уже в #12 исправленный вариант выложен!

Programmer8 16.01.2016 23:08

Да я уже увидел:) Еще раз большое Вам спасибо!


Часовой пояс GMT +4, время: 15:55.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.