Der Nachfolger des WDR-Computerclub mit Wolfgang Back und Wolfgang Rudolph - ...und immer ein Bit übrigbehalten!


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Rekursion verdeutlicht Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 24.08.2020 19:57)
 Als Antwort auf Re: Demoprogramm: Fakultätsberechnung mittels Rekursion von Dietmar - 24.08.2020 16:24
Dietmar nutzt:  Open-Micro, Open-Mini, Open-Midi, Open-Macro, Open-Maxi, Open-Mini Station
Hallo Joachim,

setze doch einmal ein paar PRINT-Befehle mit Kommentaren in die Subroutine, wie hier geschehen:

FUNCTION factorial(n)
  ?
  ?"factorial(";n;")"
  IF n<=1 THEN
    ?"RETURN 1"
    RETURN 1
  ELSE
    SUB pw,1
    @pw=n
    ?"pw="pw;" @pw="@pw
    w=factorial(n-1)*@pw
    ?"w="w;" @pw="@pw
    ADD pw,1
    RETURN w
  END IF
END FUNCTION

Dann werden im Terminalprogramm die folgenden Ausgaben angezeigt:

Die Fakultät von 7 ist
factorial( 7)
pw= 254 @pw= 7

factorial( 6)
pw= 253 @pw= 6

factorial( 5)
pw= 252 @pw= 5

factorial( 4)
pw= 251 @pw= 4

factorial( 3)
pw= 250 @pw= 3

factorial( 2)
pw= 249 @pw= 2

factorial( 1)
RETURN 1
w= 2 @pw= 2
w= 6 @pw= 3
w= 24 @pw= 4
w= 120 @pw= 5
w= 720 @pw= 6
w= 5040 @pw= 7
 5040.

Ich hoffe, dadurch wird ersichtlich, wie hier in diesem Programm die Rekursion abläuft.

Übrigens ist das Fragezeichen ("?") die Abkürzung für PRINT. Das unterstützt OCBASIC als Anlehnung an BASIC-Dialekten, die früher auf Homecomputern liefen.

Viel Spaß und Erfolg mit den OM-Mikrocontrollern!

Dietmar

Meine Homepage: http://ccintern.dharlos.de

 Antwort schreiben

Bisherige Antworten:

Re: Rekursion verdeutlicht (von Joachim - 24.08.2020 20:27)