czwartek, 27 kwietnia 2017

Array, first digit, statistic and StringGrid




private: // User declarations
bool __fastcall is_First(int x);
void __fastcall init_Random();
int **table_A;
int **table_B;
int **table_C;
int **table_D;
int **main_Table;
        int *pool_Table;
int result_A;
int result_B;
int result_C;
int result_D;
void __fastcall init_Table();
void __fastcall destroy_Table();
bool __fastcall different_Value(int a, int b, int c, int d);
UnicodeString __fastcall max_Symbol(int a, int b, int c, int d);
        void __fastcall prepare_Values(int a, int b, int c, int d);


void __fastcall TForm1::init_Random()
{
    srand(time(NULL));
}
bool __fastcall TForm1::is_First(int x)
{
int i,sum;
sum=0;
for(i=1;i<x+1;i++)
if(x%i==0)
 ++sum;
if(sum==2)
return true;
else
return false;
}
void __fastcall TForm1::init_Table()
{
 int i,j;
 table_A=new int*[10];
 table_B=new int*[10];
 table_C=new int*[10];
 table_D=new int*[10];
 main_Table=new int*[10];
 pool_Table=new int[100];
 for(i=0;i<10;i++)
 {
table_A[i]=new int[10];
table_B[i]=new int[10];
table_C[i]=new int[10];
table_D[i]=new int[10];
main_Table[i]=new int[10];
 }
 for(i=0;i<10;i++)
 {
  for(j=0;j<10;j++)
  {
 table_A[i][j]=0;
 table_B[i][j]=0;
 table_C[i][j]=0;
 table_D[i][j]=0;
  }
 }
 i=0;
 j=1;
 do
 {
  if(is_First(j))
  {
 pool_Table[i]=j;
 ++i;
  }
  ++j;

 } while(i<100);



}
void __fastcall TForm1::destroy_Table()
{
int i;
for(i=0;i<10;i++)
{
delete [] table_A[i];
delete [] table_B[i];
delete [] table_C[i];
delete [] table_D[i];
delete [] main_Table[i];
}
delete [] *table_A;
delete [] *table_B;
delete [] *table_C;
delete [] *table_D;
delete [] *main_Table;
delete pool_Table;
}
bool __fastcall TForm1::different_Value(int a, int b, int c, int d)
{
if(a!=b && a!=c && a!=d && b!=c && b!=d && c!=d)
return true;
else
return false;
}
UnicodeString __fastcall TForm1::max_Symbol(int a, int b, int c, int d)
{
if(a>b && a>c && a>d)
return "A";
if(b>a && b>c && b>d)
return "B";
if(c>a && c>b && c>d)
return "C";
if(d>a && d>b && d>c)
return "D";
}
void __fastcall TForm1::prepare_Values(int a, int b, int c, int d)
{
if(a>b && a>c && a>d)
result_A+=3;
if(b>a && b>c && b>d)
result_B+=3;
if(c>a && c>b && c>d)
result_C+=3;
if(d>a && d>b && d>c)
result_D+=3;
if(a>b && a>c && a<d)
result_A+=2;
if(a>b && a>d && a<c)
result_A+=2;
if(a>c && a>d && a<b)
result_A+=2;
if(a<b && a<c && a>d)
result_A+=1;
if(a<b && a<d && a>c)
result_A+=1;
if(a<c && a<d && a>b)
result_A+=1;
if(b>a && b>c && b<d)
result_B+=2;
if(b>a && b>d && b<c)
result_B+=2;
if(b>c && b>d && b<a)
result_B+=2;
if(b<a && b<c && b>d)
result_B+=1;
if(b<a && b<d && b>c)
result_B+=1;
if(b<c && b<c && b>a)
result_B+=1;
if(c>a && c>b && c<d)
result_C+=2;
if(c>a && c>d && c<b)
result_C+=2;
if(c>b && c>d && c<a)
result_C+=2;
if(c<a && c<b && c>d)
result_C+=1;
if(c<a && c<d && c>b)
result_C+=1;
if(c<b && c<d && c>a)
result_C+=1;
if(d>a && d>b && d<c)
result_D+=2;
if(d>a && d>c && d<b)
result_D+=2;
if(d>b && d>c && d<a)
result_D+=2;
if(d<a && d<b && d>c)
result_D+=1;
if(d<a && d<c && d>b)
result_D+=1;
if(d<b && d<c && d>a)
     result_D+=1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 init_Random();
 init_Table();



}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
 int i,j,k;
 result_A=result_B=result_C=result_D=0;

 for(i=0;i<10;i++)
 {
for(j=0;j<10;j++)
{
;
while(!different_Value(table_A[i][j],table_B[i][j],table_C[i][j],table_D[i][j]))
{
  k=rand()%100;
  table_A[i][j]=pool_Table[k];
  k=rand()%100;
  table_B[i][j]=pool_Table[k];
  k=rand()%100;
  table_C[i][j]=pool_Table[k];
  k=rand()%100;
  table_D[i][j]=pool_Table[k];
}
StringGrid1->Cells[i][j]=IntToStr(table_A[i][j]);
StringGrid2->Cells[i][j]=IntToStr(table_B[i][j]);
StringGrid3->Cells[i][j]=IntToStr(table_C[i][j]);
StringGrid4->Cells[i][j]=IntToStr(table_D[i][j]);
StringGrid5->Cells[i][j]=max_Symbol(table_A[i][j],table_B[i][j],
table_C[i][j],table_D[i][j]);
prepare_Values(table_A[i][j],table_B[i][j],table_C[i][j],table_D[i][j]);
}
 }
 Edit1->Text=IntToStr(result_A);
 Edit2->Text=IntToStr(result_B);
 Edit3->Text=IntToStr(result_C);
 Edit4->Text=IntToStr(result_D);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
 destroy_Table();
 Close();
}


Brak komentarzy:

Prześlij komentarz