# ともさんの演算帖 - 使い方 -

## ■ 本ソフトウェア紹介

- 「ともさんの演算帖」は入力欄に計算式を入力しEnterキーで計算するソフトウェアです

## ■ 基本操作

- 入力欄に計算式 `1+2` を入力して `Enterキー` で計算します
- 計算式の下に計算結果が表示されます
- 直前の結果は `ans` として再利用できます
- 入力欄に変数 `x=123` を入力して `Enterキー` で変数リストに登録できます
- 登録した変数 `x=123` は計算式 `5*x^2` に利用できます
- `関数メニュー` から関数を挿入できます
  また入力欄を `右クリック` すると同様の関数メニューが表示されます
- `関数登録` を行うことで独自関数を使用できます
- 計算式っぽくないもの(文字列)は `Enterキー` で改行します

- 入力欄を `右クリック` すると関数メニューが表示され入力欄のカーソル位置に関数を挿入できます

## ■ 基本演算子

基本演算子 | 説明 | 入力例 | 戻り値
`+` | 加算(足し算) | `1+2` | `3`
`-` | 減算(引き算) | `10-5` | `5`
`*` | 乗算(掛け算) | `2*11` | `22`
`/` | 除算(割り算) | `8/19` | `0.421052631578947`
`%` | 剰余(余り) | `15%4` | `3`
`^` | 累乗(べき乗) | `2^10` | `1024`

## ■ 三角関数

三角関数 | 説明 | 入力例 | 戻り値
`sin(x)` | 度(x)のサインを返します | `sin(30)` | `0.5`
`cos(x)` | 度(x)のコサインを返します | `cos(60)` | `0.5`
`tan(x)` | 度(x)のタンジェントを返します | `tan(45)` | `1`

- 度(x)は内部でラジアンに変換されます

## ■ 逆三角関数

逆三角関数 | 説明 | 入力例 | 戻り値
`asin(x)` | x(-1～1の範囲)のアークサインを返します | `asin(1)` | `90`
`acos(x)` | x(-1～1の範囲)のアークコサインを返します | `acos(1)` | `0`
`atan(x)` | xのアークタンジェントを返します | `atan(1)` | `45`

- 戻り値は内部で度に変換されます

## ■ 双曲線関数

双曲線関数 | 説明 | 入力例 | 戻り値
`sinh(x)` | xの双曲線サインを返します `sinh(x)=(e^x-e^(-x))/2` | `sinh(1)` | `1.1752011936438`
`cosh(x)` | xの双曲線コサインを返します `cosh(x)=(e^x+e^(-x))/2` | `cosh(1)` | `1.54308063481524`
`tanh(x)` | xの双曲線タンジェントを返します `tanh(x)=sinh(x)/cosh(x)` | `tanh(1)` | `0.761594155955765`

## ■ 逆双曲線関数

逆双曲線関数 | 説明 | 入力例 | 戻り値
`asinh(x)` | xの逆双曲線サインを返します `asinh(x)=ln(x+√(x^2+1))` | `asinh(5)` | `2.31243834127275`
`acosh(x)` | xの逆双曲線コサインを返します `acosh(x)=ln(x+√(x+1)*√(x-1))` | `acosh(5)` | `2.29243166956118`
`atanh(x)` | xの逆双曲線タンジェントを返します `atanh(x)=1/2*ln((1+x)/(1-x))` | `atanh(0.5)` | `0.549306144334055`

## ■ 指数・対数

指数・対数 | 説明 | 入力例 | 戻り値
`exp(x)` | e^x(e(自然対数の底)のx乗)の値を返します | `exp(5)` | `148.413159102577`
`log(x)` | log10(x)(xの10を底とする対数)の値を返します | `log(2)` | `0.301029995663981`
`logN(x,y)` | xを底とするyの対数を返します | `logN(10,2)` | `0.301029995663981`
`ln(x)` | xの自然対数を返します | `ln(10)` | `2.30258509299405`

## ■ 数値処理

数値処理 | 説明 | 入力例 | 戻り値
`abs(x)` | xの絶対値を返します | `abs(-512)` | `512`
`sign(x)` | xの符号(正(1)、負(-1)、ゼロ(0))を判定します | `sign(-512)` | `-1`
`round(x,y)` | xをy桁で四捨五入します(Excelと同じ仕様) | `round(12.34567,2)` | `12.35`
`floor(x,y)` | xをy桁の最小の整数に丸める(負の無限大への丸め) | `floor(-5.35,1)` | `-5.4`
`ceil(x,y)` | xをy桁の最大の整数に丸める(正の無限大への丸め) | `ceil(-5.35,1)` | `-5.3`
`int(x,y)` | xをy桁で切り捨てる(切り捨て) | `int(12.34567,2)` | `12.34`
`frac(x)` | xの少数部を返します | `frac(12.34567)` | `0.34567`

