Schleifen

  • VB6

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von shoy.

    Ein großes Problem:

    Ich soll zu einem Wort ("Victorian") alle anderen vorhandenen englischen Wörter herausfinden, die in diesem Wort vorhanden sind, also zum Beispiel "icon" und mehr.

    Dazu muss ich zuerst alle veschiedenen Möglichkeiten mit hilfe von schleifen ausgeben und dann mithilfe einer rechtschreibprüfung die worte ausgeben, die korrekt sind.

    Ich hab keine Ahnung wie ich das machen soll, ich hoffe dass ist nicht zu kompliziert ^^, weil ich brings einfach nicht zusammen
    ... dir ist schon klar, dass es theoretisch mehr als ne halbe Mio-Möglichkeiten gibt?
    Bei einer Schleife würde jede Kombination angegeben werden.
    Dies zu bilden und zu kontrollieren kann deinen Prozessor lahm legen ! ^^

    Was heißt kann, es wird!

    MfG

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ichbines“ ()

    das ist nicht übertrieben. überleg mal, wenn du erst alle wörter bilden sollst, die mit den buchstaben gehen und dann überprüfst ob es die wörter wirklich gibt, dann gibt es so viele mögliche kombinationen der anordnung der buchstaben.

    MfG
    deshalb wäre es vielleicht auch gescheiter zuerst alle englischen Wörter einzuladen und dann erst überprüfen, wort für wort, ob dieses Wort aus den zuvor definierten Buchstaben zusammengesetzt ist.
    Wenn ja, aufschreiben und nächstes, wenn nein nur nächstes wort.
    So bleibt dann auch der Schritt erspart, nachher zu überprüfen ob es die Wörter wirklich gibt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „The Net“ ()

    Also ich habe jetzt eine Textdatei mit englischen Wörtern die überprüft werden sollen.

    Diese Datei hab ich jetzt in eine Textbox einglesen und jetzt muss ich nur noch überprüfen, ob die Wörter in der Textdatei aus dem Wort "Victorian" entstehen können.

    Dazu sollte man das erste zeichen der ersten zeile einlesen und dann alle zeichen von Victorian durchgehen und schaun ob das erste zeichen in dem Wort vorkommt.
    Dann das nächste zeichen.. bis zum letzten Zeichen
    und dann 2. zeile: erstes bis letztes zeichen
    3. zeile ... usw..

    Kompliziert
    Weiß wer einen Code?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „The Net“ ()

    Ja, das ist kompliziert. So würde ich es aber auch machen. Und der Code sollte doch kein Problem sein, die Grundlage hast du doch selbst schon geschrieben.

    Quellcode

    1. Do While intPos =< Len(strSuchwort)
    2. strBuchstabe = Mid$(txtBegriff.Text, intPos, 1)
    3. If strBuchstabe = "v" or strBuchstabe= "i" or strBuchstabe = "c" ... Then
    4. ' entsprechender Code
    5. End If
    6. intPos = intPos + 1
    7. Loop


    So als Gedankenanstoß.

    mfG,

    Malcolm

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Malcolm“ ()

    naja das problem an diesem code ist, dass das wort nicht nur z.b."icon" sein könnte sondern auch "vvvvvv" und es würde erkannt...aber da wird sich bestimmt ne möglichkeit finden... z.b. kannst den strBuchstabe als 2 dimensionalen int array definieren --> die erste dimension ist ein buchstabe (ascii code) und die 2te die anzahl wie oft der buchstabe im wort vorkommt. Die buchstaben würd ich drin mit ascii code speichern dann kannst sie auch eifach wieder zurückumwandeln... so liesse sich auch ein beliebiges wort ( nicht nur "victorian") durchsuchen...

    ahjo @ichbines: es gibt genau 362880 möglichkeiten für ein 9 Zeichiges Wort mit alles verschiedenen Buchstaben. Für Victorian noch en bissel weniger weil das i 2 mal vorkommt... 331154 oder so glaub ich

    edit: gut jetzt hab ich en mist geschrieben ;) der array müsste nämlich 3 dimensional sein...
    1. dimension index (also 0 ist der erste buchstabe vom wort)
    2. dimension ascii code
    3. dimension anzahl wie oft der Buchstabe vorkommt

    edit2: so gleich nochmal mist geschrieben : gibt nämlich zwar schon 362880 möglichkeiten für 9 zeichen aber das wort kann ja auch "rian" heissen und des sind nur 4 zeichen... deshalb gibt es wenn meine berechnungen stimmen sagenhafte 15966720 (kann aber auch falsch sein bin kein mathe genie ;) )abfragen bis man jedes Wort durchgecheckt hat... aber ich denk das sollte schon passen für den pc... dauert einfach en weilchen ;)

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „shoy“ ()