Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - buchstaben(random) sortiert(bubblesort) ausgeben


julian2003 - Mo 11.05.09 17:06
Titel: buchstaben(random) sortiert(bubblesort) ausgeben

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
var
  Form1: TForm1;
  a:array [1..9of integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var bis, i, h:integer;
begin
  randomize;
  bis := High(a);
  for i:=1 to bis do
    a[i]:=random(100)+1;
  repeat
   for i:=0 to bis do
   if a[i] > a[i+1then begin
     h := a[i];
     a[i] := a[i+1];
     a[i + 1] := h
   end;
   Dec(bis)
  until bis = 1;

  for i:=1 to high(a) do
  listbox1.Items.Add(inttostr(a[i]));

end;


wie kann ich nun das ganze mit 9 random-buchstaben machen?

vielen dank, julian


Narses - Mo 11.05.09 23:15

Moin!

user profile iconjulian2003 hat folgendes geschrieben Zum zitierten Posting springen:
wie kann ich nun das ganze mit 9 random-buchstaben machen?
Was hast du denn bisher versucht, um die Aufgabe zu lösen? Vorschläge, vielleicht schon etwas Code (muss ja nicht unbedingt funktionieren)? :nixweiss: Was erwartest du jetzt von uns, fertigen Quelltext? :?

Nun gut, hier mal ein erster Ansatz:
user profile iconjulian2003 hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
1:
2:
3:
var
  Form1: TForm1;
  a:array [1..9of integer;
Hier deklarierst du ein Integer-Array. Wenn du statt dessen Buchstaben nehmen willst, dann wäre der Datentyp Char ja schonmal der erste Schritt. :idea: ;)

cu
Narses


julian2003 - Di 12.05.09 15:35

in 1 woche bekomm ich vermutlich meine schularbeit zurück dann kann ich euch meinen falschen ansatz zeigen :roll:


ffgorcky - Di 12.05.09 17:43

Am besten sucht man doch einfach immer erst mal, ob die Frage nicht irgendwo schon beantwortet wurde.
- Wie zum Beispiel hier: [url=http://www.delphi-forum.de/viewtopic.php?t=4639&highlight=buchstaben+random]
Zufallsbuchstaben regenerieren?[/url]
Dort steht doch:
Zitat:
Wie kann man nun aber Zufallsbuchstaben generieren?

...auch wenn der Titel leider nicht so ganz richtig dafür spricht, dass man genau dieses darunter vermuten darf.


julian2003 - Di 12.05.09 17:51

mir geht es ja mehr darum die buchstaben dann mit dem bubblesort alphabetisch zu sortieren.
lg,julian


Marc. - Di 12.05.09 17:58

user profile iconjulian2003 hat folgendes geschrieben Zum zitierten Posting springen:
mir geht es ja mehr darum die buchstaben dann mit dem bubblesort alphabetisch zu sortieren.
lg,julian

Und wo hakt's nun? Meine Glaskugel ist leider derzeit sehr trübe bei dem Wetter. :roll:


julian2003 - Di 12.05.09 21:43

Überarbeiteter Quelltext unten!


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
procedure TForm1.Button2Click(Sender: TObject);
var
i,h,i2,zaehler,i3: integer;
begin
//in dynarray buchstaben einlesen
zaehler:= length(ausgabe); //in ausgabe befinden sich random buchstaben
setlength(sortiert,zaehler);
for i:= 0 to zaehler-1 do
sortiert[i]:= ord(ausgabe[i]);

//Bubblesort
repeat
for i2:= 0 to zaehler-1 do begin
if sortiert[i2] > sortiert[i2+1then begin
h:= sortiert[i2];
sortiert[i2]:= sortiert[i2+1];
sortiert[i2+1]:= h;
dec(zaehler);
end;
end;
until zaehler= 1;

panel2.caption:='';
for i3:= 0 to zaehler-1 do
panel2.caption:= panel2.caption + chr(sortiert[i3]);
end;


Programmier zwar schon seit 2 jahren mit Delphi in der Schule, aber irgendwie liegts mir einfach nicht. :oops:

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

hab nochmal herumgebastelt und er gibt mir jetz zumindest den 1. buchstaben richtig geordnet aus:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
var
 sortiert: array of integer;
 sortiert2: array of char;

procedure TForm1.Button2Click(Sender: TObject);
var
i,h,i2,zaehler,i3,i4: integer;
begin
//in dynarray buchstaben einlesen
zaehler:= length(ausgabe); //in ausgabe befinden sich random buchstaben
setlength(sortiert,zaehler);
for i:= 0 to zaehler-1 do
sortiert[i]:= ord(ausgabe[i+1]);

//Bubblesort
repeat
for i2:= 0 to zaehler-1 do begin
if sortiert[i2] > sortiert[i2+1then begin
h:= sortiert[i2];
sortiert[i2]:= sortiert[i2+1];
sortiert[i2+1]:= h;
dec(zaehler);
end;
end;
until zaehler= 1;

panel2.caption:='';
setlength(sortiert2,zaehler);
for i3:= 0 to zaehler-1 do
sortiert2[i3]:= chr(sortiert[i3]);

for i4:= 0 to zaehler-1 do
panel2.caption:= panel2.caption + sortiert2[i4];
end;