sobota, 31 grudnia 2016

StringGrids with first numbers and random numbers in C++ Builder


private: // User declarations
bool __fastcall is_First(int x);
void __fastcall init_Random();
int *tab_first;

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_Random()
{
srand(time(NULL));
}

//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 init_Random();
 tab_first=new int[100];
 int i,sum;
 sum=1;
 i=0;
 do
 {
if(is_First(sum))
{
tab_first[i]=sum;
++sum;
++i;
}
else
++sum;
 }while(i<100);
 int j;
 sum=0;
 for(i=0;i<10;i++)
 {
  for(j=0;j<10;j++)
   {
StringGrid1->Cells[j][i]=IntToStr(tab_first[sum]);
++sum;
   }
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 delete tab_first;
 Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 int tab_sum[10][10];
 int temp_sum[10][10];
 int i,j;
  for(i=0;i<10;i++)
  {
   for(j=0;j<10;j++)
   {
tab_sum[i][j]=0;
temp_sum[j][i]=StrToInt(StringGrid1->Cells[j][i]);
   }
   }
  for(i=0;i<10;i++)
  {
 for(j=0;j<10;j++)
 {
 tab_sum[i][j]+=temp_sum[i][j];
 if(i>0)
  tab_sum[i][j]+=temp_sum[i-1][j];
 if(i>0 && j>0)
  tab_sum[i][j]+=temp_sum[i-1][j-1];
 if(j>0)
  tab_sum[i][j]+=temp_sum[i][j-1];
 if(i<9 && j>0)
  tab_sum[i][j]+=temp_sum[i+1][j-1];
 if(i<9)
  tab_sum[i][j]+=temp_sum[i+1][j];
 if(i<9 && j<9)
  tab_sum[i][j]+=temp_sum[i+1][j+1];
 if(j<9)
  tab_sum[i][j]+=temp_sum[i][j+1];
 if(i>0 && j<9)
  tab_sum[i][j]+=temp_sum[i-1][j+1];



 }
  }
  int k,sum_f,k1,sum_f1;
  k=0,k1=0;
  sum_f=0,sum_f1=0;
  for(i=0;i<10;i++)
  {
   for(j=0;j<10;j++)
   {
StringGrid2->Cells[i][j]=IntToStr(tab_sum[i][j]);
if(is_First(tab_sum[i][j]))
{
ListBox1->Items->Add(IntToStr(tab_sum[i][j]));
k++;
sum_f+=tab_sum[i][j];
}
else
{
ListBox2->Items->Add(IntToStr(tab_sum[i][j]));
k1++;
sum_f1+=tab_sum[i][j];
}
   }
  }
  Label2->Caption=IntToStr(k)+" elements";
  Edit1->Text=IntToStr(sum_f);
  Label5->Caption=IntToStr(k1)+" elements";
  Edit2->Text=IntToStr(sum_f1);
  int temp_random[100];
  int first_random[10];
  int sum_random[10];
  int sum_temp_random[100];
  int value_random[10];
  k=0;
  for(i=0;i<10;i++)
   {
for(j=0;j<10;j++)
{
  sum_temp_random[k]=tab_sum[i][j];
  k++;
}
   }
  i=0;
  for(j=0;j<100;j++)
   temp_random[j]=0;
  do
  {
do
{
k=rand()%100;
}while(temp_random[k]!=0);
temp_random[k]=1;
value_random[i]=k+1;
first_random[i]=tab_first[k];
sum_random[i]=sum_temp_random[k];
i++;
  }while(i<10);
  for(i=0;i<10;i++)
  {
 StringGrid3->Cells[i][0]=IntToStr(value_random[i]);
 StringGrid3->Cells[i][1]=IntToStr(first_random[i]);
 StringGrid3->Cells[i][2]=IntToStr(sum_random[i]);
  }

}

Brak komentarzy:

Prześlij komentarz