11. Dezember 2018

Grußkarten beschriften

– Vielen Dank an CipSoft für das bereitstellen dieser Aufgabe.

Schreibe ein Programm zu folgender Aufgabenbeschreibung. Zur Eingabe der Daten verwende bitte die Standardeingabe oder lies eine Datei ein. Bitte verwende keine Konsoleneingabe.

Szenario

Der Weihnachtsmann hat seinen Elfen aufgetragen zusätzlich zum Verpacken der Geschenke auch noch für jeden Haushalt eine kleine Grußkarte vorzubereiten. Da aus Kostengründen nur recht kleine Kärtchen zur Verfügung stehen (es passen nur 38 Zeichen in jede Zeile und nur 4 Zeilen insgesamt) muß ein möglichst optimaler Text für die Grußkarten gefunden werden.

Aufgabenbeschreibung

Der Weihnachtsmann hat den Elfen eine Liste übergeben, in der in jeder Zeile (durch Komma getrennt) unsortiert die Bewohner eines Haushalts stehen (natürlich in UTF-8, denn der Weihnachtsmann ist schließlich modern und kennt die Widrigkeiten mit Umlauten in Namen). Damit die Elfen wissen, wer weiblich und wer männlich ist (es gibt schließlich recht ausgefallene Vornamen) steht vor jedem Namen mit Komma getrennt noch ein "w" für weiblich und ein "m" für männlich.

Als Vorbereitung (bevor die Texte auf die teuren Grußkärtchen geschrieben werden) sollen die Elfen erst mal eine Liste erstellen (auch in UTF-8), auf der für jeden Haushalt in einer einzelnen Zeile der längst mögliche Text steht der noch drauf passt. Die Zeilen der Grußkarte sollen dabei mit einem "|" getrennt erscheinen.

Als Letztes hat er jedem Elfen noch einen Zettel übergeben auf dem recht genau steht, wie diese zu Arbeiten haben:

  • Wörter sollen nicht abgeschnitten und auch nicht getrennt werden. Passt ein Wort nicht mehr in eine Zeile muss es in die nächste Zeile verrutscht werden. Dabei zählen nur Leerzeichen als Möglichkeit einen Satz umzubrechen. Satzzeichen müssen am vorherigen Wort kleben bleiben.
  • Die Karte soll natürlich möglichst gut gefüllt erscheinen. Deshalb soll der längst mögliche Text darauf geschrieben werden, der in die vier Zeilen noch draufpasst.
  • Die Bewohner sollen persönlich angesprochen werden. Deshalb muss jede Grußkarte so losgehen:
    Liebe Eva, Lieber Anton, Bert und Hans
  • Die Namen werden je für Frauen und Männer alphabetisch sortiert und ein Liebe oder Lieber davor geschrieben.
  • Zuerst werden alle Frauen im Haushalt genannt (der Weihnachtsmann ist schließlich noch ein Gentleman alter Schule). Dann alle Männer. Der letzte Name einer Gruppe soll jeweils mit einem "und" getrennt werden. Die Anderen davor mit Komma+Leerzeichen.
  • Anschließend soll direkt dahinter – also ohne Zeilenumbruch – (durch ein Komma+Leerzeichen getrennt) ein Weihnachtsgruß stehen. Dieser muss so losgehen:

    • ich wünsche Dir / ich wünsche euch
      (je nachdem ob es ein Single-Haushalt ist oder mehrere Leute im Haushalt leben)
  • Dann kommt der eigentliche Weihnachtsgruß. Dieser kann einer aus folgender Liste sein:

    • ein frohes Fest
    • ein schönes Fest
    • frohe Weihnachten
    • erholsame Weihnachten
    • ein frohes Weihnachtsfest
    • ein schönes Weihnachtsfest
    • frohe und erholsame Weihnachten
    • ein frohes und gesegnetes Weihnachten
    • ein frohes und gesegnetes Weihnachtsfest
  • Anschließend kommt noch ein optionaler Silvestergruß. Dieser kann auch weggelassen werden, wenn der Text zu lange werden sollte:

    • und ein frohes Neues
    • und einen guten Rutsch
    • und ein erfolgreiches neues Jahr
    • und einen guten Rutsch ins neue Jahr
    • und ein erfolgreiches und gesundes neues Jahr
  • Nach dem Satz soll dann ein Punkt+Leerzeichen gesetzt werden. Anschließend noch eine der folgenden Grußformeln:

    • Santa
    • Santa Claus
    • Dein Weihnachtsmann / Euer Weihnachtsmann
      (wieder abhängig davon, ob Single-Haushalt oder nicht)
  • Und noch der abschließende Punkt am Ende
  • Sind zwei Texte mit obigen Kombinationen gleich lang, so soll immer der kürzere Silvestergruß gewählt werden und lieber der Rest länger.

In obigem Beispiel würde das folgenden Text ergeben:

Liebe Eva, Lieber Anton, Bert und
Hans, ich wünsche euch ein frohes und
gesegnetes Weihnachten und einen guten
Rutsch ins neue Jahr. Santa Claus.

Beispiel-Eingabe-Datei

w,Ute
m,Landolf,m,Hartmann,m,Alfred,m,Sturmhard,m,Manfred,w,Gunhild

Beispiel-Ausgabe-Datei

Liebe Ute, ich wünsche Dir ein frohes|und gesegnetes Weihnachtsfest und ein|erfolgreiches und gesundes neues Jahr.|Dein Weihnachtsmann.
Liebe Gunhild, Lieber Alfred,|Hartmann, Landolf, Manfred und|Sturmhard, ich wünsche euch ein frohes|und gesegnetes Weihnachtsfest. Santa.

 

Das gesamte CipSoft Team wünscht euch eine wunderbare Weihnachtszeit

CipSoft Logo

Allgemeine Hinweise

  • Bitte schicke deine Antwort nachvollziehbar (egal ob in Textform, Zeichnung oder Bild) per E-Mail an advent@fsim-ev.de oder gib sie analog im Fachschaftsbüro ab.
  • Bitte gib deinen vollständige Namen an, damit wir wissen, an wen das Geschenk geht und auch bei der Übergabe die Identität prüfen können.
  • Wir geben dann den Gewinnern schnellstmöglich per E-Mail Bescheid.
Falls du gewonnen hast: Gratulation! Komm ins FSIM-Büro und öffne das Türchen! Bringe außerdem deinen Studentenausweis mit, damit wir deine Identität prüfen und sicherstellen können, dass du immatrikulierter Student eines Informatik- oder Mathematikstudiengangs bist.