kintoneを使っていて思いませんか?
あ~、2次方程式が解けたらなぁ・・・(´-`).。oO
思いませんよね?
今回は前回の平方根を求めるアプリを流用して、
2次方程式の解を求めるアプリを作ってみたいと思います。
前回の記事↓
【kintone】標準機能だけで平方根の計算をしてみる
アプリを作る
では2次方程式を解くアプリを作っていきましょう。
前回作成した平方根アプリを再利用して作成
前回作成した平方根アプリを再利用します。
(1)フィールドA(数値)を削除します。
(2)計算フィールド持ってきて、フィールドコードをAにして一旦保存します。
(3)今変更したフィールドコードAをDに変更します。そうです、これが判別式Dになります。
フィールドDの計算式は
b*b - 4*a*c
とします。解の公式にでてくる、判別式$D=b^2-4ac$というやつです。
※解の公式ってこういうやつです。→ $x = \frac{-b \pm \sqrt{b^2-4ac} }{2a}$
(4)x0~x9フィールドの計算式のAだったところがDに変わっていることを確認します。
(5)下図&下表のようにフィールドを追加します。
フィールド種類 | フィールドコード | 計算式 | 備考 |
---|---|---|---|
数値 | a | なし | |
数値 | b | なし | |
数値 | c | なし | |
文字列(1行) | 求める方程式 | この表の下に書いてます | |
文字列(1行) | 解 | IF(a=0,"X = " & X1,IF( rD>=0, "X1 = " & X1 & " / X2 = " & X2 , "解無し")) & IF(D=0,"(重解)","") | |
計算 | D | bb - 4a*c | 作成済 |
計算 | rD | IF(D>0, x9,IF(D=0,0,-1)) | Aの平方根フィールドを書き換えるとよいです。 |
計算 | X1 | IF(a=0,-c/b, IF(D>=0, (-b+rD)/(2*a),0)) | 解の公式による。フィールドコードのXは大文字 |
計算 | X2 | IF(a=0,0,IF(D>=0, (-b-rD)/(2*a),0)) | 解の公式による。フィールドコードのXは大文字 |
↓求める方程式フィールドの計算式(このフィールド自体、なくても良いんだけどせっかくなので)
IF(a=1, "x^2" , IF(a=0,"", IF(a=-1, "-x^2", a & "x^2") ) )
& IF(a=0,IF(b=1, "x" , IF(b=0,"", IF(b=-1, "x", b & "x") ) ) ,
IF(b=1, " +x" , IF(b=0,"", IF(b=-1, " -x",IF(b>0, " +" & b & "x"," " & b & "x")) ) ))
& IF(AND(a=0,b=0),"aとb両方0にしちゃだめ" ,IF(c=0, "", IF(c>0, " +"&c , " "&c))& "= 0")
できた&まとめ
これで、アプリを公開!(保存?)して試してみると、ほら!
方程式を解くことができます。(誰得)
ここからちょっといじって虚数解にも対応させてみました。
もしかしたらいつか記事にするかもしれません・・・。