Also, ich arbeite gerade an einem kleinen Projekt welches ih mir in den Kopf gesetzt habe. Wer schon mal Prison Break gesehen hat: Es gibt da diesen Typen welcher Origami-Figuren bastelt und dabei geheime Nachrichten verschickt. Dies funktioniert folgendermaßen:
Er schreibt eine bestimmte Zahl, z.B. 565. Ihr alle habt ein Handy. An diesen Tasten wiederum steht jede Zahl für 3-4 Buchstaben. Jede der Zahlen steht also für einen der Buchstaben, welchen weis ich nicht. Für 5 käme also beispielsweise j, k oder l in Frage, für 6 käme m, n oder o in Frage wie ihr ja einfach an eurer Handy-Tastatur ablesen könnt.
In diesem Fall könnte man aus 565 die Kombination "lol" oder etliche andere kombinationen welche keinen Sinn ergeben formulieren. Ich will nun, dass mir Delphi alle möglichen Kombinationen in eine Memo-Box schreibt.
Ich will ein Programm schreiben, welches mir zu einer bestimmten Zahlenkombination (beliebig viele Zahlen) alle damit bildbaren möglichkeiten in ein Memo schreibt. Ich will also z.b. für 565 jede einzelne der Kombinationen angezeigt bekommen, was ziemlich viele sein könnten (weis jemand wie man die Anzahl der Möglichkeiten da ausrechnet? Mathe?)...
In den ersten Minuten bin ich jetzt soweit gekommen:
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: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; Label1: TLabel; Memo1: TMemo; Label2: TLabel; procedure Button1Click(Sender: TObject); private function Berechne(): string; public end;
var Form1: TForm1;
implementation
{$R *.dfm}
function TForm1.Berechne(): string; var Zahl: integer; Buchstabe: string; begin Zahl:=strtoint(Form1.Edit1.Text); if Zahl <= 1 then begin Buchstabe:='a'; end else if Zahl > 1 then begin Buchstabe:='b'; end; Result:=Buchstabe; end;
procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Lines.Add(Berechne); end;
end. |
Und habe jetzt keine Ahnung wies weitergehen soll. Die Function ist nur als Beispiel gedacht. Was ich im Prinzp tun muss:
Als erstes die Zahlenkombination (z.b. 5678) welche in der Edit-Box steht in einzelne Zahlen aufsplitten, sodass ich die integerzahlen 5 6 7 8 habe und eben nicht alle zusammen. Weis jemand wie das gehen könnte?
Als zweites sollte man dann alle möglichkeiten in die Memo-Box schreiben, ich hab keinen Plan wie ich das ganze (auch auf theoretischer Ebene) umsetzen kann, dass Delphi die jeweiligen Buchstaben in allen möglichen Kombinationen aufschreibt...
Nochmal Beispiel wer es nicht verstanden hat: Ich gebe als Zahl nur 5 ein. Dann wird im Memo angezeigt: j k l jeder Buchstabe in einer einzelnen Zeile. Das sind die möglichen "kombinationen". Gebe ich als Zahlen 5 und 6 ein will ich alle möglichen Kombinationen aus beiden Zahlen, beispielsweise jm, jn, jo, km, kn, ko usw....
Falls ihr das Prinzip noch nicht verstanden habt fragt bitte nochmal nach. Ich bin für alle Tipps dankbar!
Moderiert von
Tino: Code- durch Delphi-Tags ersetzt