Entwickler-Ecke
Sonstiges (Delphi) - Alle Kombination aus 3 Buchstaben
NOE - Di 07.08.07 12:42
Titel: Alle Kombination aus 3 Buchstaben
Ich muss in meiner Schule in den nächsten Tagen ein Programm entwickeln, das mir !alle! Kombinationen aus 3 buchstaben ausgibt (also abc abd abe abf abg abh abi...)! egal wie viel tausende kombinationen es wären, alle müssen ausgeben werden. Wäre sehr dankbar wenn mir jmd helfen könnte, indem er das programm entwickelt oder mir den quellcode für delphi gibt! ES wäre so verdammt nett und geil wenn das jmd machen könnte. DANKE DANKE schon mal im Vorraus
Moderiert von
Gausi: Topic aus Open Source Projekte verschoben am Di 07.08.2007 um 13:12Moderiert von
Tino: "Hilfe" im Titel entfernt.
Narses - Di 07.08.07 12:52
Titel: Re: HILFE
Moin und :welcome: im Forum!
NOE hat folgendes geschrieben: |
Wäre sehr dankbar wenn mir jmd helfen könnte, |
Wir helfen dir gerne, das Programm zu schreiben. ;) Was hast du denn bisher schon geschafft?
NOE hat folgendes geschrieben: |
indem er das programm entwickelt oder mir den quellcode für delphi gibt! |
Es ist sicher nicht sinnvoll, dir das Programm zu schreiben - davon lernst du ja nix. :| Abgesehen davon machen wir hier keine Hausaufgaben... :?
cu
Narses
NOE - Di 07.08.07 12:59
Ja da ich ein halben Jahr krank war, hab ich so gut wie garnichts im Unterricht lernen können, aber damit ich jetzt keine schlechte note bekomme, habe ich gehofft das mir jmd helfen kann. Es ist das letzte Jahr Informatik weil ich dann meine schule beendet habe!
Mein lehrer meinte es reicht vollkommen aus nur die exe datei abzugeben, weil das sone zusätzliche leistung wäre!
arj - Di 07.08.07 13:00
Übrigens gibt es nicht tausende von Kombinationsmöglichkeiten aus 3 Buchstaben, sondern nur 6 ;)
NOE - Di 07.08.07 13:03
was? also abc abd abe abf abg abh abi...... also bei mir sind das schon 7 ! ^^ wir müssen aber alle erzeugen. :D
Martok - Di 07.08.07 13:07
Suche mal nach
PERMUTATIONEN
Es sind übrigens 26*26*26 = 26^3 = 17576 Kombinationen ;)
MOEDI - Di 07.08.07 13:12
Sind es nicht 26*25*24 Kombinationen?
Martok - Di 07.08.07 13:14
MOEDI hat folgendes geschrieben: |
Sind es nicht 26*25*24 Kombinationen? |
Kommt drauf an... So, wie er die Beispiele hat könnte das glatt stimmen.
Ich habe Sachen wie aaa,aab,aac,aad usw zugelassen.
MOEDI - Di 07.08.07 13:17
Stimmt, er lässt uns ja im Unklaren, ob jede Kombination (z.B. aaa) nur genau einmal vorkommen darf,
sonst hast du natürlich recht. :wink:
NOE - Di 07.08.07 13:19
die buchstaben können sich auch wiederholen also aaa! ja das wären dann 26^3 Kombinationen
DANKE @ MARTOK, aber wie gesagt ich verfüge eigentlcih nciht mal über die Grundkenntnisse! ich kann damit leider garnichts anfangen
MOEDI - Di 07.08.07 13:20
Na dann halt nich :tongue:
Jann1k - Di 07.08.07 13:25
Wie gut kennste dich denn mit Delphi aus? Für das Programm brauchse nur Kenntnisse mit Schleifen, Strings und irgendeine Form der Ausgabe (memofenster o.ä.)
NOE - Di 07.08.07 13:32
tut mir leid, ich lag fast 7 monate mit ner gehirnhautentzündung im krankenhaus. eigentlich null sind meine kenntnisse! mein lehrer meinte gib mir einfahc die exe ab und wir werden das angemesssen zensieren! also bite hilft mir, das wäre so nett. wir jmd das prog schicken könnte! BITTE
Jann1k - Di 07.08.07 13:37
was ist denn mit deinen klassenkameraden? hier im forum wird dir so schnell keiner einfach deine hausaufgaben machen, kannst es ja mal in der jobbörse versuchen
musst du nach 7 monaten fehlzeit nicht sowieso das jahr wiederholen?!?
ZeitGeist87 - Di 07.08.07 13:40
Hallo!
Also ich hab hier folgendes gelernt..wenn ich n fertig programm online gestellt hab, war die beigeisterung nicht so groß..
ist auch verständlich!
Schau dir das an
http://www.christian-stelzmann.de/index_tutorials_crashkurs.html
Was du für dein Problem brauchst:
- Schleifen
- Strings / Array
- Funktion ord() und chr()
- Zeit
- Lernwille
LG
Stefan
Gausi - Di 07.08.07 13:41
Weil du den Titel so schön geändert hast, hab ich mal ein Programm geschrieben, was bis 99 zählen kann. Das sollte weiterhelfen ;-).
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.Button1Click(Sender: TObject); var i,j: integer; begin for i := 0 to 9 do for j := 0 to 9 do Memo1.lines.Add(IntToStr(i) + IntToStr(j)); end; |
NOE - Di 07.08.07 13:57
leider kann ich damit wenig anfangen :( schade das mir keiner helfen konnte :(
Gausi - Di 07.08.07 14:02
...dann versuch mal zu verstehen, was mein Code macht. Dann überlege, was man machen müsste, damit das Ding bis 999 zählt. Und dann muss man nur noch mit Ord und Chr n bissel rumspielen, um von den Zahlen zu Buchstaben zu kommen.
Das fertige Programm nützt dir gar nichts.
ZeitGeist87 - Di 07.08.07 14:57
Ok..ich schreib mal nen Artikel...:eyes:
Was ist unsere Problem / unsere Aufgabenstellung??
Schreibe ein Programm, das alle Möglichen Kombinationen aus 3 Buchstaben ausgibt.
Zutaten:
- 3 Schleifen
- die Funktionen
ord() und
chr() (alternativ ein Array)
- Delphi
- bissl Intelligenz und Verständnis
Das Programm
Zuerst machen wir uns einmal Gedanken darüber, ob wir ein Array oder die ord() und chr() Funktion verwenden.
Ich persönlich tendiere zum Array, darum werd ich das hier auch so umsetzen.
http://www.christian-stelzmann.de/index_tutorials_crashkurs.html Stichpunkt: Arrays!
Wir deklarieren zuerst einen neuen Typ:
Delphi-Quelltext
1: 2: 3:
| type RAlphabet = record Buchstabe: Char; end; |
und deklarieren anschließend einen Variable des Typs mit der wir arbeiten werden:
Delphi-Quelltext
1:
| myAlpha: array of RAlphabet; |
So jetzt haben wir eine dyn. Array mit keinerlei Werten. Um das Array zu füllen, initialisieren wir es:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| setlength(myAlpha, 26); |
Dazu deklarieren wir eine Variable vom Typ Integer. Wir nennen sie i. Sie dient uns als Zählervariable.
var i: integer;
Jetzt gehen wir unsere Array durch und über die Funktion chr() fügen wir an passender Stelle jeweils den richtigen
Buchstaben ein.
Wir brauchen einen Zähler, damit wir den richtigen Buchstaben "erwischen"
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| var counter: integer; begin; counter:= 97; for i:= low(myAlpha) to high(myAlpha) do begin myAlpha[i].Buchstabe:= chr(counter+i); end; |
Unser Array schaut jetzt so aus:
Quelltext
1: 2: 3: 4: 5:
| myAlpha[0]:= 'a'; myAlpha[1]:= 'b'; myAlpha[2]:= 'c'; ... myAlpha[25]:= 'z'; |
Wunderbar oder?
Jetzt haben wir alles, was wir benötigen um die Ausgabe zu vervollständigen.
Wir sind unserem Ziel schon sehr nahe.
Wir brauchen nun unsere 3 Schleifen.
Delphi-Quelltext
1:
| var i, i2, i3: Integer |
Und nun folgt im Prinzip das, was
Gausi dir schon in einfacher Form gezeigt hat.
Vergiss nicht, ein Memo auf die Form zu legen :)
Delphi-Quelltext
1: 2: 3: 4:
| for i:= low(myAlpha) to high(myAlpha) do for i2:= low(myAlpha) to high(myAlpha) do for i3:= low(myAlpha) to high(myAlpha) do memo1.lines.add(myAlpha[i].Buchstabe + myAlpha[i2].Buchstabe + myAlpha[i3].Buchstabe); |
Was passiert da?
Die erste Schleife sorgt für den ersten, die zweite für den zweiten und die dritte für den dritten Buchstaben.
Die Ausgabe wird also so aussehen:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| aaa aab aac aad aae ... zzz |
Wenn du das verstanden und umgesetzt hast, bin ich glücklich und du sicher auch.
Bei Fragen -> Fragen.
LG
Stefan
ZeitGeist87 - Di 07.08.07 15:09
Es geht auch viel viel viel einfacher!
Ich weiß :)
Aber hey..warum nicht.. :twisted:
hui1991 - Di 07.08.07 15:18
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.Button1Click(Sender: TObject); var i,j: integer; begin for i := 0 to 9 do for j := 0 to 9 do Memo1.lines.Add(IntToStr(i) + IntToStr(j)); end; |
Was macht der Code?
Also er legt die variable
i und
j an.
Danach startet er eine Variable wo die nächste zeile 10 mal ausgeführt wird.
Dabei wird der wert i von 0 bis 9 hochgerechnet.
Jedesmal wenn sich der Wert i ändert, wird danach 10-mal j um eins erhöht.
Jedesmal wenn j um eins erhöht wurde, wird der wert
i und
j zur Liste hinzugefügt.
Ergebniss ist soweit:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| 00 01 02 03 04 05 06 07 08 09 10 .. 90 91 92 93 94 95 96 97 98 99 |
For schleifen zählen von dem Anfangswert zu dem Wert hinterm to.
Man kann auch mit der For-Schleife zeichen hochzählen.
Was passiert wohl, wenn du die 0 durch ein 'a' ersetzt und die 9 durch ein 'z'??
Dabei muss, aber der integer zu einem Char sein, weil Char "ein Zeichen" definiert.
Ich hoffe das du meins verstehst.
IntToStr muss aber entfernt werden, weil es ein Integer zu String verwandelt, das Format ist aber jetzt Char.
MfG
hui1991
P. S. hm.. ZeitGeist87 war schneller als ich, naja egal, wenn du was nicht verstanden hast kannste ja meins durchlesen ^^
Aso und ZeitGeist, chr und ord ist zu kompliziert.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!