atavin-ta » 18 фев 2009, 10:09
У тебя уже функция. В данном случае - обработчик события. Поменяй заголовок и разнеси декларации.
[syntax=C]
void Swap(float *a);
{
int i,max=0,imax;
max=a[0];imax=0;
for(i=1;i<18;i++)
if(a>max){max=a;imax=i;}
a[imax]=a[17];
a[17]=max;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float a[18];
int i;
for(i=0;i<18;i++)a=StrToFloat(Memo1->Lines->Strings);
Swap(a);
Memo2->Clear();
for(i=0;i<18;i++)Memo2->Lines->Add(FloatToStr(a));
}
[/syntax]
Если тебе нужны 4 функции:
1. обработчик,
2. заполнение массива,
3. поиск максимума и перестановкой
4. вывод массива,
то делай по аналогии. Обработчик в этом случае должен хранить сам массив и последовательно вызывать остальные функции. Каждая функция должна хранить в локальных данных ту инфу, которая нужна для её подзадачи. И максимальный элемент не вычисляется, а ищется.
У тебя уже функция. В данном случае - обработчик события. Поменяй заголовок и разнеси декларации.
[syntax=C]
void Swap(float *a);
{
int i,max=0,imax;
max=a[0];imax=0;
for(i=1;i<18;i++)
if(a[i]>max){max=a[i];imax=i;}
a[imax]=a[17];
a[17]=max;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float a[18];
int i;
for(i=0;i<18;i++)a[i]=StrToFloat(Memo1->Lines->Strings[i]);
Swap(a);
Memo2->Clear();
for(i=0;i<18;i++)Memo2->Lines->Add(FloatToStr(a[i]));
}
[/syntax]
Если тебе нужны 4 функции:
1. обработчик,
2. заполнение массива,
3. поиск максимума и перестановкой
4. вывод массива,
то делай по аналогии. Обработчик в этом случае должен хранить сам массив и последовательно вызывать остальные функции. Каждая функция должна хранить в локальных данных ту инфу, которая нужна для её подзадачи. И максимальный элемент не вычисляется, а ищется.