Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   For-Schleifen in rekursive Funktion umwandeln (https://www.delphipraxis.net/82900-schleifen-rekursive-funktion-umwandeln.html)

holle 21. Dez 2006 16:25


For-Schleifen in rekursive Funktion umwandeln
 
Hallo,
ich möchte meine fünf ineinander verschachtelten for-Schleifen in eine Rekursive funktion umwandeln. Ich habe mir das Musterbeispiel mit der Fakultät schon mal angesehen, weiß aber nicht wie ich das bei meinem Problem umsetzen kann.

Code:
int i, j, k, l, m;
int anzahl = 100;

for (i = 0; i < anzahl; i++)
  for (j = 0; j < anzahl; j++)
    for (k = 0; k < anzahl; k++)
      for (l = 0; l < anzahl; l++)
        for (m = 0; m < anzahl; m++)
        {
          //anweisungen
        }
- marcel -

fwsp 21. Dez 2006 16:28

Re: For-Schleifen in rekursive Funktion umwandeln
 
es ist nicht sinnvoll alles rekursiv zu machen, oder manchmal auch nicht möglich, beispielsweise bei nem mehrdimensionalen array. in diesem fall würd ich es so lassen.
bei der rekursion möchtest du ein komplexes problem auf ein einfacheres zurückführen, das klappt aber nicht bei allen problemen.

holle 21. Dez 2006 16:53

Re: For-Schleifen in rekursive Funktion umwandeln
 
mein tutor meinte, dass es übersichtlicher sei, wenn ich alle schleifen zu einer zusammenfasse. ich dachte das geht mit einer rekursiven funktion. geht es anders?

- marcel -

ste_ett 21. Dez 2006 17:00

Re: For-Schleifen in rekursive Funktion umwandeln
 
Da es immer dieselbe Bedingung ist, kannst du eine Schleife erstellen und die Anweisungen darin ausführen lassen.

alzaimar 21. Dez 2006 17:09

Re: For-Schleifen in rekursive Funktion umwandeln
 
Zitat:

Zitat von fwsp
es ist nicht sinnvoll alles rekursiv zu machen,

ack
Zitat:

Zitat von fwsp
oder manchmal auch nicht möglich, ...

nack: Es ist immer möglich.
Zitat:

Zitat von fwsp
bei der rekursion möchtest du ein komplexes problem auf ein einfacheres zurückführen, das klappt aber nicht bei allen problemen.

Doch, es klappt immer. Nur es wird vielleicht bescheuert.

Cöster 21. Dez 2006 17:19

Re: For-Schleifen in rekursive Funktion umwandeln
 
Zitat:

Zitat von holle
mein tutor meinte, dass es übersichtlicher sei, wenn ich alle schleifen zu einer zusammenfasse.

Du könntest eine Schleife von 0 bis 99^5 laufen lassen und dann per div und mod rauskriegen, welche Werte i, j, k, l und m jetzt hätten. Das dauert aber länger und würde imho auch viel unübersichtlicher sein.

Zitat:

Zitat von fwsp
es ist nicht sinnvoll alles rekursiv zu machen, oder manchmal auch nicht möglich

Wie sähe so eine Schleife denn aus, die nicht rekursiv darstellbar ist?

brechi 21. Dez 2006 18:04

Re: For-Schleifen in rekursive Funktion umwandeln
 
Zitat:

Zitat von Cöster
Wie sähe so eine Schleife denn aus, die nicht rekursiv darstellbar ist?

Gibts nicht und hat alzaimar auch schon erwähnt.

µ-rek = prim-rek = while = turing berechenbar


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz