◆桁あふれなし四則演算セット

「◆桁あふれなし四則演算セット」の編集履歴(バックアップ)一覧はこちら

◆桁あふれなし四則演算セット - (2010/08/02 (月) 12:51:06) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

**情報 ・作者名:じゅゐ ・著作権:放棄(でも参考にしたりするときはコメントが欲しいです) ・一言 :桁あふれなし、少数OK、負の数OKというふうに開発していったせいでかなり長いプログラムになってしまいました。でもただ単に長ったらしいだけではありません。長さだけの機能はあります! (ただ良いプログラムは簡潔で誰が見ても分かりやすいものだとどこかで読んだような気がします。作者自身、時々この動作はいったい何をしているんだというのがあるぐらいですが、よろしくお願いします。あれ、一言じゃなくなってる。) **解説 四則演算を桁数制限なし、少数OK、マイナスOKで計算することができます。 依存する形で少数をきちんとした書式に直す少数処理、       (例:0042.19500→42.195) なでしこでは大小を判断できない様な大きな数にも対応する大小判定 が一緒に梱包されています ・割り算 ”割られる数”と、”割る数”を、”小数点以下~桁”まで 与えられた2数を設定した小数点以下の桁までの商を桁数無制限に演算して返す ※内部依存――引き算、掛け算、小数処理 ・掛け算 ”掛けられる数”と、”掛ける数”を 与えられた2数の積を桁数無制限に演算して返す ※内部依存――足し算、小数処理、大小判定 ・引き算 ”引かれる数”と、”引く数”を 与えられた2数の差を桁数無制限に演算して返す ※内部依存――足し算、小数処理 ・足し算 ”足される数”と、”足す数”を 与えられた2数の和を桁数無制限に演算して返す ※内部依存――引き算、小数処理 ・小数処理 ”処理するもの”を 与えられた数を通常の数字表記に直して返す ・大小判定 ”一つ目の数”と、”二つ目の数”を 与えられた2数を、一つ目の数が大きかったら1、二つ目だったら2、同じだったら0を返す **サンプルプログラム 123456789012345678901234567890と123456789012345678901234567890を足し算 それを表示 >246913578024691357802469135780と表示される 111111111と111111111を掛け算 それを表示 >12345678987654321と表示される -12345678901234567.8901234567890と12345678901234567.8901234567890を引き算 それを表示 >-24691357802469135.7802469135780と表示される 22と7を30まで割り算 それを表示 >3.142857142857142857142857142857と表示される **本体 *割り算(数1と、数2を、割り算制限まで) 割一とは文字列=空 総当たりとは文字列=空 あまりとは文字列=空 割結とは文字列=空 桁とは文字列=空 割一¥1=数1から1文字左部分。 割一¥2=数2から1文字左部分。 もし、割一¥1=「-」ならば 数1の1から1文字削除 もし、割一¥2=「-」ならば 数2の1から1文字削除 割一¥0¥0=「」 違えば 割一¥0¥0=「-」 違えば もし、割一¥2=「-」ならば 数2の1から1文字削除 割一¥0¥0=「-」 違えば 割一¥0¥0=「」 (数1で「.」の出現回数=0)ならば、数1=「{数1}.」 (数2で「.」の出現回数=0)ならば、数2=「{数2}.」 割一¥1=数1で「.」が何文字目 割一¥2=数2で「.」が何文字目 数1=数1の「.」を「」に置換 数2=数2の「.」を「」に置換 割一¥1=数1の文字数-割一¥1 割一¥2=数2の文字数-割一¥2 もし、割一¥1=割一¥2ならば 割一¥0¥1=数1の文字数 違えば もし、割一¥1>割一¥2ならば 割一¥0¥1=数1の文字数-割一¥1+割一¥2 割一¥3=「0」を割一¥1-割一¥2だけリフレイン。 違えば 割一¥0¥1=数1の文字数-割一¥1+割一¥2 割一¥3=「0」を割一¥2-割一¥1だけリフレイン。 数1=「{数1}{割一¥3}」 もし、数2の文字数>13ならば 総当たり=1 違えば 総当たり=0 あまり=「」 割結=「」 桁=数1の文字数 割り算制限+割一¥0¥1回 もし、数1=「」ならば 割一¥1=「0」 違えば 割一¥1=数1から1文字左部分。 数1の1から1文字削除。 割一¥1=「{あまり}{割一¥1}」 もし、総当たり=1ならば 割一¥2=9 9回 割一¥3=数2と割一¥2を掛け算 もし、(割一¥3が割一¥1以下)ならば 抜ける 違えば 割一¥2=割一¥2-1 違えば 割一¥2=INT(割一¥1/数2) 割一¥3=割一¥2と数2を掛け算 あまり=「{割一¥1と割一¥3を引き算}」 割結=「{割結}{割一¥2}」 あまりの文字数≦15ならば もし、あまり=0ならば もし、数1=「」ならば もし、回数≧割一¥0¥1ならば 抜ける 割一¥2=割結の文字数 割一¥1=割結から割一¥0¥1文字左部分。 割結の1から割一¥0¥1文字削除。 割結=「{割一¥1}.{割結}」 割結=割結を小数処理 割結=「{割一¥0¥0}{割結}」 割一¥3=あまりから割一¥0¥1文字左部分。 あまりの1から割一¥0¥1文字削除。 あまり=「{割一¥3}.{あまり}」 あまり=あまりを小数処理 割結で戻る *掛け算(数1と、数2を) 掛一とは文字列=空 元数1とは文字列=空 掛結掛一とは文字列=空 桁とは文字列=空 桁回数とは文字列=空 計算とは文字列=空 繰上とは文字列=空 掛結とは文字列=空 掛一¥1=数1の文字数 掛一¥2=数2の文字数 掛一¥3=掛一¥1+掛一¥2 もし、(掛一¥3≦15)ならば 数1*数2で戻る 違えば 掛一¥7=数1から1文字左部分。 掛一¥8=数2から1文字左部分。 (掛一¥7=「-」)ならば、掛一¥9=1。数1の1から1文字削除 (掛一¥8=「-」)ならば、掛一¥9=掛一¥9+1。数2の1から1文字削除 掛一¥0,2=掛一¥1+掛一¥2-2 掛一¥9=掛一¥9と2の余り 掛一¥0、0=「」 (掛一¥9=1)ならば、掛一¥0、0=「-」 掛一¥3=数1で「.」が何文字目 掛一¥4=数2で「.」が何文字目 (掛一¥3=0)ならば、数1=「{数1}.」。掛一¥3=掛一¥1。 (掛一¥4=0)ならば、数2=「{数2}.」。掛一¥4=掛一¥2。 掛一¥5=掛一¥1-掛一¥3 掛一¥6=掛一¥2-掛一¥4 掛一¥0、1=掛一¥5+掛一¥6 数1の「.」を「」に置換 数1=それ 数2の「.」を「」に置換 数2=それ 元数1=数1 掛結掛一=「」 桁¥1=数1の文字数 桁¥1=((桁¥1-1)/14)を切り下げ+1 桁¥2=数2の文字数 桁回数=1 桁¥2回 計算¥2=数2から1文字右部分 数2から1文字右端削除 繰上=0 数1=元数1 桁¥1回 計算¥1=数1から14文字右部分 掛一¥1=計算¥1の文字数 数1から14文字右端削除 計算¥0=計算¥1*計算¥2+繰上 もし、計算¥0≧100000000000000ならば 繰上=計算¥0から1文字左部分 計算¥0=計算¥0から14文字右部分 違えば 繰上=0 掛一¥4=計算¥0の文字数 掛結掛一¥桁回数=「{計算¥0}{掛結掛一¥桁回数}」 もし、掛一¥1>掛一¥4ならば 掛結掛一¥桁回数=「{0を掛一¥1-掛一¥4だけリフレイン}{掛結掛一¥桁回数}」 掛結掛一¥桁回数=「{繰上}{掛結掛一¥桁回数}」 桁回数=桁回数+1 掛結=0 桁回数=1 桁¥2回 掛一¥1=「{掛結掛一¥桁回数}{0を桁回数-1だけリフレイン}」 掛結=掛結と掛一¥1を足し算 桁回数=桁回数+1 もし、掛一¥0、1=0ならば 掛結=「{掛一¥0,0}{掛結}」 違えば 掛一¥3=掛一¥0、1 掛一¥1=掛結の文字数 もし、掛一¥1<掛一¥0,2ならば 掛結=「{0を掛一¥0,2だけリフレイン}{掛結}」 掛一¥1=掛結の文字数 掛一¥2=掛結から掛一¥1-掛一¥3文字左部分 掛結の1から掛一¥1-掛一¥3文字削除 掛結=「{掛一¥0,0}{掛一¥2}.{掛結}」 掛結=掛結を小数処理 掛結で戻る *引き算(数1と、数2を) 引一とは文字列=空 桁とは文字列=空 符号記号とは文字列=空 繰下とは文字列=空 結果とは文字列=空 M1とは文字列=空 M2とは文字列=空 結果引一とは文字列=空 引一¥1=数1の文字数 引一¥2=数2の文字数 引一¥3=引一¥1+引一¥2 もし、(引一¥3<15)ならば 数1-数2で戻る 違えば 引一¥5=数1で「.」が何文字目-1 引一¥6=数2で「.」が何文字目-1 (引一¥5=-1)ならば、数1=「{数1}.」。引一¥5=引一¥1-1。 (引一¥6=-1)ならば、数2=「{数2}.」。引一¥6=引一¥2-1。 もし、引一¥5<引一¥6ならば 引一¥7=引一¥6 違えば 引一¥7=引一¥5 引一¥3=引一¥1-引一¥5 引一¥4=引一¥2-引一¥6 もし、引一¥3<引一4ならば 引一¥8=引一¥2-引一¥6 違えば 引一¥8=引一¥1-引一¥5 もし、引一¥7+引一¥8<15ならば 数1-数2で戻る 違えば 引一¥9=数1から1文字左部分 引一¥10=数2から1文字左部分 もし、引一¥9=「-」ならば 数1から1文字右端削除 数2から1文字右端削除 もし、引一¥10=「-」ならば 数1の1から1文字削除 数2の1から1文字削除 もし、数2≧数1ならば 引一¥11=数2と数1を引き算 違えば 引一¥11=数1と数2を引き算 もし、引一¥11=「0」ならば 引一¥11=「0」 違えば 引一¥11=「-{引一¥11}」 違えば 数1の1から1文字削除 引一¥11=数2と数1を足し算 引一¥11=「-{引一¥11}」 引一¥11で戻る 違えば もし、引一¥10=「-」ならば 数1から1文字右端削除 数2から1文字右端削除 数2の1から1文字削除 引一¥11=数1と数2を足し算 引一¥11で戻る 違えば もし、引一¥8≠0ならば もし、引一¥3>引一¥4ならば 引一¥0=引一¥3 引一¥5=「0」を引一¥3-引一¥4だけリフレイン 数2=「{数2}{引一¥5}」 もし、引一¥4>引一¥3ならば 引一¥0=引一¥4 引一¥5=「0」を引一¥4-引一¥3だけリフレイン 数1=「{数1}{引一¥5}」 もし、引一¥3=引一¥4ならば 引一¥0=引一¥3 違えば 引一¥0=0 数1の「.」を「」に置換 数1=それ 数2の「.」を「」に置換 数2=それ 桁¥1=数1の文字数 桁¥2=数2の文字数 もし、桁¥1≧桁¥2ならば 桁=桁¥1 違えば 桁=桁¥2 桁=INT((桁-1)/15)+1 符号記号=「」 数2と数1を大小判定 もし、それ=1ならば 符号記号=「-」 引一¥9=数1 数1=数2 数2=引一¥9 繰下=0 結果=「」 桁回 M1=数1から15文字右部分 数1から15文字右端削除 M2=数2から15文字右部分 数2から15文字右端削除 引一¥3=M1の文字数 引一¥4=M2の文字数 もし、引一¥3≧引一¥4ならば 引一¥2=引一¥3 違えば 引一¥2=引一¥4 結果引一=M1-M2-繰下 もし、結果引一<0ならば 結果引一=結果引一+1000000000000000 繰下=1 違えば 繰下=0 引一¥1=結果引一の文字数 もし、引一¥1<引一¥2ならば 結果引一=「{0を引一¥2-引一¥1だけリフレイン}{結果引一}」 結果=「{結果引一}{結果}」 もし、引一¥0≠0ならば 引一¥1=結果から(引一¥0)-1文字右部分 結果から(引一¥0)-1文字右端削除 結果=「{結果}.{引一¥1}」 引一¥9=結果から1文字左部分 もし、引一¥9=「.」ならば 結果から1文字削除 結果=「0{結果}」 結果=結果を小数処理 結果=「{符号記号}{結果}」 結果で戻る *足し算(数1と、数2を) 和一とは文字列=空 桁とは文字列=空 結果とは文字列=空 繰上とは文字列=空 P1とは文字列=空 P2とは文字列=空 結果和一とは文字列=空 和一=「」 和一¥1=数1の文字数 和一¥2=数2の文字数 和一¥3=和一¥1+和一¥2 もし、(和一¥3<14)ならば 数1+数2で戻る 違えば 和一¥5=数1で「.」が何文字目-1 和一¥6=数2で「.」が何文字目-1 (和一¥5=-1)ならば、数1=「{数1}.」。和一¥5=和一¥1-1。 (和一¥6=-1)ならば、数2=「{数2}.」。和一¥6=和一¥2-1。 もし、和一¥5<和一¥6ならば 和一¥7=和一¥6 違えば 和一¥7=和一¥5 もし、和一¥1-和一¥5<和一¥2-和一¥6ならば 和一¥8=和一¥2-和一¥6 違えば 和一¥8=和一¥1-和一¥5 もし、和一¥7+和一¥8<14ならば 数1+数2で戻る 違えば 和一¥9=数1から1文字左部分 和一¥10=数2から1文字左部分 もし、和一¥9=「-」ならば 数1から1文字右端削除 数2から1文字右端削除 もし、和一¥10=「-」ならば 数1の1から1文字削除 数2の1から1文字削除 和一¥11=数1と数2を足し算 和一¥11=「-{和一¥11}」 違えば 数1の1から1文字削除 もし、数2≧数1ならば 和一¥11=数2と数1を引き算 違えば 和一¥11=数1と数2を引き算 和一¥11=「-{和一¥11}」 和一¥11で戻る 違えば もし、和一¥10=「-」ならば 数1から1文字右端削除 数2から1文字右端削除 数2の1から1文字削除 もし、数2>数1ならば 和一¥11=数2と数1を引き算 和一¥11=「-{和一¥11}」 違えば 和一¥11=数1と数2を引き算 和一¥11で戻る 違えば もし、和一¥8≠0ならば 和一¥3=和一¥1-和一¥5 和一¥4=和一¥2-和一¥6 もし、和一¥3>和一¥4ならば 和一¥0=和一¥3 和一¥5=「0」を和一¥3-和一¥4だけリフレイン 数2=「{数2}{和一¥5}」 もし、和一¥4>和一¥3ならば 和一¥0=和一¥4 和一¥5=「0」を和一¥4-和一¥3だけリフレイン 数1=「{数1}{和一¥5}」 もし、和一¥3=和一¥4ならば 和一¥0=和一¥3 違えば 和一¥0=0 数1の「.」を「」に置換 数1=それ 数2の「.」を「」に置換 数2=それ 桁¥1=数1の文字数 桁¥2=数2の文字数 もし、桁¥1≧桁¥2ならば 桁=桁¥1 違えば 桁=桁¥2 桁=INT((桁-1)/14)+1 繰上=0 結果=「」 桁回 P1=数1から14文字右部分 数1から14文字右端削除 P2=数2から14文字右部分 数2から14文字右端削除 和一¥3=P1の文字数 和一¥4=P2の文字数 もし、和一¥3≧和一¥4ならば 和一¥2=和一¥3 違えば 和一¥2=和一¥4 結果和一=P1+P2+繰上 もし、結果和一≧100000000000000ならば 繰上=1 結果和一=結果和一-100000000000000 違えば 繰上=0 和一¥1=結果和一の文字数 もし、和一¥1<和一¥2ならば 結果和一=「{0を和一¥2-和一¥1だけリフレイン}{結果和一}」 結果=「{結果和一}{結果}」 (繰上=1)ならば、結果=「1{結果}」。 もし、和一¥0≠0ならば 和一¥1=結果から(和一¥0)-1文字右部分 結果から(和一¥0)-1文字右端削除 結果=「{結果}.{和一¥1}」 結果を小数処理 それで戻る *小数処理(元を) 桁とは文字列=空 一時とは文字列=空 桁=元の文字数 一時¥22=0 桁回 一時¥21=元から1文字左部分 もし、一時¥21=「0」ならば 元の1から1文字削除 違えば 一時¥22=1 もし、一時¥21=「.」ならば 元=「0{元}」 一時¥22=1 もし、一時¥22=1ならば 抜ける 一時¥22=0 元で「.」の出現回数 もし、それ≠0ならば 桁回 一時¥21=元から1文字右部分 もし、一時¥21=「0」ならば 元から1文字右端削除 違えば 一時¥22=1 もし、一時¥21=「.」ならば 元から1文字右端削除 一時¥22=1 もし、一時¥22=1ならば 抜ける もし、元=「」ならば 元=「0」 元で戻る *大小判定(一番と、二番を) 一時とは文字列=空 一時とは文字列=空 一時¥1=一番の文字数 一時¥2=二番の文字数 もし、(一時¥1<16) AND (一時¥2<16)ならば もし、一番=二番ならば 0で戻る もし、一番>二番ならば 1で戻る もし、一番<二番ならば 2で戻る 一時¥1=「{一番}」 一時¥2=「{二番}」 もし、一時¥1=一時¥2ならば 0で戻る 一時¥1=一番から1文字左部分 一時¥2=二番から1文字左部分 もし、一時¥1=「-」ならば もし、一時¥2=「-」ならば 一時¥0=「-」 一番の1から1文字削除 二番の1から1文字削除 違えば 2で戻る 違えば もし、一時¥2=「-」ならば 1で戻る 違えば 一時¥0=「」 一時¥1=一番で「.」の出現回数。 もし、一時¥1=0ならば 一番=「{一番}.」 一時¥2=二番で「.」の出現回数。 もし、一時¥2=0ならば 二番=「{二番}.」 一番=「:{一番}」 二番=「:{二番}」 一時¥3=一番の「:」から「.」まで範囲切り取る。 一時¥4=二番の「:」から「.」まで範囲切り取る。 一時¥1=一時¥3の文字数 一時¥2=一時¥4の文字数 もし、一時¥1>一時¥2ならば もし、一時¥0=「-」ならば 2で戻る 違えば 1で戻る 違えば もし、一時¥2>一時¥1ならば もし、一時¥0=「-」ならば 1で戻る 違えば 2で戻る 違えば 一時¥2回 一時¥1=一時¥3から1文字左部分 一時¥2=一時¥4から1文字左部分 もし、一時¥1>一時¥2ならば もし、一時¥0=「-」ならば 2で戻る 違えば 1で戻る もし、一時¥2>一時¥1ならば もし、一時¥0=「-」ならば 1で戻る 違えば 2で戻る 一時¥3の1から1文字削除 一時¥4の1から1文字削除 一時¥1=一番の文字数 一時¥2=二番の文字数 もし、一時¥1<一時¥2ならば 一時¥1=一時¥2 一時¥1回 一時¥1=一番から1文字左部分 一時¥2=二番から1文字左部分 もし、一時¥1>一時¥2ならば もし、一時¥0=「-」ならば 2で戻る 違えば 1で戻る もし、一時¥2>一時¥1ならば もし、一時¥0=「-」ならば 1で戻る 違えば 2で戻る 一番の1から1文字削除 二番の1から1文字削除 0で戻る
**情報 ・作者名:じゅゐ ・著作権:放棄(でも参考にしたりするときはコメントが欲しいです) **解説 四則演算を桁数制限なし、少数OK、マイナスOKで計算することができます。 依存する形で少数をきちんとした書式に直す少数処理、 なでしこでは大小を判断できない様な大きな数にも対応する大小判定 が一緒に梱包されています。 また足し算も引き算も掛け算も割り算も 必ず数値に「」や『』などで囲って文字列として引数に設定してください。 15桁以上になるとなでしこがエラーを出します。 以下、各関数の引数設定と説明と一緒にないとエラーが出るような依存関数などの説明 ・割り算 ”割られる数”と、”割る数”を、”小数点以下~桁”まで 与えられた2数を設定した小数点以下の桁までの商を桁数無制限に演算して返す ※内部依存――引き算、掛け算、小数処理 ・掛け算 ”掛けられる数”と、”掛ける数”を 与えられた2数の積を桁数無制限に演算して返す ※内部依存――足し算、小数処理、大小判定 ・引き算 ”引かれる数”と、”引く数”を 与えられた2数の差を桁数無制限に演算して返す ※内部依存――足し算、小数処理 ・足し算 ”足される数”と、”足す数”を 与えられた2数の和を桁数無制限に演算して返す ※内部依存――引き算、小数処理 ・小数処理 ”処理するもの”を 与えられた数を通常の数字表記に直して返す (例:0042.19500→42.195) ・大小判定 ”一つ目の数”と、”二つ目の数”を 与えられた2数を、一つ目の数が大きかったら1、二つ目だったら2、同じだったら0を返す **サンプルプログラム 「123456789012345678901234567890」と「123456789012345678901234567890」を足し算を表示 // 246913578024691357802469135780と表示される 「111111111」と「111111111」を掛け算を表示 // 12345678987654321と表示される 「-12345678901234567.8901234567890」と「12345678901234567.8901234567890」を引き算を表示 // -24691357802469135.7802469135780と表示される 22と7を30まで割り算を表示 // 3.142857142857142857142857142857と表示される **本体 *割り算(数1と、数2を、割り算制限まで) 割一とは文字列=空 総当たりとは文字列=空 あまりとは文字列=空 割結とは文字列=空 桁とは文字列=空 割一¥1=数1から1文字左部分。 割一¥2=数2から1文字左部分。 もし、割一¥1=「-」ならば 数1の1から1文字削除 もし、割一¥2=「-」ならば 数2の1から1文字削除 割一¥0¥0=「」 違えば 割一¥0¥0=「-」 違えば もし、割一¥2=「-」ならば 数2の1から1文字削除 割一¥0¥0=「-」 違えば 割一¥0¥0=「」 (数1で「.」の出現回数=0)ならば、数1=「{数1}.」 (数2で「.」の出現回数=0)ならば、数2=「{数2}.」 割一¥1=数1で「.」が何文字目 割一¥2=数2で「.」が何文字目 数1=数1の「.」を「」に置換 数2=数2の「.」を「」に置換 割一¥1=数1の文字数-割一¥1 割一¥2=数2の文字数-割一¥2 もし、割一¥1=割一¥2ならば 割一¥0¥1=数1の文字数 違えば もし、割一¥1>割一¥2ならば 割一¥0¥1=数1の文字数-割一¥1+割一¥2 割一¥3=「0」を割一¥1-割一¥2だけリフレイン。 違えば 割一¥0¥1=数1の文字数-割一¥1+割一¥2 割一¥3=「0」を割一¥2-割一¥1だけリフレイン。 数1=「{数1}{割一¥3}」 もし、数2の文字数>13ならば 総当たり=1 違えば 総当たり=0 あまり=「」 割結=「」 桁=数1の文字数 割り算制限+割一¥0¥1回 もし、数1=「」ならば 割一¥1=「0」 違えば 割一¥1=数1から1文字左部分。 数1の1から1文字削除。 割一¥1=「{あまり}{割一¥1}」 もし、総当たり=1ならば 割一¥2=9 9回 割一¥3=数2と割一¥2を掛け算 もし、(割一¥3が割一¥1以下)ならば 抜ける 違えば 割一¥2=割一¥2-1 違えば 割一¥2=INT(割一¥1/数2) 割一¥3=割一¥2と数2を掛け算 あまり=「{割一¥1と割一¥3を引き算}」 割結=「{割結}{割一¥2}」 あまりの文字数≦15ならば もし、あまり=0ならば もし、数1=「」ならば もし、回数≧割一¥0¥1ならば 抜ける 割一¥2=割結の文字数 割一¥1=割結から割一¥0¥1文字左部分。 割結の1から割一¥0¥1文字削除。 割結=「{割一¥1}.{割結}」 割結=割結を小数処理 割結=「{割一¥0¥0}{割結}」 割一¥3=あまりから割一¥0¥1文字左部分。 あまりの1から割一¥0¥1文字削除。 あまり=「{割一¥3}.{あまり}」 あまり=あまりを小数処理 割結で戻る *掛け算(数1と、数2を) 掛一とは文字列=空 元数1とは文字列=空 掛結掛一とは文字列=空 桁とは文字列=空 桁回数とは文字列=空 計算とは文字列=空 繰上とは文字列=空 掛結とは文字列=空 掛一¥1=数1の文字数 掛一¥2=数2の文字数 掛一¥3=掛一¥1+掛一¥2 もし、(掛一¥3≦15)ならば 数1*数2で戻る 違えば 掛一¥7=数1から1文字左部分。 掛一¥8=数2から1文字左部分。 (掛一¥7=「-」)ならば、掛一¥9=1。数1の1から1文字削除 (掛一¥8=「-」)ならば、掛一¥9=掛一¥9+1。数2の1から1文字削除 掛一¥0,2=掛一¥1+掛一¥2-2 掛一¥9=掛一¥9と2の余り 掛一¥0、0=「」 (掛一¥9=1)ならば、掛一¥0、0=「-」 掛一¥3=数1で「.」が何文字目 掛一¥4=数2で「.」が何文字目 (掛一¥3=0)ならば、数1=「{数1}.」。掛一¥3=掛一¥1。 (掛一¥4=0)ならば、数2=「{数2}.」。掛一¥4=掛一¥2。 掛一¥5=掛一¥1-掛一¥3 掛一¥6=掛一¥2-掛一¥4 掛一¥0、1=掛一¥5+掛一¥6 数1の「.」を「」に置換 数1=それ 数2の「.」を「」に置換 数2=それ 元数1=数1 掛結掛一=「」 桁¥1=数1の文字数 桁¥1=((桁¥1-1)/14)を切り下げ+1 桁¥2=数2の文字数 桁回数=1 桁¥2回 計算¥2=数2から1文字右部分 数2から1文字右端削除 繰上=0 数1=元数1 桁¥1回 計算¥1=数1から14文字右部分 掛一¥1=計算¥1の文字数 数1から14文字右端削除 計算¥0=計算¥1*計算¥2+繰上 もし、計算¥0≧100000000000000ならば 繰上=計算¥0から1文字左部分 計算¥0=計算¥0から14文字右部分 違えば 繰上=0 掛一¥4=計算¥0の文字数 掛結掛一¥桁回数=「{計算¥0}{掛結掛一¥桁回数}」 もし、掛一¥1>掛一¥4ならば 掛結掛一¥桁回数=「{0を掛一¥1-掛一¥4だけリフレイン}{掛結掛一¥桁回数}」 掛結掛一¥桁回数=「{繰上}{掛結掛一¥桁回数}」 桁回数=桁回数+1 掛結=0 桁回数=1 桁¥2回 掛一¥1=「{掛結掛一¥桁回数}{0を桁回数-1だけリフレイン}」 掛結=掛結と掛一¥1を足し算 桁回数=桁回数+1 もし、掛一¥0、1=0ならば 掛結=「{掛一¥0,0}{掛結}」 違えば 掛一¥3=掛一¥0、1 掛一¥1=掛結の文字数 もし、掛一¥1<掛一¥0,2ならば 掛結=「{0を掛一¥0,2だけリフレイン}{掛結}」 掛一¥1=掛結の文字数 掛一¥2=掛結から掛一¥1-掛一¥3文字左部分 掛結の1から掛一¥1-掛一¥3文字削除 掛結=「{掛一¥0,0}{掛一¥2}.{掛結}」 掛結=掛結を小数処理 掛結で戻る *引き算(数1と、数2を) 引一とは文字列=空 桁とは文字列=空 符号記号とは文字列=空 繰下とは文字列=空 結果とは文字列=空 M1とは文字列=空 M2とは文字列=空 結果引一とは文字列=空 引一¥1=数1の文字数 引一¥2=数2の文字数 引一¥3=引一¥1+引一¥2 もし、(引一¥3<15)ならば 数1-数2で戻る 違えば 引一¥5=数1で「.」が何文字目-1 引一¥6=数2で「.」が何文字目-1 (引一¥5=-1)ならば、数1=「{数1}.」。引一¥5=引一¥1-1。 (引一¥6=-1)ならば、数2=「{数2}.」。引一¥6=引一¥2-1。 もし、引一¥5<引一¥6ならば 引一¥7=引一¥6 違えば 引一¥7=引一¥5 引一¥3=引一¥1-引一¥5 引一¥4=引一¥2-引一¥6 もし、引一¥3<引一4ならば 引一¥8=引一¥2-引一¥6 違えば 引一¥8=引一¥1-引一¥5 もし、引一¥7+引一¥8<15ならば 数1-数2で戻る 違えば 引一¥9=数1から1文字左部分 引一¥10=数2から1文字左部分 もし、引一¥9=「-」ならば 数1から1文字右端削除 数2から1文字右端削除 もし、引一¥10=「-」ならば 数1の1から1文字削除 数2の1から1文字削除 もし、数2≧数1ならば 引一¥11=数2と数1を引き算 違えば 引一¥11=数1と数2を引き算 もし、引一¥11=「0」ならば 引一¥11=「0」 違えば 引一¥11=「-{引一¥11}」 違えば 数1の1から1文字削除 引一¥11=数2と数1を足し算 引一¥11=「-{引一¥11}」 引一¥11で戻る 違えば もし、引一¥10=「-」ならば 数1から1文字右端削除 数2から1文字右端削除 数2の1から1文字削除 引一¥11=数1と数2を足し算 引一¥11で戻る 違えば もし、引一¥8≠0ならば もし、引一¥3>引一¥4ならば 引一¥0=引一¥3 引一¥5=「0」を引一¥3-引一¥4だけリフレイン 数2=「{数2}{引一¥5}」 もし、引一¥4>引一¥3ならば 引一¥0=引一¥4 引一¥5=「0」を引一¥4-引一¥3だけリフレイン 数1=「{数1}{引一¥5}」 もし、引一¥3=引一¥4ならば 引一¥0=引一¥3 違えば 引一¥0=0 数1の「.」を「」に置換 数1=それ 数2の「.」を「」に置換 数2=それ 桁¥1=数1の文字数 桁¥2=数2の文字数 もし、桁¥1≧桁¥2ならば 桁=桁¥1 違えば 桁=桁¥2 桁=INT((桁-1)/15)+1 符号記号=「」 数2と数1を大小判定 もし、それ=1ならば 符号記号=「-」 引一¥9=数1 数1=数2 数2=引一¥9 繰下=0 結果=「」 桁回 M1=数1から15文字右部分 数1から15文字右端削除 M2=数2から15文字右部分 数2から15文字右端削除 引一¥3=M1の文字数 引一¥4=M2の文字数 もし、引一¥3≧引一¥4ならば 引一¥2=引一¥3 違えば 引一¥2=引一¥4 結果引一=M1-M2-繰下 もし、結果引一<0ならば 結果引一=結果引一+1000000000000000 繰下=1 違えば 繰下=0 引一¥1=結果引一の文字数 もし、引一¥1<引一¥2ならば 結果引一=「{0を引一¥2-引一¥1だけリフレイン}{結果引一}」 結果=「{結果引一}{結果}」 もし、引一¥0≠0ならば 引一¥1=結果から(引一¥0)-1文字右部分 結果から(引一¥0)-1文字右端削除 結果=「{結果}.{引一¥1}」 引一¥9=結果から1文字左部分 もし、引一¥9=「.」ならば 結果から1文字削除 結果=「0{結果}」 結果=結果を小数処理 結果=「{符号記号}{結果}」 結果で戻る *足し算(数1と、数2を) 和一とは文字列=空 桁とは文字列=空 結果とは文字列=空 繰上とは文字列=空 P1とは文字列=空 P2とは文字列=空 結果和一とは文字列=空 和一=「」 和一¥1=数1の文字数 和一¥2=数2の文字数 和一¥3=和一¥1+和一¥2 もし、(和一¥3<14)ならば 数1+数2で戻る 違えば 和一¥5=数1で「.」が何文字目-1 和一¥6=数2で「.」が何文字目-1 (和一¥5=-1)ならば、数1=「{数1}.」。和一¥5=和一¥1-1。 (和一¥6=-1)ならば、数2=「{数2}.」。和一¥6=和一¥2-1。 もし、和一¥5<和一¥6ならば 和一¥7=和一¥6 違えば 和一¥7=和一¥5 もし、和一¥1-和一¥5<和一¥2-和一¥6ならば 和一¥8=和一¥2-和一¥6 違えば 和一¥8=和一¥1-和一¥5 もし、和一¥7+和一¥8<14ならば 数1+数2で戻る 違えば 和一¥9=数1から1文字左部分 和一¥10=数2から1文字左部分 もし、和一¥9=「-」ならば 数1から1文字右端削除 数2から1文字右端削除 もし、和一¥10=「-」ならば 数1の1から1文字削除 数2の1から1文字削除 和一¥11=数1と数2を足し算 和一¥11=「-{和一¥11}」 違えば 数1の1から1文字削除 もし、数2≧数1ならば 和一¥11=数2と数1を引き算 違えば 和一¥11=数1と数2を引き算 和一¥11=「-{和一¥11}」 和一¥11で戻る 違えば もし、和一¥10=「-」ならば 数1から1文字右端削除 数2から1文字右端削除 数2の1から1文字削除 もし、数2>数1ならば 和一¥11=数2と数1を引き算 和一¥11=「-{和一¥11}」 違えば 和一¥11=数1と数2を引き算 和一¥11で戻る 違えば もし、和一¥8≠0ならば 和一¥3=和一¥1-和一¥5 和一¥4=和一¥2-和一¥6 もし、和一¥3>和一¥4ならば 和一¥0=和一¥3 和一¥5=「0」を和一¥3-和一¥4だけリフレイン 数2=「{数2}{和一¥5}」 もし、和一¥4>和一¥3ならば 和一¥0=和一¥4 和一¥5=「0」を和一¥4-和一¥3だけリフレイン 数1=「{数1}{和一¥5}」 もし、和一¥3=和一¥4ならば 和一¥0=和一¥3 違えば 和一¥0=0 数1の「.」を「」に置換 数1=それ 数2の「.」を「」に置換 数2=それ 桁¥1=数1の文字数 桁¥2=数2の文字数 もし、桁¥1≧桁¥2ならば 桁=桁¥1 違えば 桁=桁¥2 桁=INT((桁-1)/14)+1 繰上=0 結果=「」 桁回 P1=数1から14文字右部分 数1から14文字右端削除 P2=数2から14文字右部分 数2から14文字右端削除 和一¥3=P1の文字数 和一¥4=P2の文字数 もし、和一¥3≧和一¥4ならば 和一¥2=和一¥3 違えば 和一¥2=和一¥4 結果和一=P1+P2+繰上 もし、結果和一≧100000000000000ならば 繰上=1 結果和一=結果和一-100000000000000 違えば 繰上=0 和一¥1=結果和一の文字数 もし、和一¥1<和一¥2ならば 結果和一=「{0を和一¥2-和一¥1だけリフレイン}{結果和一}」 結果=「{結果和一}{結果}」 (繰上=1)ならば、結果=「1{結果}」。 もし、和一¥0≠0ならば 和一¥1=結果から(和一¥0)-1文字右部分 結果から(和一¥0)-1文字右端削除 結果=「{結果}.{和一¥1}」 結果を小数処理 それで戻る *小数処理(元を) 桁とは文字列=空 一時とは文字列=空 桁=元の文字数 一時¥22=0 桁回 一時¥21=元から1文字左部分 もし、一時¥21=「0」ならば 元の1から1文字削除 違えば 一時¥22=1 もし、一時¥21=「.」ならば 元=「0{元}」 一時¥22=1 もし、一時¥22=1ならば 抜ける 一時¥22=0 元で「.」の出現回数 もし、それ≠0ならば 桁回 一時¥21=元から1文字右部分 もし、一時¥21=「0」ならば 元から1文字右端削除 違えば 一時¥22=1 もし、一時¥21=「.」ならば 元から1文字右端削除 一時¥22=1 もし、一時¥22=1ならば 抜ける もし、元=「」ならば 元=「0」 元で戻る *大小判定(一番と、二番を) 一時とは文字列=空 一時とは文字列=空 一時¥1=一番の文字数 一時¥2=二番の文字数 もし、(一時¥1<16) AND (一時¥2<16)ならば もし、一番=二番ならば 0で戻る もし、一番>二番ならば 1で戻る もし、一番<二番ならば 2で戻る 一時¥1=「{一番}」 一時¥2=「{二番}」 もし、一時¥1=一時¥2ならば 0で戻る 一時¥1=一番から1文字左部分 一時¥2=二番から1文字左部分 もし、一時¥1=「-」ならば もし、一時¥2=「-」ならば 一時¥0=「-」 一番の1から1文字削除 二番の1から1文字削除 違えば 2で戻る 違えば もし、一時¥2=「-」ならば 1で戻る 違えば 一時¥0=「」 一時¥1=一番で「.」の出現回数。 もし、一時¥1=0ならば 一番=「{一番}.」 一時¥2=二番で「.」の出現回数。 もし、一時¥2=0ならば 二番=「{二番}.」 一番=「:{一番}」 二番=「:{二番}」 一時¥3=一番の「:」から「.」まで範囲切り取る。 一時¥4=二番の「:」から「.」まで範囲切り取る。 一時¥1=一時¥3の文字数 一時¥2=一時¥4の文字数 もし、一時¥1>一時¥2ならば もし、一時¥0=「-」ならば 2で戻る 違えば 1で戻る 違えば もし、一時¥2>一時¥1ならば もし、一時¥0=「-」ならば 1で戻る 違えば 2で戻る 違えば 一時¥2回 一時¥1=一時¥3から1文字左部分 一時¥2=一時¥4から1文字左部分 もし、一時¥1>一時¥2ならば もし、一時¥0=「-」ならば 2で戻る 違えば 1で戻る もし、一時¥2>一時¥1ならば もし、一時¥0=「-」ならば 1で戻る 違えば 2で戻る 一時¥3の1から1文字削除 一時¥4の1から1文字削除 一時¥1=一番の文字数 一時¥2=二番の文字数 もし、一時¥1<一時¥2ならば 一時¥1=一時¥2 一時¥1回 一時¥1=一番から1文字左部分 一時¥2=二番から1文字左部分 もし、一時¥1>一時¥2ならば もし、一時¥0=「-」ならば 2で戻る 違えば 1で戻る もし、一時¥2>一時¥1ならば もし、一時¥0=「-」ならば 1で戻る 違えば 2で戻る 一番の1から1文字削除 二番の1から1文字削除 0で戻る

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。