Курсова робота
з дисципліни «Технологія програмування»
«Створення компонента для шифрування-дешифрування тексту»
Зміст
Введення
. Постановка завдання
. Алгоритм створення компонента
. Оригінальний текст компонента
. Інструкція користувача
. Вихідний текст програми
Висновок
Список літератури
Додаток
Введення
Розвиток шифрів історично йшов одночасно з розвитком писемності. В першу чергу вони потрібні були правителям, вдаються до послуг лазутчиків, дипломатам, що складався у них на службі, служителям культу, які прагнули обмежити доступ непосвячених до езотеричних релігійним секретам
При створенні компонента шифрування тексту я використовував три методи шифрування: алгоритм «Цезаря», алгоритм «Модифікованого Цезаря» і алгоритм «поневірятися».
. Алгоритм шифрування «Цезар»
Шифр ??Цезаря - один з найдавніших шифрів lt; # 277 src= doc_zip1.jpg / gt;
type - вибираємо предка для компонента; Name - ім'я класу для компонента; Page - вибираємо вкладку на якій буде наш компонент. У даному випадку ми створили нову вкладку з назвою My Component.
Поля Unit file name і Search path визначаються автоматично і в них нічого вводити не потрібно.
При натисканні кнопки ОК з'являється шаблон нашого майбутнього компонента.
перевизначайте конструктор у цього компонента:
У директиві public вставляємо рядок Create (AOwner: TComponent); override;
натискання на цьому рядку Ctrl + Shift + C створює шаблон для цього методу, всередині якого ми вставляємо такі рядки: Create (AOwner); {Викликаємо успадкований конструктор}
Options:=Options + [ofFileMustExist, ofPathMustExist]; {Виконуємо необхідні нам дії} Тепер потрібно зберегти і встановити створений компонент.
У меню Component вибираємо пункт Install Component ...
У полі Unit file name вказуємо ім'я нашого збереженого модуля і натискаємо ОК.
Тут з'явитися повідомлення «Такий то пакет буде змінений. Продовжити? », На це повідомлення ми натискаємо кнопку ОК.
Тепер на в новій вкладі My component з'явився наш власний компонент ShifText.
. Оригінальний текст компонента
ShifText;
interface, Classes, Dialogs;=class (TOpenDialog)
{Private declarations}
{Protected declarations }AlgCez(S,Cl:string):string;DeAlgCez(S,Cl:string):string;AlgVijen(S,Cl:string):string;DeAlgVijen(S,Cl:string):string;AlgSkit(S,Cl:string):string;DeAlgSkit(S,Cl:string):string;Create(AOwner: TComponent); override;
{Public declarations}
{Published declarations}; Register; Register; ( My Component raquo ;, [TShifText]) ;;
{TShifText} TShifText.Create (AOwner: TComponent);
beginCreate (AOwner); {Викликаємо успадкований конструктор}:=Options + [ofFileMustExist, ofPathMustExist]; {Виконуємо необхідні нам дії}
end; TShifText.AlgCez (S, Cl: string): string; i, k, k1, a, Cluch: Integer;:=StrToInt (Cl); i:=1 to Length (S) do:=Ord (S [i]);:=k + Cluch; (k1 gt;=255) then:=k1-255;:=a+1;;[i]:=Chr(k1);;:=S;;TShifText.DeAlgCez(S,Cl:string):string;i,k,k1,a,Cluch:integer;:=StrToInt(Cl);i:=1 to Length (S) do:=Ord (S [i]);:=k-Cluch; (k1 lt;=1) then:=1-k1;:=255-a;;[i]:=Chr(k1);;:=S;;TShifText.AlgVijen(S,Cl:string):string;i,k,k1,a,Cluch,Cl1:Integer;:=StrToInt(Cl);:=1;i:=1 to Length (S) do:=Ord (S [i]); Cl1 lt; Cluch then:=k + Cl1; k1 gt;=255 then:=k1-255;:=a + 1 ;; if Cl1=Cluch then: =k + Cl1; k1 gt;=255 then:=k1-255;:=a + 1 ;;:=1;:=k + Cl1; k1 gt;=255 then:=k1-255;:=a+1;;;;[i]:=Chr(k1);:=Cl1+1;;:=S;;TShifText.DeAlgVijen(S,Cl:string):string;i,k,k1,a,Cluch,Cl1:integer;:=StrToInt(Cl);:=1;i:=1 to Length (S) do:=Ord (S [i]);:=k - 1; Cl1 lt; Cluch then:=k-Cl1; k1 lt;=1 then:=1-k1;:=255-a ;; if Cl1=Cluch then:=k-Cl1; k1 lt;=1 then:=1-k1;:=255-a ;;:=1;:=k-Cl1; k1 lt;=1 then:=1-k1;:=255-a;;;[i]:=Chr(k1);:=Cl1+1;;:=S;;TShifText.AlgSkit(S,Cl:string):string;S1,n:string;i,j,a,Cl2,Cl1,d:integer;mas:array of array of string;:=StrToInt (Cl); (Length (S) mod Cl2=0) then Cl1:=(Length (S) div Cl2):=(Length (S) div Cl2) +1;:=1 ; (mas, Cl2, Cl1 + 1); j:=0 to Cl1 doi:=0 to Cl2-1 doa lt;=Length (S) then (Ord (S [a])=13) then S [a]: =Char (149); (Ord (S [a])=10) then inc (a); [i, j]:=S [a]; (a); [i, j]:= raquo ;; (a) ;;:= raquo ;;:= raquo ;; i:=0 to Cl2-1 doj:=0 to Cl1-1 do:=mas[i,j];:=S1+n;(a);;:=S1;;TShifText.DeAlgSkit(S,Cl:string):string;S1,n:string;i,j,a,Cl2,Cl1,k:integer;mas:array of array of string;:=0;:=StrToInt (Cl); (Length (S) mod Cl2=0) then Cl1:=(Length (S) div Cl2):...