Einzelnen Beitrag anzeigen

haui95

Registriert seit: 1. Feb 2012
Ort: Niedersachsen
29 Beiträge
 
Delphi 7 Personal
 
#1

Austausch-Sortieralgorithmus mit Prozeduren

  Alt 27. Apr 2012, 17:18
Guten Tag,
wir sind jetzt im Unterricht etwas weiter und sind jetzt auch endlich bei den Routinen angekommen.
Bis jetzt haben wir nur die Prozeduren kennengelernt, dir wir mit dem Austausch-Sortieralgorithmus
in Verbindung bringen sollen. Es ist zwar keine Hausaufgabe, aber dennoch habe ich mir ein bisschen Zeit genommen,
um den Quelltext neu zu formulieren. Und genau dort liegt das Problem, ich bin soweit fertig, das Programm startet auch, doch ich erhalte immer, wenn ich den Sortieren-Button klicke eine Zugriffsverletzung. Gut, ich poste euch mal meinen Quelltext und hänge die Projektdateien als Anhang an.
Bedanke mich schon einmal im Voraus.

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    ListBox1: TListBox;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

Type TFeld = Array [1..100] of Integer;

var
  Form1: TForm1;
  x: Integer;
  Feld: TFeld;

implementation

{$R *.dfm}

procedure Beenden();
begin
  Application.Terminate;
end;

procedure Generieren(var Feld: TFeld; x: Integer);
var
  i: Integer;
begin
  for i := 1 to x do
    begin
      Feld[i] := Random(x) + 1;
      Form1.ListBox1.Items.Add(IntToStr(Feld[i]));
    end;
end;

procedure Ausgabe(x: Integer);
var
  i, j: Integer;
begin
  for i := 1 to x do
    Form1.ListBox1.Items.Add(IntToStr(Feld[j]));
end;

procedure Tauschen(var Feld: TFeld);
var
  i, j, Temp: Integer;
begin
  if (Feld[i] > Feld[j]) then
    begin
      Temp := Feld[i];
      Feld[i] := Feld[j];
      Feld[j] := Temp;
    end;
  Ausgabe(StrToInt(Form1.Edit1.Text));
end;

procedure Sortieren(var Feld: TFeld; x: Integer);
var
  i, j: Integer;
begin
  for i := 1 to x - 1 do
    for j := i + 1 to x do
      Tauschen(Feld);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Beenden();
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  ListBox1.Clear;
  Generieren(Feld, StrToInt(Form1.Edit1.Text));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Ausgabe(StrToInt(Form1.Edit1.Text));
end;
end.
Angehängte Dateien
Dateityp: zip Sortieren_-_Prozeduren.zip (208,6 KB, 5x aufgerufen)
Hauke
  Mit Zitat antworten Zitat