## ■ 数学

数学 | 説明 | 入力例 | 戻り値
`pi、π` | 円周率 | `pi、π` | `3.14159265358979`
`e` | 自然対数の底 | `e` | `2.71828182845905`
`sqrt(x)、√(x)` | xの平方根を返します | `sqrt(5)、√(5)` | `2.23606797749979`
`pow(x,y)` | xのy乗を返します `x^y`と同じ | `pow(5,2)` | `25`
`mod(x,y)` | x/yの余りを返します `x%y`と同じ | `mod(11,3)` | `2`
`angle(x,y)` | 原点(0,0)から座標(x,y)の角度を度で返します | `angle(100,30)` | `16.6992442339936`
`hypot(x,y)` | 底辺xと高さyから斜辺の長さを返します `√(x^2+y^2)`と同じ | `hypot(150,45)` | `156.604597633658`
`dist(x1,y1,x2,y2)` | 点(x1,y1)と点(x2,y2)の2点間距離を返します `√((x1-x2)^2+(y1-y2)^2)`と同じ | `dist(123,20,258,-123)` | `196.657061912355`
`dot(x1,y1,x2,y2)` | 平面ベクトル(x1,y1)と(x2,y2)の内積を返します `x1*x2+y1*y2`と同じ | `dot(24,98,37,125)` | `13138`
`fact(x)` | xの階乗を返します `fact(5)=x*(x-1)*(x-2)*(x-3)*(x-4)` | `fact(5)` | `120`
`comb(n,r)` | n個の中からr個を選ぶ組み合わせの数を返します `nCr=n!/(r!(n-r)!)` | `comb(5,2)` | `10`
`perm(n,r)` | n個の異なる要素からr個を選び 順序を考慮して並べる方法の数を返します `nPr=n!/(n-r)!` | `perm(5,2)` | `20`

## ■ 統計・集計

統計・集計 | 説明 | 入力例 | 戻り値
`sum(x,y,z,・・・)` | 合計を返します | `sum(1,2,3,4,5)` | `15`
`avg(x,y,z,・・・)` | 平均を返します | `avg(15,2,53,24,95)` | `37.8`
`max(x,y,z,・・・)` | 最大を返します | `max(1,2,3,4,5)` | `5`
`min(x,y,z,・・・)` | 最小を返します | `min(1,2,3,4,5)` | `1`
`prod(x,y,z,・・・)` | 積を返します | `prod(1,2,3,4,5)` | `120`
`var(x,y,z,・・・)` | 分散(散らばり度合い)を返します `1/3*{(x-平均)^2+(y-平均)^2+(z-平均)^2+・・・}`と同じ | `var(1,2,3)` | `0.666666666666667`
`std(x,y,z,・・・)` | 標準偏差を返します `√(1/3*{(x-平均)^2+(y-平均)^2+(z-平均)^2+・・・})`と同じ | `std(1,2,3)` | `0.816496580927726`
`median(x,y,z,・・・)` | 中央値を返します データを小さい順に並べて データ数が奇数の場合は中央の値 データ数が偶数の場合は中央の2つの値の平均 | `median(1,10,2,4,6)` | `4`

## ■ 度分秒・ラジアン変換

度分秒・ラジアン変換 | 説明 | 入力例 | 戻り値
`dms2deg(dms)` | 度分秒(◯d◯m◯s)を度に変換します | `dms2deg(30d25m10.2s)` | `30.4195`
`dms2rad(dms)` | 度分秒(◯d◯m◯s)をラジアンに変換します | `dms2rad(30d25m10.2s)` | `0.530920431810415`
`deg2dms(x)` | 度(x)を度分秒(◯d◯m◯s)に変換します | `deg2dms(30.4195)` | `30d25m10.2s`
`deg2rad(x)` | 度(x)をラジアンに変換します | `deg2rad(30.4195)` | `0.530920431810415`
`rad2dms(x)` | ラジアン(x)を度分秒(◯d◯m◯s)に変換します | `rad2dms(0.530920431810415)` | `30d25m10.2s`
`rad2deg(x)` | ラジアン(x)を度に変換します | `rad2deg(0.530920431810415)` | `30.4195`

## ■ 変数の使用

- `a=10` と入力し `Enterキー` で変数リストに登録されます
- 変数名は `半角英字` で始まる名前が使用できます
  ただし、関数名は使用できません
例：入力欄に `a=10` と入力し `Enterキー` を押します
入力欄に `a*2` と入力し `Enterキー` を押すと 計算結果は `20` になります
- 変数リスト内に登録されている変数をダブルクリックすると入力欄のカーソル位置に変数が挿入されます

## ■ 計算結果(ans)の使用

- 直前の計算結果は `ans` で使えます
  例：入力欄に `2+3` と入力し `Enterキー` を押します
  計算結果の `5` が `ans` に登録されます
  次に入力欄に `ans*2` と入力し `Enterキー` を押すと 計算結果は `10` になります

