N88-BASIC、C、アセンブラで階乗 (2回目)

2022/1/21(金)
N88-BASIC、C、アセンブラで階乗 (2回目)
 
再帰
 
N88-BASIC、C、インラインアセンブラ(8086系)
で階乗を求めるプログラムを、再帰で作ってみます
 
関数やサブルーチン内から自身を呼出す
事を再帰呼出しといいます
 
 
C、インラインアセンブラは、
Cコンパイラーなどを準備して下さい
例、Microsoft Visual Studioなど
windowsのconsoleアプリは実行終了後
ウインドウが閉じてしまうので
最後にキー入力待ちを入れています
数値を入れてenterを押すと終了します
関数名に_sが付いているものは_sを
消した関数名でも良いのですが、
エラーが出る場合があるので、
環境に合わせて選択してください
 
 
階乗に関しては、
N88-BASIC、C、アセンブラで階乗(通常)
を参照して下さい
 
階乗の再帰定義
n! = n×(n-1)!
7! = 7×6!
   = 7×6×5×4×3×2×1 = 5040
 
PCの変数の桁には限界がありますので
ここでは大きな数の階乗には対応しません
nは1桁位と思って下さい
 
BASICにはローカル変数が無いので
配列で代用しています
 
Cは再帰の方がすっきりします
 
インラインアセンブラ(8086系)
ローカル変数をスタック(push pop)で
実現しています
(Cのローカル変数はアセンブラのスタック
で実現されています)
 
~.cのファイルはTab=4で書いています
(メモ帳はTab=8なのでズレます)
 
NL-BASICとblg~.zip
(fact002.bas、fact002.c、fact002asm.c)は
このブログ(以下のリンク)からダウンロードできます

https://ulprojectmail.blogspot.com
Readme.txtを読んで遊んで下さい












このブログの人気の投稿

NEWS

N88-BASICでゲーム (1回目)