Einzelnen Beitrag anzeigen

zwerchnase

Registriert seit: 18. Mai 2008
4 Beiträge
 
#1

oberflächenverknüpfung delphi

  Alt 18. Mai 2008, 18:34
hi leute

ich hab nich gerade hier angemeldet und möchte
erstmal im voraus sagen, dass nir eure seite echt gut gefällt und sehr hilfreich ist

ich habe nun folgendes problem:
diesen delphi-code habe ich erstellt und nöchte nun eine passende oberfläche dazu kreieren...
leider ist mir das wissen mit der verknüpfung zwischen den methoden den buttons abhanden gekommen
zu dem würde ich gerne wissen ob der bisherige codeakzeptabel ist(nein delphi spinnt momentan ein bisschen)
Delphi-Quellcode:
unit UZahlen;

interface

uses
  Math;

type
  TZahlen = class(TObject)
    private
      sZahlen, aZahlen : array[1..12000] of longint;
      maxZahl : integer;
      anzahlTausch : integer;
      anzahlVergleich : integer;
    public
      constructor create;
      procedure feldbelegen(anzahl: integer);
      procedure feldinit;
      procedure anzahlinit;
      function holen(i: integer; feld: integer) : integer;
      function tauschZurueck : integer;
      function vergleichZurueck : integer;
      procedure bubblesort;
      procedure quicksort(links: integer; rechts: integer);
  end;

implementation

  constructor TZahlen.create;
  begin
    maxZahl := 0;
    randomize;
  end;

  procedure TZahlen.feldbelegen(anzahl: integer);
  var
    i: Integer;
  begin
    maxZahl := anzahl;
    for i := 1 to anzahl do
      aZahlen[i] := random(1000000);
  end;

  procedure TZahlen.feldinit;
  var
    i: Integer;
  begin
    for i := 1 to 12000 do
    begin
      aZahlen[i] := 0;
      sZahlen[i] := 0;
    end;
  end;

  procedure TZahlen.anzahlinit;
  begin
    anzahlVergleich := 0;
    anzahlTausch := 0;
  end;

  function TZahlen.holen(i: integer; feld: integer) : integer;
  begin
    if (feld = 1) then
      holen := aZahlen[i]
    else
      holen := sZahlen[i]
  end;

  function TZahlen.tauschZurueck : integer;
  begin
    tauschZurueck := anzahlTausch;
  end;

  function TZahlen.vergleichZurueck : integer;
  begin
    vergleichZurueck := anzahlVergleich;
  end;

  procedure TZahlen.bubblesort;
  var
    i, j, speicher: integer;
  begin
    sZahlen := aZahlen;

    for i := 1 to maxZahl-1 do
    begin
      for j := i+1 to maxZahl do
      begin
        Inc(anzahlVergleich);
        if sZahlen[i] > sZahlen[j] then
        begin
          speicher := sZahlen[j];
          sZahlen[j] := sZahlen[i];
          sZahlen[i] := speicher;
          Inc(anzahlTausch);
        end;
      end;
    end;
  end;

  procedure TZahlen.quicksort(links: integer; rechts: integer);
  var
    l, r, pivot, speicher: integer;
  begin
    if rechts = -1 then
    begin
      rechts := maxZahl;
      sZahlen := aZahlen;
    end;

    l := links;
    r := rechts;

    pivot := sZahlen[Ceil((l+r)/2)];

    repeat
      while sZahlen[l] < pivot do
      begin
        Inc(l);
        Inc(anzahlVergleich);
      end;

      while sZahlen[r] > pivot do
      begin
        Dec(r);
        Inc(anzahlVergleich);
      end;

      if l <= r then
      begin
        speicher := sZahlen[l];
        sZahlen[l] := sZahlen[r];
        sZahlen[r] := speicher;
        Inc(anzahlTausch);
        Inc(l);
        Dec(r);
      end;
    until l > r;

    if links < r then
      quicksort(links, r);

    if l < rechts then
      quicksort(l, rechts);

  end;


end.
freue mich auf eure kritischen kommentare
danke

[edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat