Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2012, 21:33   #1
ACMILAN23
Новичок
Джуниор
 
Регистрация: 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;

}
ACMILAN23 вне форума Ответить с цитированием
Старый 17.01.2012, 23:52   #2
Exoo
Пользователь
 
Регистрация: 25.03.2010
Сообщений: 53
По умолчанию

по моему это массив целого типа с именем txtmodif, количество элементов в нем 12
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок, а в том, чтобы писать программы, работающие при любом количестве ошибок.
Exoo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шифр 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