Rekursive Funktionen
-
Th69 schrieb:
EOP: Ruf einfach mal die Funktion 2x hintereinander auf...
@Th69: Wieso sollte ich?
Hab schon hustbaer gesagt, daß ich nur für etwas Spaß und Unterhaltung sorge, damit nicht alles so dröge und todernst in diesem Forum ist.
Wenn man nicht das Komplettwerk von Leo Tolstoi eingibt, sollte es auch klappen. Bei "Hello World!" klappt es jedenfalls.
Ansonsten bin ich ein profi für "smashing the stack for fun and profit". Sowohl das als auch programmieren ist für mich nur noch ein Zeitvertreib mit Lustgewinn. Bin Rentner. :p
-
Dann kommentiere deine Beiträge bzw. Code als "just for fun" oder "offtopic".
Leider ist es so, daß viele Leute einfach Code aus Foren 1:1 übernehmen, ohne den Hintergrund zu kennen (geschweige denn das gesamte Thema durchlesen)...
-
Außerdem bin ich mir nie so sicher, ob deine vermeintlichen Scherzlösungen wirklich Scherze sind, oder du dir der Probleme und besseren Lösungen eventuell gar nicht bewusst bist. Sie sehen so aus wie schlechter Code, nicht wie Scherze. Eine Scherzlösung müsste hier mMn mindestens Template-Metaprogrammierung benutzen, um zur Compilezeit einen statischen Codepfad für alle Anfangslängen zwischen 0 und 1000 erzeugen.
-
-
Scherz hin oder her.
Wer ausser mir hat eine Funktion geliefert, die alle Anforderungen erfüllt? Richtig - niemand.EDIT:
WAS mich auch immer zum Ziel führt ist für mich in Ordnung.
-
EOP schrieb:
Scherz hin oder her.
Wer ausser mir hat eine Funktion geliefert, die alle Anforderungen erfüllt? Richtig - niemand.Soso
EOP schrieb:
WAS mich auch immer zum Ziel führt ist für mich in Ordnung.
Ahja... machste auch mit ner Schrotflinte Getränkeflaschen auf?
-
DocShoe schrieb:
Ahja... machste auch mit ner Schrotflinte Getränkeflaschen auf?
Nö, aber mit der Tischkante oder einem zusammengefalteten Geldschein oder meinem Feuerzeug.
-
EOP schrieb:
Scherz hin oder her.
Wer ausser mir hat eine Funktion geliefert, die alle Anforderungen erfüllt? Richtig - niemand.EDIT:
WAS mich auch immer zum Ziel führt ist für mich in Ordnung.Lachhaft. Wenn Du den Rat von th69 befolgt hättest, würdest du sehen, dass dein programm Schrott ist. Einfach mal
if( str.length() ) rek(str);
zusätzlich in dein main() einfügen, um deine geniale Funktion zweimal aufzurufen.
-
EOSchrott schrieb:
Lachhaft. Wenn Du den Rat von th69 befolgt hättest, würdest du sehen, dass dein programm Schrott ist. Einfach mal
if( str.length() ) rek(str);
zusätzlich in dein main() einfügen, um deine geniale Funktion zweimal aufzurufen.
Normalerweise beantworte ich keine posts von unregistrierten Gestalten, aber machen wir mal eine Ausnahme, du kleiner Dummkopf:
Diese Funktion ist weder dafür entworfen noch dafür gedacht, sie mehrfach hintereinander aufzurufen. Rekursiv funktioniert sie.
Liefere was Besseres ab. Bis dahin alles Gute für dich.
-
Anscheinend haben alle mögliche Leute Spaß an EOP-bashing. Seis drum.
Liefert erstmal ein Programm, das die beiden Anforderungen erfüllt. Danach reden wir weiter.
- rekursiv
- nur der string soll übergeben werdenUnd jetzt macht mal ihr superschlauen Helden. Freue ich schon auf alle Antworten.
-
Ich weiß wirklich nicht, ob Troll oder tatsächlich dumm. Die allererste Antwort im Thread liefert eine genaue Bauanleitung für solch ein Programm. Das ist eine Aufgabe, die blutige Anfänger beantworten sollen und können. Kein Grund, andere Leute Dummköpfe zu nennen, wenn sie deine Schrottprogramme (oder "Scherzprogramme", wie du sie nennst) als solche zerreißen.
-
SeppJ schrieb:
Eine viel einfachere, rekursive Definition einer umgedrehten Zeichenfolge ist: Eine umgedrehte Zeichenfolge ist leer, falls das Original leer ist. Ansonsten ist sie das letzte Zeichen der Originalfolge plus die Umdrehung aller Zeichen der Originalfolge vor dem letzten Zeichen.
Wie du siehst, muss da nirgendwo gezählt werden, alles geht über Zeichenfolgen und ihre Längen.
Bei allem Respekt für dich, SeppJ - zeige es mir.
Und Dummköpfe benamse ich solange als Dummköpfe bis das Gegenteil bewiesen ist.Weshalb gibt es denn das Sprachkonstrukt der lokalen static Variablen?
Ich weiß zumindest wie man es konstruktiv, zur Freude aller Beteiligten und gut für 2-3 Seiten Kommentare einsetzt.Wenn ich dran erinnern darf:
EOP schrieb:
Zur Not benutze ich eine fiese lokale static Variable.
Wie es scheint bin ich mir also durchaus bewusst, was ich mache.
-
EOP schrieb:
SeppJ schrieb:
Eine viel einfachere, rekursive Definition einer umgedrehten Zeichenfolge ist: Eine umgedrehte Zeichenfolge ist leer, falls das Original leer ist. Ansonsten ist sie das letzte Zeichen der Originalfolge plus die Umdrehung aller Zeichen der Originalfolge vor dem letzten Zeichen.
Bei allem Respekt für dich, SeppJ - zeige es mir.
Ich will ja jetzt nicht auch noch auf dich einhauen, aber das ist doch jetzt echt blöd.
std::string rek(const std::string& s) { // Eine umgedrehte Zeichenfolge ist leer, falls das Original leer ist. if(s.length() == 0) return ""; // Ansonsten ist sie das letzte Zeichen der Originalfolge std::string a {s.at(s.length()-1)}; //substr oder sowas nicht erlaubt // plus die Umdrehung aller Zeichen der Originalfolge vor dem letzten Zeichen. std::string b {s, 0, s.length()-1}; //substr oder sowas nicht erlaubt return a + rek(b); }
-
EOP schrieb:
Und Dummköpfe benamse ich solange als Dummköpfe bis das Gegenteil bewiesen ist.
Dann bist du jetzt ganz offiziell der Forenclown, bis zum Beweis des Gegenteils.
-
Hier noch eine Version in einer funktionalen Sprache (das ja keine [globalen] Variablen kennt) - denn das ist nun wirklich ein Allerweltsproblem:
rev xs = if null xs then xs else rev (tail xs) ++ [head xs]
oder mittels pattern matching
rev [] = [] rev (x:xs) = rev xs ++ [x]
(hier mittels Haskell)
@EOP: Und Jockelx hat dies eben 1:1 nach C++ übersetzt - ganz easy!
-
EOP schrieb:
Weshalb gibt es denn das Sprachkonstrukt der lokalen static Variablen?
Ganz sicher nicht, um damit Funktionen zu kreieren, die man nur ein Mal aufrufen kann/darf!
-
SeppJ schrieb:
EOP schrieb:
Und Dummköpfe benamse ich solange als Dummköpfe bis das Gegenteil bewiesen ist.
Dann bist du jetzt ganz offiziell der Forenclown, bis zum Beweis des Gegenteils.
Na wo ist der Beweis deiner Behautung, daß das ruckzuck geändert werden könnte?
Bestehe immer noch darauf Dummköpfe als solche zu benennen. Bin mir nicht sicher, ob ich dich in die Lister nicht einrezhe.
-
SeppJ schrieb:
EOP schrieb:
Und Dummköpfe benamse ich solange als Dummköpfe bis das Gegenteil bewiesen ist.
Dann bist du jetzt ganz offiziell der Forenclown, bis zum Beweis des Gegenteils.
Na wo ist der Beweis deiner Behauptung, daß das ruckzuck geändert werden könnte?
Bestehe immer noch darauf, Dummköpfe als solche zu benennen. Bin mir noch nicht ganz sicher, ob ich dich in die Liste einreihe oder doch nicht. Au, der war fies.
-
-
Naja, da würde ich jetzt nicht widersprechen, daß ich ein Narzisst bin.
Aber meine Sexualpartner und/oder Kinder zu missbrauchen würde ich doch vehement bestreiten.Man könnte den string noch nach und nach von hinten nach vorne schreddern bis die Länge Null ist, aber ob das eleganter ist ist eine andere Frage.