ïðèëîæåíèè À ïðåäñòàâëåí òåêñò ïðîãðàììû ðåàëèçóþùèé àëãîðèòì øèôðîâàíèÿ ìåòîäîì Öåçàðÿ.
Íà ôîðìå ðàñïîëîæåíî òðè êîìïîíåíòà 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.
|