Код:

#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int a[50]; //max kol-vo elementov v massive
int x; //kol-vo elementov v massive
int k; //schetchik
int c; //schetchik2
int min; //minimum
int buf; //bufer
int j;
x=StrToInt(Edit1->Text);
randomize();
Memo1->Clear();
Label2->Caption="";
Label3->Caption="";
Image1->Canvas->Brush->Color=clWhite;
Image1->Canvas->Rectangle(0,0,600,300);
Image1->Canvas->Brush->Color=clBlack;
Image2->Canvas->Brush->Color=clWhite;
Image2->Canvas->Rectangle(0,0,600,300);
Image2->Canvas->Brush->Color=clBlack;
for (k=0;k<x;k++)
{
a[k]=random(100)-50;
Label2->Caption= Label2->Caption+IntToStr(a[k])+" ";
Image1->Canvas->MoveTo(10+(k+1)*20,55);
Image1->Canvas->LineTo(10+(k+1)*20,55-a[k]);
Image1->Canvas->Brush->Style=bsClear;
Image1->Canvas->Font->Color=clGreen;
Image2->Canvas->Brush->Style=bsClear;
Image2->Canvas->Font->Color=clGreen;
Image1->Canvas->TextOutA(5+(k+1)*20,57,k+1);
}
for (c=0;c<x-1;c++)
{
min=c;
for (j=c+1; j<x; j++)
if (a[j]<a[min]) min=j;
buf=a[c];
a[c]=a[min];
a[min]=buf;
}
for (k=0; k<x; k++)
Label3->Caption=Label3->Caption+a[k]+" ";
Memo1->Lines->Add("Неотсортированный массив:");
Memo1->Lines->Add(Label2->Caption);
Memo1->Lines->Add("Отсортированный массив:");
Memo1->Lines->Add(Label3->Caption);
Image1->Canvas->TextOutA(3,5,"Y");
Image1->Canvas->TextOutA(500,57,"X");
Image1->Canvas->MoveTo(0,55);
Image1->Canvas->LineTo(500,55);
Image1->Canvas->MoveTo(10,5);
Image1->Canvas->LineTo(10,105);
Image2->Canvas->TextOutA(3,5,"Y");
Image2->Canvas->TextOutA(500,57,"X");
Image2->Canvas->MoveTo(0,55);
Image2->Canvas->LineTo(500,55);
Image2->Canvas->MoveTo(10,5);
Image2->Canvas->LineTo(10,105);
for (k=0; k<x; k++)
{
Image2->Canvas->MoveTo(10+(k+1)*20,55);
Image2->Canvas->LineTo(10+(k+1)*20,55-a[k]);
Image2->Canvas->Brush->Style=bsClear;
Image2->Canvas->Font->Color=clGreen;
Image2->Canvas->TextOutA(5+(k+1)*20,57,k+1);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if (SaveDialog1->Execute())
{
Memo1->Lines->SaveToFile(SaveDialog1->FileName);
}
}
//---------------------------------------------------------------------------