Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Lösung Ruby-Aufgabe » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Der letzte Beitrag
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!!!