Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОА Delphi формата А4.doc
Скачиваний:
7
Добавлен:
29.08.2019
Размер:
1.58 Mб
Скачать

Var I, j, Index, sdvig, a, b : integer;

txt, res : string; bukva, txt_shifr : char;

begin

Delo.Ish_text.Clear;

Delo.Shifr_text.Clear;

res :='';

if RadioGroup1.ItemIndex = 0

then begin

sdvig := StrToInt(InputBox('Введите сдвиг', '=', '2'));

for i := 0 to Memo_shifr.Lines.Count - 1 do

Delo.Shifr_text.Add(Memo_shifr.Lines.Strings[i]);

for i := 0 to Delo.Shifr_text.Count - 1 do

begin

txt := Delo.Shifr_text.Strings[i];

for j := 1 to length(txt) do

begin

bukva := txt[j];

Index := Delo.Get_kod(bukva) - sdvig;

if Index < 0 then

begin

Index := Index + 32;

txt_shifr := Delo.Get_bukva(Index);

end else

txt_shifr := Delo.Get_bukva(Delo.Get_kod(bukva) - sdvig);

res := res + txt_shifr;

end; end;

Delo.Ish_text.Add(res);

for i := 0 to Memo_shifr.Lines.Count - 1 do

Memo_ish.Lines.Add(res);

end;

if RadioGroup1.ItemIndex = 1

then begin

a := StrToInt(InputBox('Введите сдвиг', 'a=', '3'));

b := StrToInt(InputBox('Введите сдвиг', 'b=', '5'));

for i := 0 to Memo_shifr.Lines.Count - 1 do

Delo.Shifr_text.Add(Memo_shifr.Lines.Strings[i]);

for i := 0 to Delo.Shifr_text.Count - 1 do

begin

txt := Delo.Shifr_text.Strings[i];

for j := 1 to length(txt) do

begin

bukva := txt[j];

Index := Delo.Get_kod(bukva) ;

if Index > 32 then

begin

Index := Delo.Get_kod(bukva) + 32;

txt_shifr := Delo.Get_bukva((Delo.Get_kod(bukva) - b) div a)

end else

txt_shifr := Delo.Get_bukva((Index));

res := res + txt_shifr;

end;

end;

Delo.Ish_text.Add(res);

for i := 0 to Memo_shifr.Lines.Count - 1 do

Memo_ish.Lines.Add(res);

end;

Закройте отдел implementation инструкцией end;

Для создания объектов описанного класса добавьете два раздела initialization и finalization, в которых допишите Delo := TAlf_rus.Create; и Delo.Free; перед end. Добавьте проект следующими возможностями:

  • Добавьте на форму компонент StatusBar1 для отображения в статусной строке выполяемой операции. На событие создания формы добавьте отображение в статусной строке текущей даты; На событие нажатия кнопки (Зашифровать) дописать отображение текста 'шифрование методом (имя метода)' в статусной строке StatusBar1;

  • В данном классе допишите поле, содержащее буквы латинского алфавита для шифрования слов на английском языке. Предусмотрите выбор языка шифрования в RadioGroup2 (русский, английский).

  • Добавление меню, состоящее из команд: File (Open (для открытия файла), Save (для сохранения зашифрованного текста), Exit (для завершения приложения)); Edit (Метод Цезаря, Афинная система) - свяжите с написанными процедурами нажатия на соответствующую кнопку; About (About (открытие формы AboutBox1, содержащей справочную информацию об исползуемых методах шифрования)). Зашифруйте пиьмо другу одним 1 способом.

ВОПРОСЫ: 1. Создание собственного класса. 2. Методы шифрования информации.

Завершите работу с программой. Сдайте работу преподавателю