Описание программы

В приложении А представлен текст программы реализующий алгоритм шифрования методом Цезаря.

На форме расположено три компонента Button: зашифровать (Button1), расшифровать (Button2), ключ (Button3). При нажатии на кнопку ключ (Button3) срабатывает процедура TForm1.Button3Click которая осуществляет чтение ключа из текстового файла. В этой процедуре используются следующие переменные:

– f (тип textfile) – применяется для работы с физическим файлом;

– l (тип string) – используется как вспомогательная переменная для работы с элементами файла;

– k (тип integer) – это переменная в которой хранится ключ считанный с файла.

В теле процедуры проверяется условие OpenDialog1.Execute=true. Если оно выполняется, то с помощью процедуры AssignFile связывается файловая переменная f с физическим файлом.

После этого осуществляется открытие файла для чтения с помощью процедуры reset. Процедурой read считываем из файла f символ, который записываем в переменную l, а затем переводим её из строкового типа в целый, и выводим его значение в компонент Edit1. После того, как считан символ из файла он закрывается с помощью процедуры closefile.

При нажатии на кнопку зашифровать (Button1) срабатывает процедура TForm1.Button1Click. Для работы используются следующие глобальные переменные:

– Buk (тип string) – массив констант, в котором записаны заглавные и строчные буквы русского алфавита;

– t (тип string) – текст используемый для шифрования;

– j , i (тип integer) используются как переменные счетчика;

– g (тип integer) – количество символов строковой переменной t.

В начале процедуры в переменную t записывается текст из компонента Memo1, который необходимо зашифровать. Затем определяем длину строки t с помощью функции length. После этого очищаем компонент Memo2, куда будет вводиться зашифрованный текст с помощью метода Clear. Потом организовываем цикл с параметром, цикл от 1 до длинны строки t. Внутри цикла проверяется условие (t[i] = ‘ ‘) or (t[i] = ‘.’) or (t[i] = ‘,’), если оно выполняется, то в компонент Memo2 выводится i-ый символ строки t. Если условие не выполняется, то увеличивается значение счетчика j на единицу, при условии t[i]<>Buk[j] (это осуществляется с помощью цикла while). Увеличиваем значение счетчика j на k, т.е. указываем позицию символа, которой необходимо поставить на место данного символа в строке t и выводим полученное значение в компонент Memo2.

Добавить комментарий