## ■ 関数登録

- `ファイル(F) - 関数登録(A)...` から独自関数を登録できます
- 登録した関数は `登録関数メニュー` から利用できます

## ■ クリア

- `入力・計算結果クリア`：入力・計算結果を消します
- `変数リストクリア`：変数リストを消します
- `全てクリア`：入力、結果、変数を全て消します

## ■ 前面表示 ON/OFF 切り替え

- 初期値は `OFF` です
- `前面表示をONにする` になっている場合は `現在OFF` です
- `前面表示をOFFにする` になっている場合は `現在ON` です
- 現在の状態はステータスバーで確認できます

## ■ 計算 ON/OFF 切り替え

- 初期値は `ON` です
- `計算をONにする` になっている場合は `現在OFF` です
- `計算をOFFにする` になっている場合は `現在ON` です
- 現在の状態はステータスバーで確認できます

## ■ ショートカット

- `Ctrl + Z` ：元に戻す
- `Ctrl + Y` ：やり直し
- `Ctrl + C` ：コピー
- `Ctrl + V` ：ペースト
- `Ctrl + A` ：全選択

## ■ 計算例

計算式 | 戻り値 | 説明
`sin(dms2deg(30d20m10.2s))` | `0.505072522204444` | 30度20分10.2秒を度(30.3361666666667)に変換し sin(30.3361666666667)を計算
`(3^2)^(-3)*3^3/9^(-2)` | `3` | 累乗の計算
`√(1/3*((1-avg(1,2,3))^2+(2-avg(1,2,3))^2+(3-avg(1,2,3))^2))` | `0.816496580927726` | 1,2,3の標準偏差 std(1,2,3)と同じ
`pi*3^2` | `28.2743338823081` | 半径3cmの円の面積(下と同じ)
`pi/4*6^2` | `28.2743338823081` | 直径6cmの円の面積(上と同じ)
`(5+8)*9/2` | `58.5` | 上底5cm、下底8cm、高さ9cmの台形の面積

## ■ 関数登録例

関数名 | 引数 | 式 | 説明
cirR | r | pi*r^2 | cirR(r)：半径rの円の面積
cirD | d | pi/4*d^2 | cirD(d)：直径dの円の面積
cone | r,h | (pi*r^2*h)/3 | cone(r,h)：半径r、高さhの円錐の体積
moment | w,l | w*l^2/8 | moment(w,l)：等分布荷重(w)、支間長(l)の単純梁のモーメント

## ■ メニュー

- `ファイル - 新規作成(N)` : 新しい演算帖を作成します(Ctrl+N)
- `ファイル - 開く(O)` : 演算帖を開きます(Ctrl+O)
- `ファイル - 上書き保存(S)` : 現在の演算帖を上書き保存します(Ctrl+S)
- `ファイル - 名前を付けて保存(A)...` : 現在の演算帖に名前を付けて保存します
ファイルの保存形式はテキスト(.txt)です
- `ファイル - 関数登録(F)...` : 独自関数を登録します
- `ファイル - 印刷プレビュー(P)...` : 現在の演算帖を印刷します(Ctrl+P)

- `ファイル - 終了(X)` : 演算帖を終了します
- `ヘルプ - 使い方(U)...` : 使い方を表示します
- `ヘルプ - バージョン情報(A)...` : バージョン情報を表示します

## ■ 本ソフトウェアの使用

- 本ソフトウェアはフリーウェアです
- どなたでも無料で使用できます
- 商用・非商用を問わず無料で使用できます

## ■ 転載・再配布

- 転載及び配布は自由です
  ただし内容を改変して配布することは禁止します

## ■ サポート

- 本ソフトウェアは無保証で提供されます
- 不具合の修正や機能追加などの対応について作者は義務を負いません

## ■ セキュリティソフトの警告

- 本ソフトウェアはユーザーのデータを保存するため一部のセキュリティソフト
  （Norton、Microsoft Defender など）のランサムウェア保護機能により
  「ファイルを保護しました」などの警告が表示される場合があります
  その場合は 本ソフトウェア(MyCalc2.exe) を「許可されたアプリ」に追加してください
- 本ソフトウェアはネットワーク通信や外部送信は行いません

## ■ 注意事項

- 本ソフトウェアの計算は `約15桁の精度` で行われます
- 小数計算や非常に大きな数値では丸め誤差が生じる場合があります
- 計算不能な場合はエラーを表示します

## ■ 著作権

- 本ソフトウェアの著作権は作者に帰属します

## ■ 更新履歴

日付 | バージョン | 内容
2026/02/23 | `1.0.0` | 初版　非公開
2026/03/11 | `2.0.0` | ユーザーインターフェース及び各種機能等の刷新