Programmieraufgabe 113

Gestern, 29.10.22, las ich in der FAZ vom Sonntag im Wissensteil eine schöne Rätselaufgabe, die man gut in der 10. Jahrgangsstufe programmieren kann. Wer also fortgeschrittener Anfänger ist, kann sich da gerne mal dran versuchen.

Ach ja … Das Ganze ist die Einsendungsaufgabe gewesen, daher gebe ich jetzt hier auch keine Lösung an. Die Linkempfehlung, an deren Ende dann die Rätselaufgabe kam, war übrigens semantle.com. Dabei geht es darum, ein Wort “semantisch” zu erraten. Ich fand es extrem schwer und die Hints nicht wirklich hilfreich, aber vielleicht habe ich auch einfach nur nicht die passende Gehirnwindung. Es gibt übrigens eine deutsche Variante, aber die habe ich nicht ausprobiert: semantlich.johannesgaetjen.de. Jetzt aber zur Aufgabe.

Aufgabe

Es gibt ein deutsches Wort aus 5 Buchstaben, das mit 1 Konsonanten anfängt und auf den 4 Vokale folgen. Schreibe ein Programm, das alle möglichen Worte generiert.

Worte könnten also sein: Woaai, Kiooa, Luuoi, usw.

Was ich eigentlich ganz spannend finde, ist die Anzahl an Lösungen, mit denen man diese Aufgabe knacken kann. Achtung: Spoileralarm!

  1. Benutze vier geschachtelte Zählwiederholungen.
  2. Benutze eine Zählwiederholung für den Konsonanten. Erzeuge dann die Potenzmenge aus den Vokalen, wobei die Worte die Länge 4 haben müssen. Dies kann man beispielsweise dadurch erreichen, dass man vierstelligen Zahlen zur Basis 5 hochzählt und die Ziffern den Vokalen zuordnet. Das Zählen wäre 0000 (“aaaa”), 0001 (“aaae”), 0002 (“aaai”), 0003 (“aaao”), 0004 (“aaau”), 0010 (“aaea”), 0011 (“aaee”), 0012 (“aaei”),…, 4443 (“uuuo”), 4444 (“uuuu”).
  3. Und dann noch die Frage, wie die Buchstaben erzeugt werden: ASCII-Code, Array, verkettete Liste.

Man sieht, eine wirklich schöne Aufgabe mit vielen Themen – wenn man mag.

Programmieraufgabe 112

Zum letzten Mal das Kompositum-Entwurfsmuster in der Q11 des G8 dargestellt. Schon fast traurig. Und daher erkläre ich es in einem Video auch noch mal.

Die angesprochene Aufgaben und der Source-Code finden sich hier Pizza-Generator.

Aufgabe

Ergänze das Projekt um folgendes Features

  1. Berechne die Gesamtkalorienzahl unter Ausnutzung der rekursiven Datenstruktur und gib sie mit aus.

  2. Gib eine Einschätzung der Pizza (Gesund, weniger gesund, veggie, vegan, etc.) mit aus.

  3. Generiere anhand von Standardbelägen Zufallspizzen inkl. Namen und, wenn es geht ohne Dopplungen und vielleicht unter Angabe der Anzahl der Zutaten.

  4. Erzeuge eine Menükarte mit lauter zufälligen Pizzen und lasse diese ausgeben.

  5. Eröffne eine Pizzeria und lade mich auf eine Zufallspizza ein – nein, Spaß.

Programmieraufgabe 111

Ein Projekt, das sich schon seit Jahren bei mir durch die Jahrgangsstufen durchzieht: Mischgetränke (oder auch Burger, Pizza, Eis,…) vorschlagen lassen. Wobei Mischgetränke am besten sind.

Aufgabe

Erstelle ein Programm, das je nach Zustand “Ideen”-Vorschläge für das Wochenende anbietet, Essensvorschläge darstellt oder ein Mischgetränk vorschlägt. Beginne dabei mit dem Punkt 1 “Ideen” wie Lesen, Kino, Lernen, Sport, etc. Benutze hierfür ein Array und achte darauf, dass du dein Programm jetzt schon so anlegst, dass es gut erweiterbar ist.

Hinweis

Das Schöne bei diesem Projekt ist, dass man

  1. sehr schön Projektmanagement darstellen kann (Wasserfall vs. Agil),
  2. Modellierung üben kann,
  3. Klassen- und Zustandsdiagramme nutzen kann,
  4. es auch mit Excel oder als Internetseite umsetzbar ist und man mal über den Vor- bzw. Nachteil von Programmiersprachen sprechen kann,
  5. man Spaß haben kann, wenn man die Getränke vielleicht auch mal am Ende des Schuljahres vielleicht wirklich real ausprobiert,
  6. und noch vieles mehr (Speicherbarkeit, Netzwerkfähigkeit, Entwurfsmuster, ….)

 

Durch die weitere Nutzung der Seite (Scrollen, Navigieren) stimmen Sie der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen