Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.10.2012, 03:48
Nevil_White Nevil_White вне форума
Прохожий
 
Регистрация: 28.10.2012
Адрес: Киев
Сообщения: 27
Версия Delphi: 7
Репутация: 10
По умолчанию Массивы. Сортировка слиянием

Здравствуйте и доброго времени суток. Пишу курсовую по делфи, застрял на сортировке массива. У меня есть задание, создать массив на 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 отсортировать

Последний раз редактировалось Nevil_White, 30.10.2012 в 07:37.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:54.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter