Ocena użytkownikóww: ***** / 3
Nadesłany przez Tomasz Lubiński, 13 sierpnia 2005 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
select_d/SortWym.pas:
//sortowanie przez wymianę
//www.algorytm.org
//Tomasz Lubiński (c)2001
unit SortWym;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
ListBox1: TListBox;
ListBox2: TListBox;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
Label3: TLabel;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
z: Array[1..100] of Integer;
n:Integer;
implementation
{$R *.DFM}
procedure TForm1.Button2Click(Sender: TObject);
var a:Integer;
begin
n:=100; //liczba elementów do sorotwania
Button1.Enabled:=True; //uaktywnienie przycisku sortuj
ListBox1.Items.Clear; //wyczyszczenie list box'ów
ListBox2.Items.Clear;
randomize;
for a:=1 to n do
begin
z[a]:=Random(200); //zakres nieposorotwanych od 0 do 200
ListBox1.Items.Add(IntToStr(z[a])); //dodawanie elentów do listy nieposortowane
end
end;
procedure TForm1.Button1Click(Sender: TObject);
var
c,b,x,i: Integer;
begin
Button1.Enabled:=False;
for b:=1 to n do
begin
c:=b;
for i:=b to n do
if z[i]< z[c] then c:=i;
x:=z[b];
z[b]:=z[c];
z[c]:=x;
end;
for c:=1 to n do
ListBox2.Items.Add(IntToStr(z[c]));
end;
end.