HP-10Cシリーズ
プログラミング > プログラム例

2 以上 69 以下の指定した整数の階乗を計算するプログラムの例を示す。
10C

行  キー      表示        コメント
01: 1      :        1 : スタックXに1を置数(DIGIT ENTRY) （スタックは上昇）
02: STO 0  :    44  0 : スタックXをレジスタ0に入れる(STORE)
03: R↓     :       33 : スタックYをスタックXに下降(ROLL DOWN)
04: STO* 0 : 44,20, 0 : スタックXにレジスタ0を乗算してレジスタ0に入れる(STORE*)
05: 1      :        1 : スタックXに1を置数(DIGIT ENTRY) （置数前のスタックXはスタックYに上昇）
06: -      :       30 : スタックYからスタックXを減算してスタックXに入れる （スタックは下降）
07: x=0    :    42 20 : スタックXがゼロならば次の行へ行き、ゼロでなければ次の行をスキップする
08: GTO 10 :    22 10 : 行10へ行く(GO TO)
09: GTO 04 :    22 04 : 行04へ行く(GO TO)
10: RCL 0  :    45  0 : レジスタ0からスタックXに入れる(RECALL) （スタックは上昇）
11: R/S    :       31 : プログラムを停止し、スタックXを表示する
11C

行   キー     表示        コメント
001: STO I :    44 25 : スタックXをレジスタI（インデックスレジスタ）に入れる(STORE)
002: 1     :        1 : スタックXに1を置数(DIGIT ENTRY) （スタックは上昇）
003: LBL 0 : 42,21, 0 : ラベル0を設置(LABEL)
004: RCL I :    45 25 : レジスタIからスタックXに入れる(RECALL) （リコール前のスタックXはスタックYに上昇）
005: *     :       20 : スタックYにスタックXを乗算してスタックXに入れる （スタックは下降）
006: DSE   :    42  5 : レジスタIから1を減じ、 その結果レジスタIがゼロ以下ならば次の行をスキップする
007: GTO 0 :    22  0 : ラベル0へ行く(GO TO)
008: R/S   :       31 : プログラムを停止し、スタックXを表示する
12C

行  キー      表示        コメント
01: 1      :        1 : スタックXに1を置数(DIGIT ENTRY) （置数前のスタックXはスタックYに上昇）
02: STO 0  :    44  0 : スタックXをレジスタ0に入れる(STORE)
03: R↓     :       33 : スタックYをスタックXに下降(ROLL DOWN)
04: STO* 0 : 44,20, 0 : スタックXにレジスタ0を乗算してレジスタ0に入れる(STORE*)
05: 1      :        1 : スタックXに1を置数(DIGIT ENTRY) （置数前のスタックXはスタックYに上昇）
06: -      :       30 : スタックYからスタックXを減算してスタックXに入れる （スタックは下降）
07: x=0    :    43 35 : スタックXがゼロならば次の行へ行き、ゼロでなければ次の行をスキップする
08: GTO 10 : 43,33,10 : 行10へ行く(GO TO)
09: GTO 04 : 43,33,04 : 行04へ行く(GO TO)
10: RCL 0  :    45  0 : レジスタ0からスタックXに入れる(RECALL) （スタックは上昇）
11: R/S    :       31 : プログラムを停止し、スタックXを表示する
12C Platinum (RPNモード)

行   キー       表示         コメント
001: 1       :         1 : スタックXに1を置数(DIGIT ENTRY) （置数前のスタックXはスタックYに上昇）
002: STO 0   :    44   0 : スタックXをレジスタ0に入れる(STORE)
003: R↓      :        33 : スタックYをスタックXに下降(ROLL DOWN)
004: STO* 0  : 44 20   0 : スタックXにレジスタ0を乗算してレジスタ0に入れる(STORE*)
005: 1       :         1 : スタックXに1を置数(DIGIT ENTRY) （置数前のスタックXはスタックYに上昇）
006: -       :        30 : スタックYからスタックXを減算してスタックXに入れる （スタックは下降）
007: x=0     :    43  35 : スタックXがゼロならば次の行へ行き、ゼロでなければ次の行をスキップする
008: GTO 010 : 43,33,010 : 行010へ行く(GO TO)
009: GTO 004 : 43,33,004 : 行004へ行く(GO TO)
010: RCL 0   :    45   0 : レジスタ0からスタックXに入れる(RECALL) （スタックは上昇）
011: R/S     :        31 : プログラムを停止し、スタックXを表示する
15C

行   キー     表示        コメント
001: STO 0 :    44  0 : スタックXをレジスタ0に入れる(STORE)
002: 1     :        1 : スタックXに1を置数(DIGIT ENTRY) （スタックは上昇）
003: LBL 1 : 42,21, 1 : ラベルを設置(LABEL)
004: RCL 0 :    45  0 : レジスタ0からスタックXに入れる(RECALL) （リコール前のスタックXはスタックYに上昇）
005: *     :       20 : スタックYにスタックXを乗算してスタックXに入れる （スタックは下降）
006: DSE 0 : 42, 5, 0 : レジスタ0から1を減じ、 その結果レジスタ0がゼロ以下ならば次の行をスキップする
007: GTO 1 :    22  1 : ラベル1へ行く(GO TO)
008: R/S   :       31 : プログラムを停止し、スタックXを表示する
16C

行   キー     表示        コメント
001: STO I :    44 32 : スタックXをレジスタI（インデックスレジスタ）に入れる(STORE)
002: 1     :        1 : スタックXに1を置数(DIGIT ENTRY) （スタックは上昇）
003: LBL 0 : 43,22, 0 : ラベル0を設置(LABEL)
004: RCL I :    45 32 : レジスタIからスタックXに入れる(RECALL) （リコール前のスタックXはスタックYに上昇）
005: *     :       20 : スタックYにスタックXを乗算してスタックXに入れる （スタックは下降）
006: DSZ   :    43 23 : レジスタIから1を減じ、 その結果レジスタIがゼロならば次の行をスキップする
007: GTO 0 :    22  0 : ラベル0へ行く(GO TO)
008: R/S   :       31 : プログラムを停止し、スタックXを表示する
このプログラムを実行するには、例えば下記のようにキー入力する。
GTO .00      プログラムカウンタを0行目にセット（10C及び12Cの場合）
      GTO .000     プログラムカウンタを0行目にセット（11C、12C Platinum及び16Cの場合）
      GTO CHS 000  プログラムカウンタを0行目にセット（15Cの場合）

      6            階乗を計算すべき整数を入力  （例： 6 ）
      R/S          階乗を計算し結果を表示  （例： 6! → 720 ）
プログラムが終了すると 720 という結果が表示される。
[P 1]~
1 2  この例ではループカウンタとして使用しているレジスタの小数部がゼロである。この場合DSE命令はDSZ命令と同様の動作をする。小数部がゼロでない場合のDSE命令の詳しい動作については取扱説明書を参照
HP-10c
HP-12C
HP-12c Platinum (2003年版)
HP-11c
HP-15c
HP-16c
DM-15CC