Показать сообщение отдельно

  #4  
Старый 02.11.2009, 21:26
Spider545
Новичок
Регистрация: 10.04.2009
Сообщений: 26
Провел на форуме:
28153

Репутация: 2
По умолчанию

В общем вот такая рабочая программка:

Unit1.cpp:

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
Memo1->Clear();
if (OpenDialog1->Execute())
Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
struct{
int n; //вероятность бирграмы
char bigrama[2];} //сама биграма
str[811]={
{2," "}, {70," ("}, {74," -"}, {4," 1"}, {2," 2"}, {2," 4"}, {2," 6"},
{4," 9"}, {14," А"}, {6," Б"}, {74," В"}, {2," Г"}, {26," Д"}, {14," Е"},
{22," З"}, {42," И"}, {40," К"}, {8," Л"}, {14," М"}, {48," Н"}, {54," О"},
{56," П"}, {12," Р"}, {36," С"}, {18," Т"}, {12," У"}, {4," Ф"}, {10," Х"},
{2," Ц"}, {2," Ч"}, {6," Ш"}, {16," Э"}, {2," Ю"}, {4," Я"}, {162," а"},
{294," б"}, {652," в"}, {72," г"}, {284," д"}, {88," е"}, {36," ж"}, {204," з"},
{652," и"}, {472," к"}, {94," л"}, {228," м"}, {548," н"}, {556," о"},
{816," п"}, {218," р"}, {828," с"}, {372," т"}, {222," у"}, {20," ф"},
{76," х"}, {44," ц"}, {220," ч"}, {16," ш"}, {142," э"}, {6," ю"}, {26," я"},
{6,"! "}, {4,"!)"}, {6,"% "}, {2,"(В"}, {4,"(в"}, {2,"(г"}, {2,"(е"}, {12,"(и"},
{4,"(к"}, {2,"(л"}, {4,"(м"}, {8,"(н"}, {10,"(о"}, {2,"(п"}, {2,"(р"}, {4,"(с"},
{2,"(т"}, {4,"(у"}, {6,"(х"}, {28,") "}, {18,"),"}, {22,")."}, {2,");"},
{834,", "}, {2,",-"}, {76,"- "}, {4,"-в"}, {6,"-з"}, {2,"-к"}, {4,"-л"},
{2,"-м"}, {6,"-н"}, {6,"-п"}, {8,"-т"}, {2,"-ч"}, {415,". "}, {6,".)"},
{8,".."}, {2,".п"}, {4,"0 "}, {6,"0%"}, {2,"10"}, {2,"19"}, {2,"20"}, {2,"4}"},
{2,"60"}, {2,"7 "}, {4,"90"}, {2,"97"}, {2,"99"}, {28,": "}, {10,"; "},
{4,"? "}, {2,"А "}, {2,"А."}, {2,"АО"}, {2,"АТ"}, {2,"АЭ"}, {2,"Ар"}, {6,"Ат"},
{2,"Бо"}, {4,"Бы"}, {34,"В "}, {20,"ВС"}, {2,"Ва"}, {2,"Ве"}, {2,"Вз"},
{4,"Во"}, {8,"Вс"}, {4,"Вы"}, {2,"Гл"}, {12,"Да"}, {4,"Де"}, {4,"Дл"},
{6,"Др"}, {4,"Ег"}, {10,"Ес"}, {12,"За"}, {6,"Зв"}, {2,"Зи"}, {2,"Зн"},
{8,"И "}, {6,"И,"}, {2,"И:"}, {2,"Иг"}, {4,"Из"}, {4,"Им"}, {4,"Ин"},
{10,"Ис"}, {8,"Ит"}, {6,"Их"}, {8,"К "}, {10,"Ка"}, {2,"Ке"}, {16,"Ко"},
{4,"Кр"}, {8,"Ле"}, {4,"МИ"}, {2,"Ме"}, {6,"Ми"}, {2,"Мн"}, {2,"Мо"},
{2,"Мы"}, {2,"Н "}, {2,"НА"}, {16,"На"}, {12,"Не"}, {2,"Ни"}, {14,"Но"},
{2,"Ну"}, {2,"О "}, {2,"О}"}, {2,"ОН"}, {6,"Об"}, {10,"Од"}, {8,"Он"},
{22,"Ос"}, {2,"От"}, {6,"Оч"}, {2,"ПО"}, {30,"По"}, {24,"Пр"}, {2,"Ра"},
{8,"Ре"}, {2,"Ро"}, {20,"С "}, {2,"С}"}, {8,"С,"}, {8,"СИ"}, {4,"СМ"}, {2,"СШ"},
{4,"Сл"}, {8,"Со"}, {2,"Су"}, {2,"ТО"}, {6,"Та"}, {10,"Те"}, {2,"Тр"}, {2,"У "},
{6,"Уг"}, {2,"Уд"}, {2,"Уя"}, {2,"Фа"}, {2,"Фр"}, {2,"Ха"}, {8,"Хо"}, {2,"Це"},
{2,"Чт"}, {2,"ША"}, {2,"Ши"}, {4,"Шу"}, {2,"ЭС"}, {2,"Эк"}, {14,"Эт"}, {2,"Юг"},
{2,"Я "}, {2,"Яр"}, {466,"а "}, {2,"а!"}, {8,"а}"}, {54,"а,"}, {4,"а-"},
{36,"а."}, {6,"а:"}, {2,"а;"}, {54,"аб"}, {124,"ав"}, {14,"аг"}, {72,"ад"},
{114,"ае"}, {58,"аж"}, {154,"аз"}, {24,"аи"}, {26,"ай"}, {422,"ак"}, {270,"ал"},
{174,"ам"}, {350,"ан"}, {32,"ап"}, {86,"ар"}, {204,"ас"}, {372,"ат"}, {4,"ау"},
{2,"аф"}, {44,"ах"}, {140,"ац"}, {74,"ач"}, {28,"аш"}, {86,"ащ"}, {48,"аю"},
{96,"ая"}, {18,"б "}, {2,"б."}, {38,"ба"}, {176,"бе"}, {2,"бж"}, {8,"би"},
{2,"бк"}, {34,"бл"}, {2,"бм"}, {28,"бн"}, {140,"бо"}, {44,"бр"}, {32,"бс"},
{50,"бу"}, {24,"бх"}, {30,"бщ"},
{12,"бъ"}, {158,"бы"}, {16,"бя"}, {312,"в "}, {2,"в!"}, {2,"в}"}, {42,"в,"},
{2,"в-"}, {8,"в."}, {4,"в;"}, {350,"ва"}, {4,"вв"}, {10,"вд"}, {256,"ве"},
{64,"вз"}, {158,"ви"}, {12,"вк"}, {96,"вл"}, {4,"вм"}, {86,"вн"}, {298,"во"},
{2,"вп"}, {22,"вр"}, {88,"вс"}, {12,"вт"}, {34,"ву"}, {2,"вх"}, {18,"вш"},
{154,"вы"}, {18,"вя"}, {2,"г-"}, {52,"га"}, {30,"гд"}, {12,"ге"}, {58,"ги"},
{6,"гк"}, {22,"гл"}, {2,"гм"}, {6,"гн"}, {308,"го"}, {86,"гр"}, {24,"гу"},
{22,"д "}, {4,"д,"}, {2,"д."}, {160,"да"}, {2,"дб"}, {22,"дв"}, {8,"дд"},
{248,"де"}, {106,"ди"}, {4,"дк"}, {74,"дл"}, {16,"дм"}, {128,"дн"}, {178,"до"},
{8,"дп"}, {38,"др"}, {32,"дс"}, {4,"дт"}, {76,"ду"}, {2,"дх"}, {2,"дч"},
{2,"дъ"}, {16,"ды"}, {16,"дь"}, {16,"дя"}, {882,"е "}, {4,"е!"}, {8,"е}"},
{66,"е,"}, {2,"е-"}, {22,"е."}, {26,"еа"}, {44,"еб"}, {66,"ев"}, {118,"ег"},
{228,"ед"}, {82,"ее"}, {38,"еж"}, {134,"ез"}, {4,"еи"}, {138,"ей"}, {80,"ек"},
{356,"ел"}, {310,"ем"}, {686,"ен"}, {36,"ео"}, {22,"еп"}, {398,"ер"},
{344,"ес"}, {402,"ет"}, {10,"еу"}, {28,"еф"}, {36,"ех"}, {20,"ец"}, {62,"еч"},
{24,"еш"}, {14,"ещ"}, {6,"ею"}, {4,"ея"}, {4,"ж "}, {42,"жа"}, {8,"жб"},
{36,"жд"}, {156,"же"}, {44,"жи"}, {12,"жк"}, {110,"жн"}, {2,"жо"}, {10,"жу"},
{36,"з "}, {4,"з,"}, {4,"з-"}, {2,"з."}, {252,"за"}, {4,"зб"}, {102,"зв"},
{8,"зг"}, {26,"зд"}, {4,"зе"}, {10,"зз"}, {18,"зи"}, {88,"зл"}, {44,"зм"},
{90,"зн"}, {154,"зо"}, {26,"зр"}, {60,"зу"}, {2,"зъ"}, {38,"зы"}, {2,"зь"},
{2,"зю"}, {8,"зя"}, {866,"и "}, {14,"и}"}, {112,"и,"}, {104,"и."}, {8,"и:"},
{38,"иа"}, {36,"иб"}, {82,"ив"}, {22,"иг"}, {54,"ид"}, {264,"ие"}, {2,"иж"},
{136,"из"}, {160,"ии"}, {62,"ий"}, {212,"ик"}, {120,"ил"}, {268,"им"},
{226,"ин"}, {68,"ио"}, {14,"ип"}, {82,"ир"}, {320,"ис"}, {366,"ит"}, {42,"иф"},
{122,"их"}, {20,"иц"}, {106,"ич"}, {8,"иш"}, {14,"ищ"}, {44,"ию"}, {196,"ия"},
{380,"й "}, {4,"й}"}, {14,"й,"}, {18,"й."}, {2,"й:"}, {4,"йд"}, {2,"йл"},
{14,"йн"}, {44,"йс"}, {24,"йт"}, {2,"йч"}, {6,"йш"}, {184,"к "}, {22,"к,"},
{2,"к."}, {2,"к:"}, {248,"ка"}, {14,"кв"}, {108,"ке"}, {16,"кж"}, {170,"ки"},
{2,"кк"}, {40,"кл"}, {20,"кн"}, {530,"ко"}, {112,"кр"}, {10,"кс"}, {88,"кт"},
{86,"ку"}, {10,"кц"}, {58,"л "}, {4,"л}"}, {6,"л,"}, {4,"л."}, {136,"ла"},
{2,"лг"}, {326,"ле"}, {32,"лж"}, {408,"ли"}, {6,"лк"}, {4,"лл"}, {14,"лн"},
{248,"ло"}, {122,"лу"}, {20,"лы"}, {360,"ль"}, {54,"лю"}, {150,"ля"},
{310,"м "}, {4,"м}"}, {68,"м,"}, {28,"м."}, {2,"м:"}, {2,"м?"}, {186,"ма"},
{268,"ме"}, {192,"ми"}, {16,"мл"}, {36,"мм"}, {70,"мн"}, {234,"мо"}, {126,"мп"},
{2,"мс"}, {102,"му"}, {22,"мщ"}, {146,"мы"}, {14,"мя"}, {56,"н "}, {6,"н,"},
{6,"н."}, {484,"на"}, {14,"нд"}, {370,"не"}, {6,"нж"}, {720,"ни"}, {46,"нк"},
{330,"нн"}, {856,"но"}, {2,"нр"}, {24,"нс"}, {76,"нт"}, {64,"ну"}, {96,"нф"},
{26,"нц"}, {366,"ны"}, {30,"нь"}, {4,"ню"}, {58,"ня"}, {820,"о "}, {2,"о!"},
{130,"о,"}, {24,"о-"}, {22,"о."}, {2,"о:"}, {2,"о;"}, {4,"оа"}, {330,"об"},
{556,"ов"}, {254,"ог"}, {220,"од"}, {140,"ое"}, {134,"ож"}, {128,"оз"},
{38,"ои"}, {208,"ой"}, {70,"ок"}, {382,"ол"}, {440,"ом"}, {280,"он"}, {26,"оо"},
{174,"оп"}, {316,"ор"}, {502,"ос"}, {366,"от"}, {10,"оу"}, {32,"оф"}, {26,"ох"},
{16,"оц"}, {56,"оч"}, {20,"ош"}, {16,"ощ"}, {8,"оэ"}, {2,"ою"}, {16,"оя"},
{10,"п "}, {6,"п."}, {176,"па"}, {110,"пе"}, {16,"пи"}, {2,"пк"}, {16,"пл"},
{6,"пн"}, {514,"по"}, {2,"пп"}, {452,"пр"}, {6,"пс"}, {4,"пт"}, {20,"пу"},
{20,"пы"}, {72,"пь"}, {32,"р "}, {2,"р}"}, {18,"р,"}, {2,"р?"}, {552,"ра"},
{6,"рб"}, {22,"рв"}, {34,"рг"}, {4,"рд"}, {310,"ре"}, {16,"рж"}, {190,"ри"},
{12,"рк"}, {2,"рл"}, {102,"рм"}, {86,"рн"}, {480,"ро"}, {4,"рп"}, {2,"рр"},
{28,"рс"}, {6,"рт"}, {166,"ру"}, {2,"рх"}, {2,"рч"}, {96,"ры"}, {16,"рь"},
{30,"ря"}, {96,"с "}, {2,"с."}, {54,"са"}, {62,"св"}, {10,"сд"}, {178,"се"},
{202,"си"}, {148,"ск"}, {218,"сл"}, {16,"см"}, {138,"сн"}, {200,"со"},
{170,"сп"}, {20,"ср"}, {68,"сс"}, {944,"ст"}, {80,"су"}, {4,"сф"}, {6,"сх"},
{2,"сц"}, {16,"сч"}, {4,"сш"}, {12,"сы"}, {26,"сь"}, {192,"ся"}, {320,"т "},
{42,"т,"}, {22,"т."}, {438,"та"}, {236,"тв"}, {20,"тд"}, {602,"те"}, {376,"ти"},
{40,"тк"}, {12,"тл"}, {2,"тм"}, {96,"тн"}, {616,"то"}, {194,"тр"}, {142,"тс"},
{2,"тт"}, {60,"ту"}, {6,"тч"}, {64,"ты"}, {400,"ть"}, {16,"тя"}, {162,"у "},
{24,"у,"}, {2,"у-"}, {10,"у."}, {6,"уа"}, {12,"уб"}, {14,"ув"}, {66,"уг"},
{124,"уд"}, {54,"уе"}, {80,"уж"}, {10,"уз"}, {2,"уи"}, {10,"уй"}, {40,"ук"},
{16,"ул"}, {42,"ум"}, {10,"ун"}, {46,"уп"}, {50,"ур"}, {50,"ус"}, {72,"ут"},
{2,"ух"}, {96,"уч"}, {14,"уш"}, {60,"ущ"}, {2,"уэ"}, {142,"ую"}, {40,"уя"},
{8,"ф "}, {2,"ф,"}, {10,"фа"}, {42,"фе"}, {44,"фи"}, {2,"фл"}, {116,"фо"},
{8,"фр"}, {2,"фу"}, {10,"фф"}, {262,"х "}, {2,"х}"}, {26,"х,"}, {8,"х."},
{42,"ха"}, {2,"хв"}, {2,"хе"}, {18,"хн"}, {100,"хо"}, {14,"хр"}, {4,"хс"},
{2,"ху"}, {2,"ц "}, {4,"ц,"}, {8,"ца"}, {2,"цд"}, {60,"це"}, {198,"ци"},
{2,"цо"}, {2,"цу"}, {4,"ч "}, {86,"ча"}, {240,"че"}, {140,"чи"}, {8,"чк"},
{82,"чн"}, {2,"чр"}, {142,"чт"}, {18,"чу"}, {6,"чш"}, {6,"чь"}, {6,"ш "},
{18,"ша"}, {70,"ше"}, {44,"ши"}, {2,"шк"}, {12,"шл"}, {14,"шн"}, {14,"шо"},
{12,"шу"}, {4,"шь"}, {18,"ща"}, {142,"ще"}, {188,"щи"}, {2,"щн"}, {10,"щу"},
{6,"щь"}, {8,"ъе"}, {8,"ъя"}, {262,"ы "}, {44,"ы,"}, {28,"ы."}, {2,"ы:"},
{46,"ыв"}, {6,"ыд"}, {166,"ые"}, {8,"ыз"}, {70,"ый"}, {2,"ык"}, {48,"ыл"},
{102,"ым"}, {2,"ын"}, {6,"ып"}, {2,"ыр"}, {18,"ыс"}, {78,"ыт"}, {122,"ых"},
{60,"ыч"}, {22,"ыш"}, {6,"ыя"}, {366,"ь "}, {36,"ь,"}, {26,"ь."}, {2,"ь:"},
{2,"ьб"}, {2,"ьг"}, {10,"ье"}, {82,"ьз"}, {4,"ьи"}, {46,"ьк"}, {4,"ьм"},
{160,"ьн"}, {52,"ьс"}, {12,"ьт"}, {26,"ьш"}, {106,"ью"}, {2,"ья"}, {4,"эк"},
{8,"эл"}, {2,"эн"}, {2,"эр"}, {124,"эт"}, {10,"эф"}, {2,"эх"}, {106,"ю "},
{20,"ю,"}, {16,"ю."}, {18,"юб"}, {18,"юд"}, {8,"юм"}, {4,"юс"}, {138,"ют"},
{20,"юч"}, {102,"ющ"}, {506,"я "}, {6,"я}"}, {60,"я,"}, {26,"я."}, {42,"яв"},
{4,"яд"}, {42,"яе"}, {4,"яж"}, {42,"яз"}, {6,"як"}, {6,"ял"}, {18,"ям"},
{8,"ян"}, {2,"яр"}, {12,"яс"}, {60,"ят"}, {4,"ях"}, {4,"яч"}, {4,"яш"},
{22,"ящ"}, {36,"яю"}
};[/quote][code]

