Vous êtes sur la page 1sur 5

unit SORTING;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
ndata: TEdit; Memo1: TMemo; BAR: TScrollBar;
MI: TEdit; MA: TEdit; ME: TEdit;
Label1: TLabel; Label2: TLabel; Label3: TLabel;
Label4: TLabel; Label5: TLabel;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;RadioButton2: TRadioButton;
RadioButton3: TRadioButton; RadioButton4: TRadioButton;
RadioButton5: TRadioButton;
CARI: TEdit;
Image1: TImage;
SORT: TButton;

procedure ndataKeyPress(Sender: TObject; var Key: Char);


procedure BARChange(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure RadioButton4Click(Sender: TObject);
procedure RadioButton5Click(Sender: TObject);

procedure CARIKeyPress(Sender: TObject; var Key: Char);


procedure SORTClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
N ,MIN,MAX,P:INTEGER;
T:REAL;
TT: STRING; R : ARRAY OF INTEGER;
CONST
PATH : STRING ='C:\Documents and Settings\Administrator\Desktop\New Folder\';
implementation

{$R *.dfm}

procedure BIBIT ;
VAR I:INTEGER;
BEGIN
TT:=''; T:=0;
SETLENGTH(R,N+1);
FOR I:= 1 TO N DO
BEGIN
R[I]:=RANDOM(777)+100;
T:=T+R[I];
IF I=1 THEN
BEGIN
MIN:= R[I];
MAX:= R[I];
END;
IF R[I]>MAX THEN MAX:= R[I];
IF R[I]<MIN THEN MIN:= R[I];
TT:=TT+ INTTOSTR( R[I])+' ';
END;
END;

procedure TForm1.ndataKeyPress(Sender: TObject; var Key: Char);


begin
IF KEY=#13 THEN
BEGIN
N:=STRTOINT(NDATA.Text );
BAR.Position :=N;
BIBIT;
MEMO1.Text:=TT;
MI.TEXT:=INTTOSTR(MIN);
MA.TEXT:=INTTOSTR(MAX);
ME.Text := FLOATTOSTR(T/N);
END;
end;

procedure TForm1.BARChange(Sender: TObject);


begin
N:=BAR.Position ;
BIBIT;
MEMO1.Text:=TT;
NDATA.Text :=INTTOSTR(N);
MI.TEXT:=INTTOSTR(MIN);
MA.TEXT:=INTTOSTR(MAX);
ME.Text := FLOATTOSTR(T/N);
end;

procedure TAMPIL;
VAR I:INTEGER;
BEGIN
TT :='';
FOR I:=1 TO N DO
TT:=TT+ INTTOSTR( R[I])+' '
END;
procedure TForm1.CARIKeyPress(Sender: TObject; var Key: Char);
VAR I ,CC: INTEGER;
M : STRING;
begin
IF KEY = #13 THEN
BEGIN
CC:=STRTOINT(CARI.Text );
M:='DATA NOT FOUND';
FOR I:=1 TO N DO
IF R[I] = CC THEN
M:='DATA FOUND AT '+ INTTOSTR(I)+' POSITION';
APPLICATION.MessageBox(PCHAR(M),'SEARCHING');
END;
end;

procedure BUBBLE1;
VAR I,J,C: INTEGER;
BEGIN
FOR I := 1 TO N-1 DO
BEGIN
FOR J := I+1 TO N DO
BEGIN
IF R[I]>R[J] THEN
BEGIN
C:= R[I];
R[I]:=R[J];
R[J]:=C;
END;
END;
END;
END;

procedure BUBBLE2;
VAR I,J,C: INTEGER;
BEGIN
I:=0;
REPEAT
I:=I+1;
FOR J := 1 TO N-I DO
BEGIN
IF R[J] < R[J+1] THEN
BEGIN
C:= R[J];
R[J]:=R[J+1];
R[J+1]:=C;
END;
END;
UNTIL I=N-1;
END;

procedure BUBBLE3;
VAR I,J,C,F: INTEGER;
BEGIN
I:=0;
REPEAT
F:=0; I:=I+1;
FOR J := 1 TO N-I DO
BEGIN
IF R[J] > R[J+1] THEN
BEGIN
C:= R[J];
R[J]:=R[J+1];
R[J+1]:=C;
F:=1;
END;
END;
UNTIL F=0;
END;

procedure SELECTION;
VAR I,J,C,F: INTEGER;
BEGIN
FOR I:= 1 TO N-1 DO
BEGIN
F:=I;
FOR J:= I+1 TO N DO
IF R[F]<R[J] THEN F:=J;
IF F <> I THEN
BEGIN
C:=R[F];
R[F]:=R[I];
R[I]:=C;
END;
END;
END;

procedure SHELL;
var I,G,C,F : INTEGER;
BEGIN
G:= N DIV 2;
REPEAT
REPEAT
F:=0;
FOR I:= 1 TO N-G DO
IF R[I]>R[I+G] THEN
BEGIN
C:=R[I];
R[I]:= R[I+G];
R[I+G]:=C;
F:=1
END;
UNTIL F=0;
G:=G DIV 2;
UNTIL G=0;
END;

procedure TForm1.RadioButton1Click(Sender: TObject);


begin
P:=1;
IMAGE1.Picture.LoadFromFile( PATH+'F2.BMP');
FORM1.Caption :='BUBBLE SORT 1';
end;

procedure TForm1.RadioButton2Click(Sender: TObject);


begin
P:=2;
IMAGE1.Picture.LoadFromFile( PATH+'F3.BMP');
FORM1.Caption :='BUBBLE SORT 2';
end;

procedure TForm1.RadioButton3Click(Sender: TObject);


begin
P:=3;
IMAGE1.Picture.LoadFromFile( PATH+'F4.BMP');
FORM1.Caption :='BUBBLE SORT WITH FLAG';
end;

procedure TForm1.RadioButton4Click(Sender: TObject);


begin
P:=4;
IMAGE1.Picture.LoadFromFile( PATH+'F5.BMP');
FORM1.Caption :='STRIGHT SELECTION SORT';
end;

procedure TForm1.RadioButton5Click(Sender: TObject);


begin
P:=5;
IMAGE1.Picture.LoadFromFile( PATH+'F6.BMP');
FORM1.Caption :='SHELL SORT';
end;

procedure TForm1.SORTClick(Sender: TObject);


begin
CASE P OF
1:BUBBLE1;
2:BUBBLE2;
3:BUBBLE3;
4:SELECTION;
5:Shell;
end;
TAMPIL;
MEMO1.Text :=TT;
end;

end.

Vous aimerez peut-être aussi