Foren » 39. Bundeswettbewerb Informatik

[39.1 A1 Wörter aufräumen] Tipp gesucht

  • 11. Oktober 2020 17:38:44 CEST

    ich habe schon ein Programm geschrieben, das folgenden ausgibt:

    Hier ist der gesuchte Satz
    oh je , was für eine arbeit !

    viele würden sagen, das ist ja toll! Ich allerdings bin total verzweifelt bei der Aufgabe. Bei der ersten Datei ist die Ausgabe richtig, aber mit den folgenden Dateien ist alles ein totales durcheinander.

    Muss man hier Regel der Grammatik rein programmieren?... wenn ich die zweite Datei als Beispiel nehme, fängt der Satz mit: Am Anfang ... das nächste richtige Wort an der Stelle wäre - wurde - aber es gibt auch Leute  und nochmal wurde als Möglichkeiten. Da Leute von den Programm als erstes gelesen wird, wird dieses Wort der Lösung eingefügt und dann geht das Chaos los.

    Viele Grüße und viel Erfolg!

     

    • 92 Beiträge
    12. Oktober 2020 11:12:02 CEST

    Nein, Grammatikregeln müssen nicht einprogrammiert werden.

    Jede der Beispieleingaben hat eine eindeutige Lösung, die allein durch die vorgegebenen Buchstaben und Länge der Worte der Lückentexte bestimmt ist.

    Du musst allerdings zwei Sachen beachten:

    1. Jedes Wort aus der Wortliste darf nur so oft im Lückentext verwendet werden, wie es auch in der Wortliste vorkommt.
    2. In manche Lücken passen ggf. auch zwei oder mehr Worte, so das Länge und vorgegebene Buchstaben übereinstimmen. Allerdings gibt es in diesem Fall nur eine einzige Möglichkeit, eines dieser Worte auszuwählen, so dass auch alle anderen Worte auf alle andere Lücken passend verteilt werden können.

    Eine gute Idee bei Aufgaben im Bundeswettbewerb ist immer, sich ein kleines Beispiel selber auszudenken, das die Schwierigkeit beinhaltet, aber auch gut per Hand zu lösen ist!

    Für das Problem hier könnte man sich das folgende Beispiel ausdenken:

    _ _ _ h     _ i _ _     n _ _ _     _ _ s _

    mit den Wörtern "nich", "mich", "mach", "nass". (Orthographisch nicht ganz korrekt, aber das macht bei einem Beispiel ja nichts.)

    Hier passen in die erste Lücke drei Worte, und in die beiden nächsten Lücken jeweils zwei Worte. Trotzdem gibt es nur eine einzige Belegung, mit der alle vier Worte passend eingefügt werden können.

    Eine gute Überlegung ist nun, sich zu fragen, wie man das per Hand lösen würde. Wie würde man vorgehen? Kann man diese Vorgehensweise allgemein formulieren (um Beispielsweise einem Freund zu erklären, wie er noch kompliziertere Beispiele auf die selbe Art und Weise lösen kann)? Wenn man diese allgemeine Formulierung dann in einen Algorithmus abstrahieren kann, hat man die Aufgaben schon gelöst! :)