void Change(char*text1,char*text2)
{
char temp[40];
strcpy(temp, text1);
strcpy(text1,text2);
strcpy(text2,temp);
}
void sort_Char(char **text, int size)
{
int i,j;
for(int i=0;i<size;i++)
{
for (int j=i;j<size;j++)
{
if(strcmp(text[i],text[j])>0)
Change(text[i],text[j]);
}
}
}
void double_Sort(double *table, int size)
{
int i,j;
double temp;
for(i=1;i<size;i++)
for(j=size-1;j>=i;j--)
if(table[j]<table[j-1])
{
temp=table[j-1];
table[j-1]=table[j];
table[j]=temp;
}
}
void int_Sort(int *table, int size)
{
int i,j;
int temp;
for(i=1;i<size;i++)
for(j=size-1;j>=i;j--)
if(table[j]<table[j-1])
{
temp=table[j-1];
table[j-1]=table[j];
table[j]=temp;
}
}
struct Planet
{
char name[20];
int radius;
double mass_Earth;
};
struct Planet *m_Planet;
void __fastcall TForm1::FormCreate(TObject *Sender)
{
int i,j;
m_Planet=new struct Planet[8];
strcpy(m_Planet[0].name,"Mercury");
m_Planet[0].radius=2440;
m_Planet[0].mass_Earth=0.055;
strcpy(m_Planet[1].name,"Venus");
m_Planet[1].radius=6052;
m_Planet[1].mass_Earth=0.815;
strcpy(m_Planet[2].name,"Earth");
m_Planet[2].radius=6371;
m_Planet[2].mass_Earth=1.00;
strcpy(m_Planet[3].name,"Mars");
m_Planet[3].radius=3390;
m_Planet[3].mass_Earth=0.107;
strcpy(m_Planet[4].name,"Jupiter");
m_Planet[4].radius=69911;
m_Planet[4].mass_Earth=317.8;
strcpy(m_Planet[5].name,"Saturn");
m_Planet[5].radius=58232;
m_Planet[5].mass_Earth=95.16;
strcpy(m_Planet[6].name,"Uranium");
m_Planet[6].radius=25362;
m_Planet[6].mass_Earth=14.54;
strcpy(m_Planet[7].name,"Neptune");
m_Planet[7].radius=24622;
m_Planet[7].mass_Earth=17.15;
for(i=0;i<8;i++)
{
ListBox1->Items->Add(m_Planet[i].name);
ListBox2->Items->Add(IntToStr(m_Planet[i].radius));
ListBox3->Items->Add(FloatToStr(m_Planet[i].mass_Earth));
}
int temp_Radius[8];
double temp_Mass[8];
char **temp_Name;
temp_Name=new char*[40];
for(i=0;i<40;i++)
temp_Name[i]=new char[8];
for(i=0;i<8;i++)
{
temp_Radius[i]=m_Planet[i].radius;
temp_Mass[i]=m_Planet[i].mass_Earth;
strcpy(temp_Name[i],m_Planet[i].name);
}
double_Sort(temp_Mass,8);
int_Sort(temp_Radius,8);
sort_Char(temp_Name,8);
for(i=0;i<8;i++)
{
ListBox4->Items->Add(temp_Name[i]);
for(j=0;j<8;j++)
{
if(temp_Radius[i]==m_Planet[j].radius)
{
ListBox5->Items->Add(IntToStr(temp_Radius[i])+" - "+m_Planet[j].name);
break;
}
}
for(j=0;j<8;j++)
{
if(temp_Mass[i]==m_Planet[j].mass_Earth)
{
ListBox6->Items->Add(FloatToStr(temp_Mass[i])+" - "+m_Planet[j].name);
break;
}
}
}
}
Brak komentarzy:
Prześlij komentarz