Beispiel - Palindrome
Interessante Wörter
Was ist das Gemeinsame der folgenden Wörter?
Rentner Regallager Reliefpfeiler
Hier noch einige weitere Wörter, die zu den bereits genannten passen:
Anna Hannah Otto
Alles klar? Alle diese Wörter ergeben rückwärts gelesen dasselbe Wort. Man nennt solche Wörter auch Palindrome.
Ziel ist es, das Umkehren von Wörtern und den Palindromtest mit einem geeigneten Programm zu automatisieren.
Darstellung als Zeichenkette
Zunächst werden die zu verarbeitenden mit Hilfe von Daten von Typ Zeichenkette dargestellt. In Python lässt sich das auf unterschiedliche Weisen realisieren.
Einzeilige Zeichenkette können mit Hochkommata '...'
oder Anführungszeichen "..."
markiert
werden. Bei mehrzeiligen Zeichenketten benutzt man jeweils drei Hochkommata '''...'''
oder drei Anführungszeichen """..."""
.
Beachte, dass text4
mit einem Zeilenumbruch anfängt und mit einem Zeilenumbruch endet.
Probiere selbst weitere Beispiele aus.
Zugriff auf die Zeichen
Die einzelnen Zeichen einer Zeichenkette sind von 0 an durchnummeriert. Mit Hilfe der jeweiligen Nummer - die man auch als Index bezeichnet - kann man auf aktuelle Zeichen zugreifen. Beachte, dass die mehrzeilige Zeichenkette im folgenden Demoprogramm hier mit einem Zeilenumbruch beginnt.
Wenn man beim Zugriff den Indexbereich verlässt, gibt es eine Fehlermeldung.
Eine Zeichenkette durchlaufen
Eine Zeichenkette kann man durchlaufen, indem man mit einer while
-Schleife der Reihe nach über den Index auf jedes Zeichen zugreift -
von 0 an bis zum letzten Index, der kleiner als die Länge der Zeichenkette ist.
Denselben Effekt kann man mit einer for
-Schleife erzielen, wobei der range
-Operator hier den gewünschten Indexbereich erzeugt.
Noch kürzer geht es mit einer for
-Schleife direkt über die Zeichen der Zeichenkette.
Probiere das jeweils aus.
Zeichenketten aneinanderfügen
Zeichenketten kann man mit dem +
-Operator aneinanderfügen.
Hier einige weitere Beispiele. Versuche vorab zu erschließen, was im folgenden Programm ausgegeben wird.
Ergänze selbst weitere Testanweisungen. Probiere dabei auch eine Art Zeichenkettenvervielfachung wie 3*'Hallo'
aus.
Das Wichtigste notieren
Erkennung von Palindromen
Das Erkennen von Palindromen ist recht einfach: Man kehrt das Wort um und überprüft, ob das umgekehrte Wort mit dem zu überprüfenden Wort übereinstimmt.
Aufgabe 1
(a) Entwickle ein Programm, das ein eingegebenes Wort umkehrt. Hier ein passender Algorithmus:
ALGORITHMUS umkehren Eingabe: wort wortUmgekehrt = '' für alle zeichen aus wort: füge das zeichen vorne in wortUmgekehrt an Ausgabe: wortUmgekehrt
(b) Entwickle das Programm so weiter, dass das eingegebene Wort daraufhin überprüft wird, ob es ein Palindrom ist.
ALGORITHMUS palindrome Eingabe: wort wortUmgekehrt = '' für alle zeichen aus wort: füge das zeichen vorne in wortUmgekehrt an WENN wortUmgekehrt und wort identisch sind: Ausgabe: 'Palindrom' SONST: Ausgabe: 'kein Palindrom'