AnsiString text=Memo1->Text;
int array[8][8]; //массив биграмм в блоке
for (int i=0; i<8; i++)
for(int j=0; j<8; j++)
array[i][j]=0;

//занесение вероятностей биграмм в массив
int text_length=text.Length();
for (int i=1; i<text_length-6; i+=8)
for (int i_first=0; i_first<8; i_first++)
for (int i_second=0; i_second<8; i_second++)
for (int t=0; t<811; t++)
if ((i_first!=i_second)&&(text[i+i_first]==str[t].bigrama[0])&&(text[i+i_second]==str[t].bigrama[1]))
{
array[i_first][i_second]+=str[t].n;
break;
}

Form2->Memo1->Clear();
Form2->Memo1->Lines->Add("Вероятности:");
Form2->Memo1->Lines->Add(" ");
for(int i=0; i<8; i++)
{
Form2->Memo1->Lines->Add(i+1);
for(int j=0; j<8; j++)
Form2->Memo1->Lines->Add(array[i][j]);
Form2->Memo1->Lines->Add(" ");
}

//нахождение индекса последней буквы в блоке
int last; //индекс последней буквы в блоке
for (int i=0; i<8; i++)
{
int max=array[i][0];
for (int j=1; j<8; j++)
if (array[i][j]>max)
max=array[i][j];
for (int j=0; j<8; j++)
if ((max!=array[i][j])&&(max<1.3*array[i][j]))
last=i;
}

