private: // User declarations
void __fastcall i_Sort(int *tab, int size);
void __fastcall m_Sort(int *tab, int size);
bool __fastcall is_First(int value);
void __fastcall is_Sum(int *tab, int size,int value);
int *tab_First,**data_First1,**data_First2,*test_Values;
void __fastcall init_Arrays();
void __fastcall destroy_Arrays();
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
srand(time(NULL));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::i_Sort(int *tab, int size)
{
int i,j,k;
for(i=1;i<size;i++)
{
j=i;
k=tab[j];
while((j>0) && (tab[j-1]>k))
{
tab[j]=tab[j-1];
j--;
}
tab[j]=k;
}
}
void __fastcall TForm1::m_Sort(int *tab, int size)
{
int i,j,k;
for(i=1;i<size;i++)
for(j=size-1;j>=i;j--)
if(tab[j]>tab[j-1])
{
k=tab[j-1];
tab[j-1]=tab[j];
tab[j]=k;
}
}
bool __fastcall TForm1::is_First(int value)
{
int i,sum;
sum=0;
for(i=1;i<value+1;i++)
if(value%i==0)
++sum;
if(sum==2)
return true;
else
return false;
}
void __fastcall TForm1::is_Sum(int *tab, int size,int value)
{
int i,j,sum;
do
{
sum=0;
for(i=0;i<size;i++)
{
j=rand()%500;
sum+=tab_First[j];
tab[i]=tab_First[j];
}
}while(sum!=value);
}
void __fastcall TForm1::init_Arrays()
{
int i,j;
tab_First=new int[100];
test_Values=new int[10];
data_First1=new int *[10];
data_First2=new int *[10];
for(i=0;i<10;i++)
{
data_First1[i]=new int[10];
data_First2[i]=new int[10];
}
i=0;j=2;
do
{
if(is_First(j))
{
tab_First[i]=j;
++i;
}
++j;
}while(i<100);
}
void __fastcall TForm1::destroy_Arrays()
{
int i;
delete tab_First;
delete test_Values;
for(i=0;i<10;i++)
{
delete [] data_First2[i];
delete [] data_First1[i];
}
delete data_First1;
delete data_First2;
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
init_Arrays();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i,j,min,max;
min=800;
max=2000;
for(i=0;i<10;i++)
{
test_Values[i]=min+rand()%(max-min);
StringGrid3->Cells[0][i]=IntToStr(test_Values[i]);
}
for(i=0;i<10;i++)
{
is_Sum(data_First1[i],10,test_Values[i]);
is_Sum(data_First2[i],10,test_Values[i]);
}
for(i=0;i<10;i++)
{
i_Sort(data_First1[i],10);
m_Sort(data_First2[i],10);
}
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
StringGrid1->Cells[i][j]=IntToStr(data_First1[j][i]);
StringGrid2->Cells[i][j]=IntToStr(data_First2[j][i]);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
destroy_Arrays();
Close();
}
Brak komentarzy:
Prześlij komentarz