unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 =
class(TForm)
Panel1: TPanel;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Edit1: TEdit;
ListBox1: TListBox;
Button1: TButton;
ListBox2: TListBox;
Button2: TButton;
Button3: TButton;
Label1: TLabel;
Label2: TLabel;
RadioGroup1: TRadioGroup;
Button4: TButton;
GroupBox3: TGroupBox;
Edit2: TEdit;
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure einlesen();
procedure ausgabe();
procedure FormCreate(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
type feldtype =
array[1..100]
of integer;
var
Form1: TForm1;
anzahl: integer;
werte: feldtype;
implementation
{$R *.dfm}
procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.clear;
listbox1.Clear;
listbox2.Clear;
radiogroup1.ItemIndex := -1;
end;
procedure TForm1.einlesen();
var i: integer;
begin
{Leeren der Listboxkomponente vor dem ersten/erneuten Eintragen}
listbox1.Clear;
anzahl := 0;
{Beginn der Eingabeüberprüfung}
if edit1.Text = '
'
then
begin
anzahl := strtoint(inputbox('
Keine Anzahl eingegeben!', '
Anzahl bitte eingeben:', '
23'));
edit1.Text := inttostr(anzahl);
end
else if strtoint(edit1.Text) > 100
then
begin
anzahl := strtoint(inputbox('
Anzahl ist zu klein!', '
Anzahl bitte eingeben:', '
23'));
edit1.Text := inttostr(anzahl);
end
else if strtoint(edit1.Text) < 1
then
begin
anzahl := strtoint(inputbox('
Anzahl ist größer als 100!', '
Anzahl bitte eingeben:', '
23'));
edit1.Text := inttostr(anzahl);
end
else
begin
anzahl := strtoint(edit1.Text);
edit1.Text := inttostr(anzahl);
end;
{Ende der Eingabeüberprüfung}
{Beginn Zuweisung}
for i := 1
to anzahl
do
begin
{Eintragen der Werte in das Feld}
werte[i] := random(100) + 1;
{Eintragen der Werte in die Listboxkomponente}
listbox1.Items.Add(inttostr(werte[i]));
end;
{Ende Zuweisung}
end;
procedure TForm1.ausgabe();
var i: integer;
begin
for i := 1
to anzahl
do
begin
ListBox2.Items.Add(inttostr(werte[i]));
end;
end;
procedure bubblesort();
var i, j, tmp: integer;
begin
for i := 1
to (anzahl - 1)
do
for j := anzahl
downto 1
do
if werte[j - 1] < werte[j]
then
begin
tmp := werte[j - 1];
werte[j - 1] := werte[j];
werte[j] := tmp;
end;
end;
procedure shellsort();
var k,i:integer;
begin
k := werte[1];
for i := 1
to anzahl
do
begin
if werte[i] < k
then
k := werte[i];
end;
showmessage(inttostr(k));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
einlesen();
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
ListBox2.Clear;
case RadioGroup1.ItemIndex
of
-1: showmessage('
Bitte wählen sie das Verfahren aus!');
0: bubblesort();
1: shellsort();
2: showmessage('
Bitte wählen sie das Verfahren aus!');
end;
ausgabe();
end;
end.