Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

Beispiel - hallihallo

Erzeugung von Wörtern

Auch Wörter lassen sich manchmal systematisch erzeugen. Hier einige einfache Beispiele:

Begrüßung:

hallo
hallihallo
hallihallihallo
hallihalli...hallihallo

Nichtssagendes:

bla
blabla
blablabla
blabla...bla

Torjubel:

Tor
Toor
Tooor
Tooo...ooor

Allen diesen Beispielen gemeinsam ist ein mehrfach identisch wiederholtes Teilwort. Bei der Begrüßung wird das Teilwort "halli" wiederholt, beim Nichtssagenden das Teilwort "bla" und beim Torjubel das Teilwort "o". Umrahmt werden kann das wiederholte Teilwort mit einem Anfangs- und einem Endwort. Beim Torjubel sind das die Wörter "T" und "r". Bei der Begrüßung werden ein leeres Anfangswort "" und das Endwort "hallo" benutzt. Beim Nichtssagenden sind beide - Anfangs- und Endwort jeweils leere Worte.

Die Struktur aller dieser Worte lässt sich also so beschreiben:

anfang + anzahl*mitte + ende

Hier sind anfang, mitte und ende jeweils Teilwörter (bzw. Zeichenketten). Mit anzahl wird eine Zahl beschrieben, die angibt, wie oft das mittlere Teilwort wiederholt wird.

Wörter des beschriebenen Typs lassen sich (zumindest in Python) auch wie folgt erzeugen.

>>> 3*'bla'
'blablabla'
>>> 5*'halli'
'hallihallihallihallihalli'
>>> 5*'halli' + 'hallo'
'hallihallihallihallihallihallo'
>>> 'T' + 10*'o' + 'r'
'Toooooooooor'

Beachte, dass die zu verarbeitenden Wörter hier mit Hochkommata als Daten vom Typ Zeichenkette dargestellt sind.

Aufgabe 1

Probiere das selbst mit verschiedenen Beispielen aus.

Eine Funktion zur Verarbeitung von Wörtern

Wir konzipieren jetzt eine Funktion zur automatisierten Erzeugung von Wörtern mit iteriertem Mittelteil.

<Black-Box-Diagramm><Funktionsname>neuesWort</Funktionsname><Übergaben><Übergabe><Wert>'T'</Wert><Variable>anfang</Variable><Typ>str</Typ></Übergabe><Übergabe><Wert>'o'</Wert><Variable>mitte</Variable><Typ>str</Typ></Übergabe><Übergabe><Wert>'r'</Wert><Variable>ende</Variable><Typ>str</Typ></Übergabe><Übergabe><Wert>10</Wert><Variable>anzahl</Variable><Typ>int</Typ></Übergabe></Übergaben><Rückgabe><Typ>str</Typ><Wert>'Toooooooooor'</Wert></Rückgabe></Black-Box-Diagramm>

Beachte, dass hier jeweils auch der Typ der zu verarbeitenden Daten beschrieben wird. Mit str werden Daten vom Typ Zeichenkette erfasst, mit int Daten vom Typ ganze Zahl.

Die Definition der beschriebenen Funktion ist sehr einfach.

def neuesWort(anfang, mitte, ende, anzahl):
    return anfang + anzahl*mitte + ende

Aufgabe 2

Teste die Funktion mit verschiedenen Funktionsaufrufen.

Aufgabe 3: Umrandung von Wörtern

Konzipiere und implementiere eine Funktion, mit der man Wörter mit Zeichenketten wie folgt umranden kann.

>>> umrandetesWort('Test', '.', '.', 3)
'...Test...'
>>> umrandetesWort('hilfe', 'o_', '_O', 5)
'o_o_o_o_o_hilfe_O_O_O_O_O'
X

Fehler melden

X

Suche