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

Ish_text.Free;

Shifr_text.Free;

end;

  1. Добавьте в раздел public функцию для нахождения кода по букве function Get_kod(bukva : char) : integer;

  2. В разделе implementation добавьте описание данной функции

function TAlf_rus.Get_bukva(kod: integer): char;

begin

Result := al[kod];

end;

  1. Добавьте в раздел public функцию для нахождения буквы по коду function Get_bukva(kod : integer) : char;

  2. В разделе implementation добавьте описание данной функции

function TAlf_rus.Get_kod(bukva: char): integer;

Var I : byte;

begin

for i := 0 to 31 do

if bukva = al[i] then begin

Result := i; break;

end; end;

  1. Сохраните модуль под именем alf

  2. Перейдите на модуль формы, сохраните его под именем main.

  3. Добавьте в раздел uses (содержит список подключаемых модулей) - модуль alf.

Описание переменных, используемых в задаче: Добавьте в раздел описания переменных Delo : TAlf_rus;

  1. Создание интерфейса программы:

Для выполнения задания необходимо:

  1. Создание интерфейса программы. На форму поместите следующие компоненты (смотри рисунок справа).

  2. Измените следующие свойства:

  • компонент ImageList1 (используется для хранения картинок);

  • к омпонент Memo_ish – компонент класса TMemo – для ввода шифруемого текста;

  • компонент Memo_shifr - для отображения результатов шифрования;

  • к омпоненты BitBtn1, BitBtn2 для кнопок Очистить и Закрыть (измените свойство kind и caption);

  • компонент ToolBar1 добавьте две кнопки. Измените свойство Images на ImageList1;

  • компонент RadioGroup1.

  • для формы Form1 измените свойство ActiveControl на Memo_ish для отображения фокуса при создании формы.

  1. Разместите добавленные компоненты на форме.

  2. Напишите следующие программы для реализации приложения:

  • На событие нажатия кнопки Очистить напишите процедуру для очистки кмопонентов изменения Memo_ish, Memo_shifr, а также определите фокус в Memo_ish.

  • На событие нажатия кнопки для шифрования текста напишите процедуру:

procedure TForm1.ToolButton1Click(Sender: TObject);

Var sdvig,I, j, Index : integer;

txt, res : string; bukva : char;

txt_shifr : char; a, b : byte;

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_ish.Lines.Count - 1 do

Delo.Ish_text.Add(Memo_ish.Lines.Strings[i]);

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

begin

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

for j := 1 to length(txt) do

begin

bukva := txt[j];

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

if Index > 31 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.Shifr_text.Add(res);

Memo_shifr.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_ish.Lines.Count - 1 do

Delo.Ish_text.Add(Memo_ish.Lines.Strings[i]);

Delo.Shifr_text := Delo.Ish_text;

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

begin

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

for j := 1 to length(txt) do

begin

bukva := txt[j];

Index := Delo.Get_kod(bukva)*a + b;

if Index > 31 then

begin

Index := Index mod 32;

txt_shifr := Delo.Get_bukva(Index);

end else

txt_shifr := Delo.Get_bukva(Index);

res := res + txt_shifr;

end; end;

Delo.Shifr_text.Add(res);

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

Memo_shifr.Lines.Add(res); end;end;

  • На события нажатия кнопки для дешифрования напишите процедуру

procedure TForm1.ToolButton2Click(Sender: TObject);