![]() ![]() INFO - FAQ - CC2-Forum - CCPro-Forum |
|
' =========================================================================== ' 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 |