Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:snr:informatik:fachdidaktik:bonusmaterial [2022/07/18 10:29] – [Weitere Ideen zur Text-Analyse] Olaf Schnürer | lehrkraefte:snr:informatik:fachdidaktik:bonusmaterial [2022/07/21 10:47] (current) – [Bonus-Aufgabe B1 zu Goethes Faust: Buchstabenhäufigkeiten - Darstellung als Säulendiagramm] Olaf Schnürer | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ~~NOTOC~~ | ||
| + | ====== Bonusmaterial (Aufgaben, weitere Ideen, nachfolgende Themen) ====== | ||
| + | ===== Bonusaufgaben ===== | ||
| + | |||
| + | ==== Bonus-Aufgabe B1 zu Goethes Faust: Buchstabenhäufigkeiten - Darstellung als Säulendiagramm ==== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Schreibe ein Programm, das zählt, wie häufig (in Prozent) jeder der 26+3+1 Buchstaben (a-z, Umlaute, scharfes s) im Faust vorkommt und stelle das Ergebnis durch ein Säulendiagramm dar. | ||
| + | |||
| + | <hidden Hinweis 0> | ||
| + | Orientiere dich an Aufgabe 3 inklusive der danach gegebenen Anleitung zum Zeichnen des Säulendiagramms. | ||
| + | |||
| + | Genaueres wird in den folgenden Hinweisen erklärt. | ||
| + | </ | ||
| + | |||
| + | <hidden Hinweis 1> | ||
| + | Erzeuge zuerst eine Liste aller Buchstaben im Faust. | ||
| + | <hidden Das geht so per list comprehension:> | ||
| + | '' | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <hidden Hinweis 2> | ||
| + | Verwende die Liste | ||
| + | '' | ||
| + | </ | ||
| + | |||
| + | <hidden Hinweis 3> | ||
| + | Zeichne das Säulendiagramm mit dem Befehl | ||
| + | '' | ||
| + | </ | ||
| + | |||
| + | <hidden Lösungsvorschlag> | ||
| + | <code python> | ||
| + | eingabeDatei = open(" | ||
| + | wortliste = eingabeDatei.read().splitlines() | ||
| + | eingabeDatei.close() | ||
| + | |||
| + | buchstabenliste = [b for w in wortliste for b in w.lower()] | ||
| + | anzahlBuchstaben = len(buchstabenliste) | ||
| + | alphabet = [x for x in " | ||
| + | prozentualeHaeufigkeit = [buchstabenliste.count(b) / anzahlBuchstaben * 100 for b in alphabet] | ||
| + | |||
| + | from matplotlib import pyplot as plt | ||
| + | |||
| + | def zeichneSaeulendiagramm(xWerte, | ||
| + | # xWerte: Liste der Werte auf der horizontalen Achse | ||
| + | # yWerte: Liste der zugehörigen Funktionswerte | ||
| + | # titel: Titel der Graphik | ||
| + | # xBeschriftung: | ||
| + | # yBeschriftung: | ||
| + | plt.figure(" | ||
| + | plt.title(titel) | ||
| + | plt.xlabel(xBeschriftung) | ||
| + | plt.ylabel(yBeschriftung) | ||
| + | plt.bar(xWerte, | ||
| + | plt.xticks(xWerte, | ||
| + | plt.tight_layout() | ||
| + | plt.show() | ||
| + | | ||
| + | zeichneSaeulendiagramm(alphabet, | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== (relativ anspruchsvolle) Bonus-Aufgabe B2 zu Goethes Faust: Anagramme ==== | ||
| + | |||
| + | Ein // | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | * (B2a) Schreibe ein Programm, das alle Anagramme in Goethes Faust findet. Genauer sind wir an allen Wörtern im Faust interessiert, | ||
| + | |||
| + | Hinweise: Verwende die Funktion | ||
| + | <code python> | ||
| + | def ordneAlphabetisch(s): | ||
| + | return '' | ||
| + | </ | ||
| + | Sie nimmt ein Wort entgegen und ordnet es alphabetisch: | ||
| + | |||
| + | Mit Hilfe dieser Funktion kann man leicht entscheiden, | ||
| + | |||
| + | <hidden Lösungsvorschlag zu Teilaufgabe B2a> | ||
| + | <code python> | ||
| + | eingabeDatei = open(" | ||
| + | wortliste = eingabeDatei.read().splitlines() | ||
| + | eingabeDatei.close() | ||
| + | |||
| + | # Teilaufgabe B2a | ||
| + | def ordneAlphabetisch(s): | ||
| + | return '' | ||
| + | |||
| + | wortlisteOhneWiederholungen = list({x.lower() for x in wortliste}) | ||
| + | alphabetischGeordnet = [ordneAlphabetisch(x) for x in wortlisteOhneWiederholungen] | ||
| + | anagramme = [x for x in wortlisteOhneWiederholungen if alphabetischGeordnet.count(ordneAlphabetisch(x)) > 1] | ||
| + | print(" | ||
| + | print(anagramme) | ||
| + | print(" | ||
| + | print(len(anagramme)) | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | * (B2b) Ändere die Ausgabe so, dass | ||
| + | * jedes Anagramm zusammen mit seinen " | ||
| + | * jedes Anagramm genau einmal ausgegeben wird; | ||
| + | * optional: Gib nur " | ||
| + | |||
| + | ---- | ||
| + | |||
| + | <hidden Lösungsvorschlag zu beiden Teilaufgaben> | ||
| + | <code python> | ||
| + | eingabeDatei = open(" | ||
| + | wortliste = eingabeDatei.read().splitlines() | ||
| + | eingabeDatei.close() | ||
| + | |||
| + | # Teilaufgabe B2a | ||
| + | def ordneAlphabetisch(s): | ||
| + | return '' | ||
| + | |||
| + | wortlisteOhneWiederholungen = list({x.lower() for x in wortliste}) | ||
| + | alphabetischGeordnet = [ordneAlphabetisch(x) for x in wortlisteOhneWiederholungen] | ||
| + | anagramme = [x for x in wortlisteOhneWiederholungen if alphabetischGeordnet.count(ordneAlphabetisch(x)) > 1] | ||
| + | print(" | ||
| + | print(anagramme) | ||
| + | print(" | ||
| + | print(len(anagramme)) | ||
| + | |||
| + | # Teilaufgabe B2b | ||
| + | for x in list({ordneAlphabetisch(x) for x in anagramme}): | ||
| + | anagrammeDavon = [a for a in anagramme if ordneAlphabetisch(a) == x] | ||
| + | print(anagrammeDavon) | ||
| + | # Lösung der optionalen Aufgabe: Kommentiere die vorige Zeile aus und entkommentiere die folgenden beiden Zeilen: | ||
| + | # if len(x) >= 12 or len(anagrammeDavon) >= 4: | ||
| + | # print(anagrammeDavon) | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Weitere Ideen zur Text-Analyse ===== | ||
| + | |||
| + | * Häufigkeit von Wörtern: | ||
| + | * Welches Wort kommt am häufigsten in Goethes Faust vor? | ||
| + | * Erstelle eine Liste der 20 am häufigsten vorkommenden Wörter und stelle diese in einem Säulendiagramm dar. | ||
| + | * Sortiere die Liste der Wörter nach ihrer Häufigkeit. | ||
| + | * Wie gross ist der Sprechanteil der verschiedenen Personen (Faust, Mephisto, Gretchen etc.)? - Sprecher sind im Text in Großbuchstaben angegeben, etwa FAUST etc. (Überschriften, | ||
| + | * Kannst du anhand der Buchstabenhäufigkeiten herausfinden, | ||
| + | * Welche Fragen fallen dir ein? | ||
| + | ===== Retour zur Hauptseite ===== | ||
| + | |||
| + | [[lehrkraefte: | ||
| + | |||