//нахождение перестановки
int posl[8]; //перестановка
posl[7]=last+1;
for (int i=6; i>=0; i--)
{
int max=array[0][last];
posl[i]=1;
for (int j=1; j<8; j++)
if (array[j][last]>max)
{max=array[j][last]; posl[i]=j+1;}
last=posl[i]-1;
}

Form2->Edit1->Text=posl[0];
Form2->Edit2->Text=posl[1];
Form2->Edit3->Text=posl[2];
Form2->Edit4->Text=posl[3];
Form2->Edit5->Text=posl[4];
Form2->Edit6->Text=posl[5];
Form2->Edit7->Text=posl[6];
Form2->Edit8->Text=posl[7];
Form2->ShowModal();
}

Unit2.cpp:


#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm2::BitBtn1Click(TObject *Sender)
{
AnsiString text1=Form1->Memo1->Text;
AnsiString text2=Form1->Memo1->Text;
int array[8]; //массив перестановки
array[0]=StrToInt(Edit1->Text);
array[1]=StrToInt(Edit2->Text);
array[2]=StrToInt(Edit3->Text);
array[3]=StrToInt(Edit4->Text);
array[4]=StrToInt(Edit5->Text);
array[5]=StrToInt(Edit6->Text);
array[6]=StrToInt(Edit7->Text);
array[7]=StrToInt(Edit8->Text);
for (int i=1; i<text1.Length()-7; i+=8)
for (int j=0; j<8; j++)
text2[i+j]=text1[i-1+array[j]]; //замена такста
Form3->Memo1->Lines->Add(text2);
Form3->ShowModal();
}

Последний раз редактировалось begin_end; 02.11.2009 в 22:18..
 
Ответить с цитированием