Académique Documents
Professionnel Documents
Culture Documents
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;
{$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 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;
end.