Lösung Ruby-Aufgabe

Neue Frage »

Auf diesen Beitrag antworten »
Kampfschmuserin Lösung Ruby-Aufgabe

Meine Frage:
Palindrome sind Zeichenketten, die von vorne wie von hinten gelesen identisch sind. Zum Beispiel ist "rentner" ein Palindrom, während "frank" kein Palindrom ist (rückwärts: "knarf"). Ein einzelner Buchstabe und die leere Zeichenkette zählen ebenfalls als Palindrome. In dieser Aufgabe sollen verschiedene Funktionen zu Palindromen in einem Ruby-Programm palindrom.rb programmiert werden.

Achtung: Programmieren Sie in dieser Aufgabe so, dass in den Funktionen selbst keine Bildschirmausgaben mit puts und keine Benutzereingaben mit gets erfolgen! Solche Ein- und Ausgaben sollen nur im Hauptprogramm erfolgen!

(a) Definieren Sie in palindrom.rb eine Ruby-Funktion teste_palindrom(w). Diese Funktion soll einen booleschen Wert zurückgeben, der angibt, ob die Zeichenkette w ein Palindrom ist. Der Funktionsaufruf teste_palindrom("rentner") soll also beispielsweise zu true ausgewertet werden, der Aufruf teste_palindrom("frank") dagegen zu false.

(b) Definieren Sie in palindrom.rb eine weitere Ruby-Funktion erzeuge_palindrom(w), die aus einer Zeichenkette w ein Palindrom erzeugt und dieses zurückgibt. Dazu soll w in umgekehrter Reihenfolge an sich selbst angefügt werden. Sie können dazu die String-Methode reverse verwenden, die eine Zeichenkette umdreht. Der Funktionsaufruf erzeuge_palindrom("frank") soll also beispielsweise die Zeichenkette "frankknarf" zurückgeben.

(c) Schreiben Sie nun das Hauptprogramm in palindrom.rb. Es soll eine Zeichenkette (in Kleinbuchstaben) vom Benutzer einlesen und mit der Funktion teste_palindrom überprüfen, ob die Zeichenkette ein Palindrom ist. Das Ergebnis soll als Satz in der folgenden Form auf dem Bildschirm ausgegeben werden:

?rentner ist ein Palindrom. wenn ein Palindrom, hier zum Beispiel rentner, eingegeben wurden


?frank ist kein Palindrom! wenn kein Palindrom, hier zum Beispiel frank, eingegeben wurde


Im Fall, dass kein Palindrom eingeben wurde, soll zusätzlich mit der Funktion erzeuge_palindrom ein Palindrom aus der Eingabe erzeugt werden und auf dem Bildschirm ausgegeben werden. Für die Eingabe frank soll man also beispielsweise die folgende zusätzliche Ausgabe erhalten:
?Aber frankknarf ist ein Palindrom.

(d) Warum würde Ihre Funktion teste_palindrom die eingegebene Zeichenkette nicht mehr als Palindrom erkennen, wenn Sie nach der Eingabe den Methodenaufruf chop() weglassen? Erläutern Sie!


Meine Ideen:
Ich brauche dringend die vollständige Lösung(!!!) für diese Aufgabe, ich komme allein nicht mehr weiter und habe jetzt auch keine zeit mehr zur Verfügung. konnte weder im Internet noch in Büchern brauchbare Lösungsansätze finden. Vielen, vielen Dank!!!
 
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »