|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.01.2012, 21:33 | #1 |
Новичок
Джуниор
Регистрация: 16.06.2011
Сообщений: 2
|
Шифр Хилла
Пожалуйста помогите прокомментировать код отмеченый крассным цветом.
Задание: Код: #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString alfabet="abcdefghijklmnopqrstuvwxyz $"; AnsiString txt,txt2=""; txt=Form1->Edit1->Text; double mtr[3][3]={17,17,5,21,18,21,2,2,19}; int txtmodif[12]; int txtcode[12]; int y=txt.Length(),i=0,p=0; double z=y%3; while (z!=0) { txt=txt+'$'; y=txt.Length(); z=y%3; } Form1->Edit1->Text=txt; //преобразовать открытый текст из AnsiString в коды // int l=1; int o=0; for (i=1;i<y+1;i++) //перебор открытого текста { while (o!=1) { if (txt[i]==alfabet[l]) //выборка из алфавита { txtmodif[i-1]=l-1; o=1; } l++; } o=0; l=1; } //Form1->Label4->Caption=IntToStr(txtmodif); //-------------------------------------------------- y=txt.Length(); i=0; //индекс букв открытого текста while (i<y) { for (int m=0;m<3;m++) {for (int n=0;n<3;n++) {p=p+mtr[m][n]*txtmodif[i+n]; } txtcode[i+m]=p%26; p=0; } i=i+3; } //преобразовать зашифрованный текст из кодов в AnsiString y=txt.Length(); l=1; o=0; for (i=1;i<y+1;i++) //перебор открытого текста { while (o!=1) { if (txtcode[i-1]==l-1) //выборка из алфавита { txt2=txt2+alfabet[l]; o=1; } l++; } o=0; l=1; } Form1->Edit2->Text=txt2; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { AnsiString alfabet="abcdefghijklmnopqrstuvwxyz $"; AnsiString txt,txt2=""; txt=Form1->Edit2->Text; double mtr[3][3]={4,9,15,15,17,6,24,0,17}; int txtmodif[12]; int txtcode[12]; int y=txt.Length(),i=0,p=0; double z=y%3; while (z!=0) { txt=txt+'$'; y=txt.Length(); z=y%3; } Form1->Edit2->Text=txt; //преобразовать открытый текст из AnsiString в коды // int l=1; int o=0; for (i=1;i<y+1;i++) //перебор открытого текста { while (o!=1) { if (txt[i]==alfabet[l]) //выборка из алфавита { txtmodif[i-1]=l-1; o=1; } l++; } o=0; l=1; } //Form1->Label4->Caption=IntToStr(txtmodif); //-------------------------------------------------- y=txt.Length(); i=0; //индекс букв открытого текста while (i<y) { for (int m=0;m<3;m++) {for (int n=0;n<3;n++) {p=p+mtr[m][n]*txtmodif[i+n]; } txtcode[i+m]=p%26; p=0; } i=i+3; } //преобразовать зашифрованный текст из кодов в AnsiString y=txt.Length(); l=1; o=0; for (i=1;i<y+1;i++) //перебор открытого текста { while (o!=1) { if (txtcode[i-1]==l-1) //выборка из алфавита { txt2=txt2+alfabet[l]; o=1; } l++; } o=0; l=1; } Form1->Edit3->Text=txt2; } |
17.01.2012, 23:52 | #2 |
Пользователь
Регистрация: 25.03.2010
Сообщений: 53
|
по моему это массив целого типа с именем txtmodif, количество элементов в нем 12
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок, а в том, чтобы писать программы, работающие при любом количестве ошибок.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Шифр | SYSSI | Безопасность, Шифрование | 4 | 13.05.2011 19:00 |
Шифр? | KoBRaAndrey | Работа с сетью в Delphi | 0 | 12.12.2009 16:16 |
Шифр | Progs1024 | Паскаль, Turbo Pascal, PascalABC.NET | 9 | 12.10.2009 19:51 |
Шифр Хилла | Fallen Soul | Помощь студентам | 4 | 05.10.2009 02:09 |
че за шифр? | Анастасия123456789 | Помощь студентам | 4 | 11.05.2009 19:19 |