hp 35s プログラムメモ
hp35sでのプログラムでのポイントをメモ。
以下は全てRPNモードでの記述です。
スタックの値を引数に使用する
Xレジスタに半径値がある場合の円の面積を求める。
A001 LBL A # プログラム名(ラベル) A002 x^2 # xの2乗 [青][√X] A003 π A004 × # 掛ける A005 RTN # Return(終了)
プログラム中で入力と出力を行う
円の面積を求める。
A001 LBL A A002 INPUT R # 変数Rに数値入力、最後に[R/S]入力 A003 RCL R # 変数Rの値をXレジスタにコピー(Recall) A004 x^2 A005 π A006 × A007 STO S # Xレジスタの値を変数Sにコピー(Store) A008 VIEW S # 変数Sの値を表示 A009 RTN
Recall/Store時の四則演算(通常の計算時も同様)
Recall時(X = X - A)
A001 LBL A A002 10 A003 STO A # A = 10 A004 100 # X = 100 A005 RCL- A # X = X - A A006 RTN # => 90
Store時(A = A - X)
A001 LBL A A002 10 A003 STO A # A = 10 A004 100 # X = 100 A005 STO- A # A = A - X A006 VIEW A # => A = -90 A006 RTN #
メッセージ表示
表示中はプログラムが中断するので[R/S]押下で継続実行する。
A001 LBL A A002 SF10 # フラグ10セット # [黄][↑][1][・][0] A003 MSG # メッセージ文字 # [EQN][RCL][1/x](M)[RCL][8](S)[RCL][i](G)[ENTER] A004 CF10 # フラグ10クリア # [黄][↑][2][・][0] A005 RTN
サブルーチン
A001 LBL A # Xレジスタの値を10倍にする A002 ENTER A003 10 A004 × A005 RTN B001 LBL B # Xレジスタの値を100倍にする B002 XEQ A001 # サブルーチンコール B003 XEQ A001 # サブルーチンコール B004 RTN
条件分岐
条件式の結果がTrueの場合次行を実行、Falseの場合はスキップする。
入力した2個の数値が同じなら「SAME」、異なるなら「DIFF」と表示する。
A001 LBL A A002 INPUT A A003 INPUT B A004 RCL A A005 RCL B A006 SF10 A007 x=y? # [黄][MODE](x?y)[6] A008 GTO A011 A009 DIFF # メッセージ A010 GTO A012 A011 SAME # メッセージ A012 CF10 A013 RTN
カウンタループ
±ccc.eeedd ±ccc : 開始値および現在値 eee : 最終値(省略時は0) dd : 像現値(省略時は1) DSE : 現在値を増減値で減算する 現在値>最終値なら次行を実行する、そうれなければスキップ ISE : 現在値を増減値で加算する 現在値<最終値なら次行を実行する、そうれなければスキップ
1から入力値(整数)までの合計を求める
A001 LBL A A002 0 A003 STO S # 合計 A004 INPUT C # 開始値 A005 RCL C A006 0.00001 # 最終値、減値 A007 STO+ C # C = 開始値.00001 A008 RCL C A009 INTG # 現在値取得 # [黄][TAN](INTG)[4] A010 STO+ S # S = S + 現在値 A011 DSE C A012 GTO A008 # 現在値>0ならジャンプ A013 VIEW S A014 RTN
変数への間接アクセス
変数i. jに番号を入力し(i). (j)でその番号の変数やメモリにアクセスする。
index no. 変数名 -26 Z -25 Y … … -1 A 0 無名 1 無名 … … 800 無名
間接番号でデータを書き込み、変数名で読み出す。
A001 LBL A A002 -26 A003 STO I # I = -26(Z) A004 -25 A005 STO J # J = -25(Y) A006 100 A007 STO (I) # (I) = 100 A008 200 A009 STO (J) # (J) = 200 A010 VIEW Z # => Z = 100 A011 VIEW Y # => Y = 200 A012 RTN