Создание исследовательского прототипа системы идентификации табличных данных
Рефераты >> Программирование и компьютеры >> Создание исследовательского прототипа системы идентификации табличных данных

if(!Unind[f1][f2])

return(0);

int AccumPay=0;

int FMpr;

int SMpr;

int FI,SI;

double E1,E2,E;

// bool MatrixOfUse[MaxID][2];

for(int i=0;i<Unind[f1][f2];i++){

FI=-1;SI=-1;

if(AnalizePosWithMU(Fst,f1,United[f1][f2][i],FI,FMpr))

if(AnalizePosWithMU(Snd,f2,United[f1][f2][i],SI,SMpr)){

E1=(Fst.Numbers[FI][f1]*FMpr);

E2=(Snd.Numbers[SI][f2]*SMpr);

E=fabs(E1-E2)/E1;

if (E<0.011){

AccumPay+=1;

}

else

return(-1);

}

}

return(AccumPay);

}

int TfCompare::PositionsCompare(TPositions Fst,TPositions Snd,int &Numbers){

int Accum=0;

int N=0;

for(int f=0;f<max(Fst.FlowCount,Snd.FlowCount);f++){

if(FromBaseToDoc[f][1]!=-1){

N=NumberCompare(f,FromBaseToDoc[f][1],Fst,Snd);

if(N==-1)

return(0);

Numbers+=N;

}

if(FromBaseToDoc[f][0]!=-1)

Accum+=StringCompare(f,FromBaseToDoc[f][0],Fst,Snd);

}

return(Accum);

}

bool TfCompare::Compare(){

if(!GetInfo())

return(false);

nFind(0);

return(true);

}

void TfCompare::nFind(int Index){

ProgressBar1->Max=FileSize(BaseF);

TPositionTree *BaseNode,*BaseDriveNode,*DocNode;

BaseNode=NULL;

int PayMent=-1;

int CurPayMent;

int Num=0;

int AcNumbers;

DocNode=((TPositionTree *)DocL->Items[Index]);

for(int i=0;i<BaseL->Count;i++){

Num=0;

ProgressBar1->Position++;

BaseDriveNode=((TPositionTree *)BaseL->Items[i]);

CurPayMent=PositionsCompare(DocNode->IP,BaseDriveNode->IP,Num);

if(CurPayMent<Edit1->Text.ToInt())

continue;

if(Num<AcNumbers)

continue;

if(CurPayMent>PayMent){

PayMent=CurPayMent;

BaseNode=BaseDriveNode;

AcNumbers=Num;

}

}

/* TRect x,y;*/

if(BaseNode!=NULL)

sg->Cells[1][Index]=BaseNode->OP()+AnsiString(" ")+

IntToStr(PayMent)+AnsiString(" ")+IntToStr(AcNumbers);

else

sg->Cells[1][Index]="---------";

/* double delitel=2000/PayMent;

sg->Canvas->Brush->Color=(clBlue-clRed)/delitel+clRed;

y=sg->CellRect(1,Index);

sg->Canvas->FillRect(y);

//sg->Canvas->Lock(); */

ProgressBar1->Position=0;

}

void fastcall TfCompare::Button4Click(TObject *Sender)

{

GetInfo();

}

//---------------------------------------------------------------------------

void fastcall TfCompare::sgDblClick(TObject *Sender)

{

if(!Base||!Doc||sg->RowCount==1)

return;

TGridRect gr;

gr=sg->Selection;

nFind(gr.Top);

//Compare();

}

//---------------------------------------------------------------------------


Страница: