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