Здравствуйте и доброго времени суток. Пишу курсовую по делфи, застрял на сортировке массива. У меня есть задание, создать массив на 100 элементов случайных чисел, умножить его на коэффициент к1 и вывести в мемо1 (Это уже есть как бы). Но потом нужно его отсортировать по методу слитья и отсортированный массив вывести в мемо 2. С последним "массив вывести в мемо 2" проблем нет, а вот с сортировкой довольно таки чувствую. Как лучше будет сделать? В делфи я человек новый как и на форуме.
Это участок всей обработки действий с массивом:
Код:
unit unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, TeeProcs, TeEngine, Chart, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Memo2: TMemo;
Memo3: TMemo;
Memo4: TMemo;
Memo5: TMemo;
Memo6: TMemo;
Edit1: TEdit;
Edit2: TEdit;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Chart1: TChart;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Image1: TImage;
LabeledEdit1: TLabeledEdit;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
i, r: integer;
f:boolean;
mas_a: array[1..100] of real;
mas_b: array[1..100] of real;
implementation
{$R *.dfm}
//старт1
procedure TForm1.Button1Click(Sender: TObject);
var
k1: Real;
begin
Memo1.Clear;
Memo2.Clear;
Label2.Caption := LabeledEdit1.Text;
k1 := StrToFloatDef(Edit1.Text, 0);
if k1 = 5 then
begin
//массив А - Memo1
randomize;
for i := 1 to 100 do mas_a[i]:=random * k1;
Memo1.Clear;
for i := 1 to 100 do
begin
Memo1.Lines.Add(FloatToStr(mas_a[i]));
end;
//массив А - Memo2 Сортированый слитьем
end
else
begin
MessageDlg('Введіть коефіцієнт К1 згідно зі своїм варіантом', mtError, [mbOk], 0);
end
end;
//очищення1
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Clear;
Memo2.Clear;
end;
//Старт2
procedure TForm1.Button3Click(Sender: TObject);
var
k2: Real;
begin
Memo3.Clear;
Memo4.Clear;
k2 := StrToFloatDef(Edit2.Text, 0);
if k2 = 12 then
begin
//массив B - Memo3
randomize;
for i := 1 to 100 do mas_b[i]:=random * k2;
Memo3.Clear;
for i := 1 to 100 do
begin
Memo3.Lines.Add(FloatToStr(mas_b[i]));
end;
//массив B - Memo4 Сортированый Бульбашкой
Begin
For i:=1 to 100 do readln(mas_b[i]);
Repeat
f:=true;
For i:=1 to 99 do
If mas_b[i]>mas_b[i+1] then
Begin
r:= mas_b[i];
mas_b[i]:=mas_b[j];
mas_b[j]:=r;
f:= false;
End;
Until f;
For i:=1 to 100 do Writeln(mas_b[i]:100);
End.
end
else
begin
MessageDlg('Введіть коефіцієнт К2 згідно зі своїм варіантом', mtError, [mbOk], 0);
end
end;
//Очищення2
procedure TForm1.Button4Click(Sender: TObject);
begin
Memo3.Clear;
Memo4.Clear;
end;
//Старт3
procedure TForm1.Button5Click(Sender: TObject);
begin
end;
//Очищення3
procedure TForm1.Button6Click(Sender: TObject);
begin
Memo5.Clear;
Memo6.Clear;
end;
//Створеня графіка
procedure TForm1.Button7Click(Sender: TObject);
begin
end;
//Очищеня графіка
procedure TForm1.Button8Click(Sender: TObject);
begin
end;
//Вихід
procedure TForm1.Button9Click(Sender: TObject);
begin
Close;
end;
end.
Массивы mas_a, mas_b отсортировать