Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Buchstaben tauschen


Leftout - Di 16.05.06 11:08
Titel: Buchstaben tauschen
Hi,
folgendes Problem:
in einem Editfeld steht im Text ein String (logisch), die Buchstaben des Strings sollen zufällig getauscht werden.
Wie geh ich das Problem am besten an?

Danke schon mal im vorraus


Horschdware - Di 16.05.06 11:17

Pseudocode:

Zufällige Position (1) im String wählen.
Zeichen bei (1) rausholen und in zwischenspeicher (Z) ablegen.
Zufällige ANDERE Position (2) im String wählen.
Zeichen bei (1) durch Zeichen bei (2) ersetzen
Zeichen bei (2) durch Zeichen im Speicher (Z) ersetzen.
Wiederhole bis gewünschtes Ergebnis erreicht


Danny87 - Di 16.05.06 11:22

Ist im Grunde sowas wie ein Sortieralgorithmus. Nur halt mit zufälligen Stellenwerten wo die Buchstaben hingeschoben werden ;-)
Is en bischen dumm erklärt, sorry!

Gruss
Daniel


Horschdware - Di 16.05.06 11:24

ok, anders gefragt: was soll deine ausgabe sein?
sortierte Buchstaben? wenn ja: nach was sortiert?
oder sollen die zufällig durcheinander gewürfelt werden?


starsurfer - Di 16.05.06 11:26

user profile iconHorschdware hat folgendes geschrieben:
ok, anders gefragt: was soll deine ausgabe sein?
sortierte Buchstaben? wenn ja: nach was sortiert?
oder sollen die zufällig durcheinander gewürfelt werden?

siehe:
Zitat:
die Buchstaben des Strings sollen zufällig getauscht werden.


das geht so:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
var new_text,text:string;
    i:integer;
begin
new_text:='';
text:=edit1.text;
randomize;
for i:=1 to length(text) do
    begin
    insert(text[i],new_text,random(length(new_text))+1);
    end;
edit1.text:=new_text;
end;

so


Horschdware - Di 16.05.06 11:31

hmm... so ist aber nicht sichergestellt, dass jeder buchstabe aus dem eingangsstring verwendet wird.

wie wärs denn damit?

Delphi-Quelltext
1:
2:
3:
ok, anders gefragt: was soll deine ausgabe sein?
sortierte Buchstaben? wenn ja: nach was sortiert?
oder sollen die zufällig durcheinander gewürfelt werden?


chriss1988 - Di 16.05.06 11:32

oh ja toller text Horschdware :lol:

edit :oops: mein fehler beim ersten öffnen war dein feld leer nun seh ich den text
sorry ich geh gleich in die ecke und schäme mich :roll:


Horst_H - Di 16.05.06 11:36

Hallo,

suche einfach nach >mischen<
Ein String ist ein array[1..length(STring)] of char.

Gruss Horst


chriss1988 - Di 16.05.06 11:37
Titel: Re: Buchstaben tauschen
user profile iconLeftout hat folgendes geschrieben:

in einem Editfeld steht im Text ein String (logisch), die Buchstaben des Strings sollen zufällig getauscht werden.


@horschdware
frage beantwortet


starsurfer - Di 16.05.06 11:44

user profile iconHorschdware hat folgendes geschrieben:
hmm... so ist aber nicht sichergestellt, dass jeder buchstabe aus dem eingangsstring verwendet wird.

wie wärs denn damit?

Delphi-Quelltext
1:
2:
3:
ok, anders gefragt: was soll deine ausgabe sein?
sortierte Buchstaben? wenn ja: nach was sortiert?
oder sollen die zufällig durcheinander gewürfelt werden?


wieso nicht?


Horschdware - Di 16.05.06 11:44

ähhm. ja, ok... sorry, bin grad nicht ganz da...