Мегаобучалка Главная | О нас | Обратная связь


МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ



2019-12-29 247 Обсуждений (0)
МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ 0.00 из 5.00 0 оценок




Ниже приводится пример реализации шифра Цезаря в среде Delphi.

Общая схема шифра для латинского алфавита изображена на рис. 2.

 


А B C D E F G H I

Рис. 2

То есть, отображение происходит по правилу: A-D, B-E, C-F, D-G и т.д.

Например, слово BAG будет зашифровано в EDJ. Очевидно, что для обратного преобразования необходимо «сдвинуть» символы в обратную сторону на количество, равное исходному ключу.

 Шифрование можно выразить общей формулой:

, где

С – шифрованный символ,

О – открытый текст,

key – ключ (сдвига).

Обратное же преобразование будет выполняться по формуле:

, где

С – шифрованный символ,

О – открытый текст,

key – ключ (сдвига).

 

Теперь приступим непосредственно к программированию данных шифров.

 

 

1. Запустите инструментальную объектно-ориентированную среду программирования Delphi. (Пуск/Программы/ Borland Delphi / Delphi)

2. Создайте новый проект и сохраните его в новой папке AtbashCezar.

3. Поместите на форму следующие компоненты со страниц:

a. Standard:

i. Label 3 шт;

ii. Memo 2 шт;

iii. ComboBox 1 шт;

iv. RadioGroup 1 шт;

v. CheckBox 1 шт;

vi. ActionList 1 шт.

b. Additional:

i. BitBtn 7 шт.

c. Dialogs:

i. OpenDialog 1 шт;

ii. SaveDialog 1 шт.

4. Задайте следующие свойства данным компонентам:

Компонент Свойство Значение
Form1 Caption Шифрование текста
Label1 Caption Выберите шифр
Label2 Caption Исходный текст
Label3 Caption Результат
ComboBox1 Items Атбаш Шифр Цезаря
ComboBox1 ItemIndex 0
RadioGroup1 ItemIndex 0
RadioGroup1 Items Шифровать Расшифровать
RadioGroup1 Caption Действие
CheckBox1 Name Clr
CheckBox1 Caption Всегда очищать результат
BitBtn1 Caption Выполнить
BitBtn2 Caption Очистить
BitBtn3 Caption Очистить
BitBtn4 Caption Поменять
BitBtn5 Caption Выход
BitBtn6 Caption Открыть исх. текст из файла
BitBtn7 Caption Сохранить результат в файл
SaveDialog1 Filter Текстовые файлы|*.txt
OpenDialog1 Filter Текстовые файлы|*.txt
ActionList1 Name Crypto

Свойства Glyph(иконка, файл *.ico) компонента BitBtn заполните самостоятельно. Стандартные иконки для кнопок Delphi расположены в C:\Program files\Common files\Borland Shared\Images\Buttons. Также вы можете изменить свойство Font компонентов Label1 и Label2.

5. Расположите компоненты на форме по образцу:

 

6. Создайте следующие подпрограммы шифрования строк (после implementation):

{ Шифр Атбаш . Симметричный }

function catbash(s:string):string;

var i:integer; c,d:char;rez:string;

Begin

rez:='';

for i:=1 to length(s) do

begin

c:=s[i];

d:=chr(255-ord(c));

rez:=rez+d;

end;

catbash:=rez;

end;

{ Шифр Цезаря . Шифрование }

function cEcezar(s:string; key:byte):string;

var i:integer; c,d:char;rez:string;

Begin

rez:='';

for i:=1 to length(s) do

begin

c:=s[i];

d:=chr((ord(c)+ key)mod 255);

rez:=rez+d;

end;

cEcezar:=rez;

end;

{ Шифр Цезаря . Расшифрование }

function cDcezar(s:string;key:byte):string;

var i:integer; c,d:char;rez:string;

begin

rez:='';

for i:=1 to length(s) do

begin

c:=s[i];

d:=chr((ord(c)- key)mod 255);

rez:=rez+d;

end;

cDcezar:=rez;

end;

 

7. Двойным щелчком вызовите редактор компонента Crypto (TActionList) и создайте следующие действия:

Для переименования в соответствии с образцом измените свойство Name у каждого действия.

8. Для каждого из действий опишите подпрограммы:

 

procedure TForm1.AtbashExecute(Sender: TObject);

var i:integer;

Begin

for i:=0 to memo1.Lines.Count do

memo2.Lines.Add(catbash(memo1.Lines[i]));

end;

procedure TForm1.ECezarExecute(Sender: TObject);

var i:integer;key:byte;

Begin

key:=strtoint(inputbox('Шифр Цезаря','Введите значение ключа - только целое число','3'));

for i:=0 to memo1.Lines.Count do

memo2.Lines.Add(cEcezar(memo1.Lines[i],key));

 

end;

procedure TForm1.DCezarExecute(Sender: TObject);

var i:integer;key:byte;

Begin

key:=strtoint(inputbox('Шифр Цезаря','Введите значение ключа - только целое число','3'));

for i:=0 to memo1.Lines.Count do

memo2.Lines.Add(cDcezar(memo1.Lines[i],key));

end;

procedure TForm1.clearExecute(Sender: TObject);

Begin

memo2.Clear;

end;

procedure TForm1.changeExecute(Sender: TObject);

Begin

memo1.Lines:=memo2.Lines;

memo2.Clear;

end;

9. Опишите подпрограммы для каждой из кнопок BitBtn :

 

procedure TForm1.BitBtn1Click(Sender: TObject);

Begin

if clr.Checked then memo2.clear;

if combobox1.ItemIndex=0 then atbash.Execute

else if action.ItemIndex=0 then ECezar.Execute

else DCezar.Execute;

end;

 

procedure TForm1.BitBtn2Click(Sender: TObject);

Begin

memo1.Clear;

end;

 

procedure TForm1.BitBtn3Click(Sender: TObject);

Begin

memo2.Clear;

end;

 

procedure TForm1.BitBtn4Click(Sender: TObject);

Begin

change.Execute;

end;

 

procedure TForm1.BitBtn5Click(Sender: TObject);

Begin

close;

end;

 

procedure TForm1.BitBtn6Click(Sender: TObject);

Begin

if Opendialog1.Execute then

memo1.Lines.LoadFromFile(opendialog1.FileName);

end;

 

procedure TForm1.BitBtn7Click(Sender: TObject);

Begin

if Savedialog1.Execute then

memo2.Lines.SaveToFile(savedialog1.FileName);

end;

10. Запустите проект.

 



2019-12-29 247 Обсуждений (0)
МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ 0.00 из 5.00 0 оценок









Обсуждение в статье: МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (247)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)