「calcarea」数式計算を行うターミナル風のDashboardウィジェット | あわあわのブログ

あわあわのブログ

iPhone脱獄のいろいろ

ターミナル風のデザインの数式計算を行うDashboardウィジェットを作りました。

ダウンロードはココから
calcarea.wdgt
バージョン 1.0


<スクリーンショット>

calcarea_1
calcarea_1 posted by (C)あわあわ

calcarea_2
calcarea_2 posted by (C)あわあわ

calcarea_3
calcarea_3 posted by (C)あわあわ


<使い方>

主な使い方はテキストエリアに数式を入力して改行すると答えを表示します。#をテキストの前に付け
て入力することでいろいろな設定ができます。使う頻度の多いものをいくつか紹介します。

#bc
このウィジェットにはbcを使う方法とevalを使う方法の2つの計算システムがあります。このコマンドは計算システムをbcに切り替えます。

#eval
計算システムをevalに切り替えます。

#tool
いま選択している計算システムを表示します。

#clear
テキストエリアの内容をクリアします。

#radian
sin()、cos()、tan()、atan()の入力の単位をラジアンに切り替えます。

#degree
入力の単位をディグリーに切り替えます。

#multiline
複数行の数式を入力する時に使います。キーボードのescボタンを押す事で数式を実行します。この時の=は代入を意味します。スクリーンショットの#multiは#multilineのショートコマンドです。

#help
いろいろなヘルプの目次、表示オプションが表示されます。すべてのヘルプを表示させるには、#help -aと入力します。ヘルプには詳しいコマンド、ショートコマンド、関数、などがのっています。

#export
テキストエリアの内容をデスクトップにテキストファイルとして出力します。ファイル名には日付時間になります。下のスクリーンショットは上から3つ目のスクリーンショットを出力したものです。

calcarea_4
calcarea_4 posted by (C)あわあわ


<仕様>

evalを使った時とbcを使った時の比較をします。

<1>123456789123456789*123456789123456789
eval:1.5241578780673678e+34
bc:15241578780673678515622620750190521(より正確)

evalは桁数が多いと指数表示になります。

<2>(12*atan(1/49)+32*atan(1/57)-5*atan(1/239)+12*atan(1/110443))*4
eval:3.141592653589793
bc:3.1415926535897932384626433832795028841752(より正確)

evalは小数点以下の桁数が多いと四捨五入されます。bcでも灰色の部分が間違っていますが、いまはscale=40だったのでscale=100などにすればより精度が増します。ただしscaleを増やすと計算に時間がかかり、応答しなくなる可能性がありますので注意して下さい。計算中はbcのみアクティビティインジケータが動きます。

calcarea_5
calcarea_5 posted by (C)あわあわ

<3>0.9-0.3*3
eval:1.1102230246251565e-16(誤)
bc:0(正)

evalは2進10進変換で誤差が発生します。

<4>evalはJavaScriptを書くことができます。例としてこんな数式もOKです。
for(i=3;i<=100;i+=2)
{
k=0;
for(j=3;j<=sqrt(i);j+=2)
{
if(i%j==0)
{
k=1;
break;
}
}

if(k==0) p=i;
}

p;

eval:97(正)
bc:23(誤)

これは100以下の素数で最大なものを出力します。一応bcでもcライクな記述ができます。


ダウンロードはココから
calcarea.wdgt
バージョン 1.0