0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Poke-Pro]PC-G850のBASICで対数関数を拡張する

Posted at

[新企画]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です。

改善点

  • 特になし

といったところです。満足いってます。

おわりに

なかなか上手くいったと思います。これだけで対数が出せるなら使うと思います。


シリーズ記事の一覧


0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?