[新企画]Poke-Pro
新企画Poke-Pro
では、ポケコンで作成したプログラムを投稿していく企画です。シリーズとなります。BASIC言語に軸を置き、気まぐれでC言語にも触れていきます。
はじめに
こんにちは、bockringです。シリーズ投稿の2本目は、対数関数を拡張します。
目標と妥協点
まず目標です。以下の点を実装します。
- 対数関数の拡張(底を$10$と$e$以外に対応させる)
- 対話形式の入力
- 1行のコードで作成
逆に妥協点は、
-
logab(a,b)
関数への表示埋め込み
です。これらを踏まえて実装します。
実装
今回もBASICで作成します。1行コードなので、:
を多用します。
logab.TXT
10 CLS :PRINT "[logab(a,b) Calc]":PRINT "Input a(Base)":INPUT "[A]",A:PRINT "Input b":INPUT "[B]",B:PRINT "logab=",(LN B)/( LN A)
この様になります。これを通常のコードに噛み砕くと、以下の様になります。
logab.TXT
10 CLS
20 PRINT "[logab(a,b) Calc]"
30 PRINT "Input a(Base)"
40 INPUT "[A]",A
50 PRINT "Input b"
60 INPUT "[B]",B
70 PRINT "logab=",(LN B)/( LN A)
このようになります。非常に単純なコードですが、これで毎回公式に当てはめて入力する必要がなくなります。
実行結果は以下の様になります。
Shell
[logab(a,b) Calc]
Input a(Base)
5
Input b
3
logab=6.82606E-01
>
最終の桁数が物足りないですが、ANS
レジスタに保存されているので、実行画面でANS
キーを押すとフルの桁数の解が呼び出されます。この場合、6.826061945E-01
です。
改善点
- 特になし
といったところです。満足いってます。
おわりに
なかなか上手くいったと思います。これだけで対数が出せるなら使うと思います。
シリーズ記事の一覧