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 

 Demoprogramm: Fakultätsberechnung mittels Rekursion Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 23.08.2020 17:37)
Dietmar nutzt:  Open-Micro, Open-Mini, Open-Midi, Open-Macro, Open-Maxi, Open-Mini Station
' ===========================================================================
' Fakultät rekursiv berechnen. Es wird ein Softwarestack verwendet.
' In OCBASIC 1.11a für Open-Maxi von Dietmar Harlos am 22. August 2020
' ===========================================================================

' Die Fakultät ist in der Mathematik eine Funktion, die einer natürlichen
' Zahl das Produkt aller natürlichen Zahlen (ohne Null) kleiner oder gleich
' dieser Zahl zuordnet. Sie wird durch ein dem Argument nachgestelltes
' Ausrufezeichen ("!") abgekürzt.

' https://de.wikipedia.org/wiki/Fakult%C3%A4t_(Mathematik)

' An dieser Stelle möchte ich mich bei Norbert Klein und bei Dirk von "das
' |_ Team" für ihre Unterstützung bedanken.

' --- Definitionen ----------------------------------------------------------

INCLUDE "omax.def"       'Definitionen für die Open-Maxi

DIM ^pw WORD             'Zeiger auf ein Word im USER-RAM definieren
DIM n WORD               '16-Bit-Integerzahl definieren
DIM w WORD               '16-Bit-Integerzahl definieren als temporäres Word

' --- Hauptprogramm ---------------------------------------------------------

PrintSpc=ON              'Bei PRINT dezimale Zahlen mit führendem Leerzeichen ausgeben
End2Host=ON              'Bei Programmende (siehe END) gleich in den Host-Modus wechseln

pw=255                   'Stack initialisieren (letztes Element bleibt frei)

PRINT "Die Fakultät von 7 ist";factorial(7);"."

'?pw

END                      'Programm beenden. Wegen End2Host=ON in den Host-Modus gehen

' --- Subroutinen und Funktionen --------------------------------------------

' Fakultät rekursiv berechnen. Es wird ein Softwarestack verwendet.

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

' --- Programmende ---------------------------------------------------------


Passender Link: Infosite zu den OM-Mikrocontrollern

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

 Antwort schreiben

Bisherige Antworten:

Re: Demoprogramm: Fakultätsberechnung mittels Rekursion (von Dietmar - 23.08.2020 22:59)
    Re: Demoprogramm: Fakultätsberechnung mittels Rekursion (von Joachim - 24.08.2020 16:01)
        Re: Demoprogramm: Fakultätsberechnung mittels Rekursion (von Dietmar - 24.08.2020 16:24)
            Rekursion verdeutlicht (von Dietmar - 24.08.2020 19:57)
                Re: Rekursion verdeutlicht (von Joachim - 24.08.2020 20:27)