1. 概要
OptCalcはWindowsのコンソール画面上で使う、数式入力方式の関数電卓です。
OptCalcは、三次元グラフ表示アプリであるOptGraphの数式処理部分を関数電卓にしたものです。
元々はネットで公開されていた数式処理プログラムを参考にさせていただいたものですが、そのサイトはすでになくなってしまったようです。
$\quad$
動作環境:Windows11
$\quad$
ダウンロード方法などについては、こちらをご覧ください。
OptGraphのホームページ
計算例
2/2+2*(-2)/2-2
-3
5-2*4
-3
10/3+5*2
13.333333333333334
3*(2+3)-7/(3-5)
18.5
2**3.5
11.313708498984761
-2**2
-4
log10(1000)
3
sin(pi/3)
0.8660254037844386
sin(rad(60))
0.8660254037844386
2. 関数、演算子、記号定数および変数について
2.1 関数
- sin(x)$\quad:$正弦(サイン)
- cos(x)$\quad:$余弦(コサイン)
- tan(x)$\quad:$正接(タンジェント)
$\quad\quad$入力範囲:abs(cos(x)) >= 1E-14 - asin(x)$\quad:$逆正弦(アークサイン)
$\quad\quad$入力範囲: -1 <= x <= 1 - acos(x)$\quad:$逆余弦(アークコサイン)
$\quad\quad$入力範囲: -1 <= x <= 1 - atan(x)$\quad:$逆正接(アークタンジェント)
- sinh(x)$\quad:$双曲線正弦(ハイパボリックサイン)
- cosh(x)$\quad:$双曲線余弦 (ハイパボリックコサイン)
- tanh(x)$\quad:$双曲線正接(ハイパボリックタンジェント)
- abs(x)$\quad:$絶対値
- ceil(x)$\quad:$小数第一位を切り上げる
- floor(x)$\quad:$小数第一位を切り捨てる
- exp(x)$\quad:$eのx乗(eはネイピア数)
- log(x)$\quad:$底をeとするxの対数
$\quad\quad$入力範囲:x > 0 - log10(x)$\quad:$底を10とするxの対数
$\quad\quad$入力範囲:x > 0 - sqrt(x)$\quad:$平方根
$\quad\quad$入力範囲:x >= 0 - rad(x)$\quad:$度(度数法)をラジアン(弧度法)に変換。π/180を掛ける
- deg(x)$\quad:$ラジアン(弧度法)を度(度数法)に変換。180/πを掛ける
- fact(x)$\quad:$階乗(入力値の小数点以下の値は切り捨て)
$\quad\quad$入力範囲:x >= 0
2.2 単項演算子
- +a$\quad:$正
- -a$\quad:$負
- not$\quad a\quad:$否定(論理演算子)
2.3 二項演算子
- a ** b$\quad:$べき乗
- a * b$\quad:$乗算
- a / b$\quad:$除算
- a % b$\quad:$剰余
- a + b$\quad:$加算
- a - b$\quad:$減算
- a >= b$\quad:$以上(比較演算子)
- a > b$\quad:$大なり(比較演算子)
- a <= b$\quad:$以下(比較演算子)
- a < b$\quad:$小なり(比較演算子)
- a == b$\quad:$等しい(比較演算子)
- a != b$\quad:$等しくない(比較演算子)
- a$\quad$and$\quad$b$\quad:$論理積(論理演算子)
- a$\quad$or$\quad$b$\quad:$論理和(論理演算子)
2.4 演算子の優先順位
- 括弧()
- べき乗(**)
- 単項演算子(+、-、not)
- 乗算・除算・剰余(*、/、%)
- 加算・減算(+、-)
- 大小比較・等価比較・非等価比較(>=、>、<=、<、==、!=)
- 論理和・論理積(and、or)
2.5 記号定数
- PI = 3.1415926535897931
- EE = 2.7182818284590451
2.6 変数
変数は二文字の英数字が使えます。
二文字のうち、一文字目は必ず英字である必要があります。
変数使用例
a=3
3
b=7
7
a+b
10
c3=8
8
d2=6
6
c3*d2
48
2.7 予約変数
変数「an」には計算結果が格納されます
計算結果anの使用例
3*2
6
an+5
11
3. 問題点
数値計算の誤差による問題が存在します
問題点
sin(pi/6)
0.49999999999999994
sin(rad(30))
0.49999999999999994
0.1+0.2+0.3
0.60000000000000009
log(1000)/log(10)
2.9999999999999996
6/10
0.59999999999999998