AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Min-Sort Verfahren

Ein Thema von delphi_master · begonnen am 22. Nov 2007 · letzter Beitrag vom 5. Mär 2013
 
cobi23

Registriert seit: 25. Feb 2013
12 Beiträge
 
#19

AW: Min-Sort Verfahren

  Alt 4. Mär 2013, 16:37
Ich möchte das so haben:
Mittels einen ersten Button soll im 1.Memo-Feld, die Zufallszahlen generiert werden und mittels einen 2.Button soll in einen 2.Memo diese Zufallszahlen mittels selectionsort geordnet werden.
Mein Problem ist, dass mein Programm beim ersten button-Klick im Memo die gleichen Zufallszahlen erscheinen unzwar alle 100. Im ersten Memo wird dabei in allen Arrays von 1 bis 100 hochgezählt bis es zur 100 angelangt.
Und wenn ich mit den 2.Button die Zahlen sortieren möchte kommt folgende Reihenfolge:

98
98
99
100
100

Und es kommt immer die gleichen zufallszahlen und die gleiche REihenfolge nacht selectionsort.

Das ist wirklich zum verzweifeln.

Hier noch mal der Quellcode

Code:
{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Memo1: TMemo;
    Memo2: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
    za: array [1..6] of integer;
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

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

procedure TForm1.Button2Click(Sender: TObject);
var i,x,y,k:integer;
begin
  memo1.Clear; memo2.Clear;
  for I:=1 to 6 do za[k]:=i;
  for I:=1 to 6 do
  begin
    x:=IntToStr(Random(100)+1);
    y:=za[k];
    za[k]:=y;
    for k:=1 to 6 do
    memo1.Lines.Add(IntToStr(za[k]));
  end;

end;

procedure TForm1.Button3Click(Sender: TObject);
var i,j,m,x:integer;
begin
  for I:=1 to 6 do
  begin
    x:=i;
    for j:=i+1 to 6 do
    if za[x] > za[j] then
    x:=j;
    begin
    m:=za[x];
    za[x]:=za[i];
    za[i]:=m;
    memo2.lines.Add(inttostr(za[i]));
    end;
  end;

end;

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

end.

Ach ja ich benutze Lazarus, ist das der Grund dafür?

Geändert von cobi23 ( 4. Mär 2013 um 16:40 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz