Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   rekursive funktion (https://www.delphipraxis.net/12698-rekursive-funktion.html)

maxfromgermany 2. Dez 2003 16:28


rekursive funktion
 
also, ich bin ein ziehmlicher neuling in delphi :) deswegen brauch ich ein bissle hilfe ...
ich soll also eine rekursive funktion erstellen. gegeben habe ich folgendes:

Delphi-Quellcode:
Fak=1
if n=1 then Fak
else Fak=n*Fak(n-1)
dann soll ich einmal n=4 einsetzen und dann erklären was passiert, und dann soll ich noch ne for schleife zu dem ganzen schreiben. habe allerdings wirklich keine ahnung wie das gehen soll! kann mir da bitte jemand helfen?

Treffnix 2. Dez 2003 16:32

Re: rekursive funktion
 
Irgendwas fehlt in der 2. Zeile des Beispielcodes.

maxfromgermany 2. Dez 2003 16:35

Re: rekursive funktion
 
bitte entschuldige wenn ich keine ahnung davon habe, aber was kann denn da noch fehlen, damit es funktioniert?

himitsu 2. Dez 2003 16:35

Re: rekursive funktion
 
Ein Hallöle von http://www.FrankNStein.de/Smiley-Wolke.gif und ein herzliches Willkommen in der DP-Gemeinde,

nicht nur in der 2. Zeile.

Von Recursieven Funktionen sehe ich auch nichts - könnte mir zwar was vorstellen, aber bei fremden Hausaufgaben ist das was anderes.

[ADD]
Am Besten, du zeigst mal die gesamte Ausgabenstellung.

http://www.delphipraxis.net/images/common/divider.jpg
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif

mirage228 2. Dez 2003 16:36

Re: rekursive funktion
 
soll das ne berechnung von ! (Fakultät) werden?

mfG
mirage228

Treffnix 2. Dez 2003 16:38

Re: rekursive funktion
 
Also dem fak wird ja gar kein Wert zugewiesen wenn n = 1 ist. Was genau zugewiesen werden muss, kann ich dir auch nicht sagen, da ich ja nicht weiss, was du bezweckst.

[OT] Sagt dir 44557 was? [/OT]

maxfromgermany 2. Dez 2003 16:42

Re: rekursive funktion
 
lol, Q89 ... :) deine omni?

es geht darum, dass wir in info ne klausur schreiben und unser lehrer ne ziehmliche flsche im erklären ist :) und der andere kurs hat zufällig die selbe klausur geschrieben die wir morgen schreiben, und das sind alle informationen die ich dazu habe...

maxfromgermany 2. Dez 2003 16:47

Re: rekursive funktion
 
also nochmal :)


Delphi-Quellcode:
if n=1 then Fak:=1
else Fak:=n*Fak(n-1)
dann sollen wir wohl n=4 als probe einsetzen ...

himitsu 2. Dez 2003 16:49

Re: rekursive funktion
 
Dann ist das wohl so richtig (vermutlich):
Delphi-Quellcode:
Function Fac(N: Integer = 1): Integer;
  Begin
    Fak := 1;
    If N = 1 Then Fak
    Else Fak := N * Fak(N - 1);
  End;
Oder so:
Delphi-Quellcode:
Function Fac(N: Integer): Integer;
  Begin
    If N = 1 Then Fak := 1
    Else Fak := N * Fak(N - 1);
  End;
Das Problem ist jetzt nur, das es für beides eine andere Lösung gibt.

http://www.delphipraxis.net/images/common/divider.jpg
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif

maxfromgermany 2. Dez 2003 16:51

Re: rekursive funktion
 
und wie kann ich da jetz ne for schleife einbringen?

scp 2. Dez 2003 16:58

Re: rekursive funktion
 
Zitat:

Zitat von maxfromgermany
und wie kann ich da jetz ne for schleife einbringen?

Kommt drauf an, was die for-Schleife bewirken soll.

scp 2. Dez 2003 17:02

Re: rekursive funktion
 
Zitat:

Zitat von himitsu
Dann ist das wohl so richtig (vermutlich):
Delphi-Quellcode:
Function Fac(N: Integer = 1): Integer;
  Begin
    Fak := 1;
    If N = 1 Then Fak
    Else Fak := N * Fak(N - 1);
  End;

Führt das nicht zu einer Endlos-Schleife?

maxfromgermany 2. Dez 2003 17:03

Re: rekursive funktion
 
was kann die for schleife denn in diesem fall alles bewirken

maxfromgermany 2. Dez 2003 17:07

Re: rekursive funktion
 
Zitat:

Zitat von scp
Führt das nicht zu einer Endlos-Schleife?

es soll ja n=4 eingesetzt werden. aso käm dann raus

Delphi-Quellcode:
Else Fak := 4 * Fak(4 - 1);
was 12 sein sollte

himitsu 2. Dez 2003 17:09

Re: rekursive funktion
 
:oops: Ups scp - Ich habs bloß versuch zu erweitern, was oben Stand und nicht auf eine endlosrecursion geprüft:

dan wird also das zweite wohl die Richtige Funktion sein:
Delphi-Quellcode:
Function Fac(N: Integer): Integer;
  Begin
    If N = 1 Then Fak := 1 
    Else Fak := N * Fak(N - 1);
  End;
http://www.delphipraxis.net/images/common/divider.jpg
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif

scp 2. Dez 2003 17:10

Re: rekursive funktion
 
Alles! :-) Eine for-Schleife wiederholt einen Code-Abschnitt innerhalb eines vrgegebenen Bereiches.
Delphi-Quellcode:
for i := 1 to 5 do
  begin
    // Hier Code
  end;
Hier z.B. wird der Abschnitt zwischen begin und end; fünfmal durchlaufen, die Variable i enthält dabei die aktuelle Zahl des Durchlaufs.

maxfromgermany 2. Dez 2003 17:13

Re: rekursive funktion
 
super, dankesehr :)

Christian Seehase 2. Dez 2003 19:29

Re: rekursive funktion
 
Moin Zusammen,

man sollte vielleicht noch berücksichtigen, dass 0! = 1 ist.

APP 2. Dez 2003 20:24

Re: rekursive funktion
 
Hallo Max,
Zitat:

Zitat von maxfromgermany
und wie kann ich da jetz ne for schleife einbringen?

bedenke, mit der FOR-Schleife machst Du die Rekursion überflüssig, möchtest Du das?


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:21 Uhr.

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