Показать сообщение отдельно
  #6  
Старый 25.01.2011, 20:54
Димона Димона вне форума
Прохожий
 
Регистрация: 19.12.2010
Сообщения: 17
Репутация: 12
Сообщение )

Цитата:
Сообщение от Aristarh Dark
А какое это имеет отношение к шифру Цезаря - сдвиговому шифру???
никакого)) то еще 1 задание)

у мну дешифрование не получается..

Код:
const alfa:array[0..65] of char = ('А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й', 'К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я', 'а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы', 'ь','э','ю','я');

var
  Form1: TForm1;
     a:array[0..65] of char;
  i, j, k: integer;
  s, s2:string;

implementation

{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);
begin
  For i:=0 to 65 do
  begin                        
    a[i]:= alfa[(i+1) mod 66];
  end;

   // шифр
    k := StrToInt(Edit1.Text);
    s := Memo1.Lines.Text;
    for i := 1 to length(s) do
      for j := 0 to 65 do
        if s[i] = a[j] then s2 := s2+a[(j+(k-1)) mod 66];
    Memo2.Lines.Text := s2;
    s2 := '';
  end;

procedure TForm1.Button2Click(Sender: TObject);
begin
// дешифр
    k := StrToInt(Edit1.Text);
    s := Memo1.Lines.Text;
    for i := 1 to length(s) do
      for j := 0 to 65 do
        if s[i] = a[j] then s2 := s2+a[(j-(k-1)) mod 66];
    Memo2.Lines.Text := s2;
    s2 := '';
  end;
Ответить с цитированием