![]() |
|
|
|
|
#1
|
|||
|
|||
|
помогите пожалуйста с такой задачей..
разработать программу реализующую шифр цезаря. поля формы должны принимать исходный текст,ключ(любого размера),и выводить закрытый(зашифрованный)текст. программа должна реализовывать процедуру шифрования и дешифрования. поделитесь своими мыслями.. |
|
#4
|
|||
|
|||
|
а про расчет частотных характеристик текстовых сообщений и количества встречаемости биграмм в тексте там нету..
|
|
#5
|
||||
|
||||
|
А какое это имеет отношение к шифру Цезаря - сдвиговому шифру???
|
|
#6
|
|||
|
|||
|
Цитата:
у мну дешифрование не получается.. Код:
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; |
|
#7
|
||||
|
||||
|
Перед тем как использовать s2 -
s2:=''; А вобщем код ужаснейший. Чем ACSII не устраивает? |