滝の音

滝の音

名こそ流れてなお聞こえけれ

計算プリントを自動生成する その8 割り算の計算

はじめに

足し算、掛け算、引き算と来てようやく割り算。
割り算の実装の仕方も引き算と同様です。
今回は「Int_Multiplication」から「Int_MulDiv」を一気に作ります。

そんなに言いたいこともないのでサクッとコードを書いて終わりにしましょう。

自動化してみる

ひながたは今回は省略。
前回付け足した「version」変数を使って以下の変数を制御します。

Int_MulDiv

MulDivってなんか人の名前に見えますね。

Function Int_MulDiv(version, level) As String
'----------------------------------
'整数の計算式を生成する
'version=1は掛け算
'version=2は割り算
'----------------------------------

'----------------------------------
'扱う変数の定義
'----------------------------------
 Dim num() As Integer   '指定する数値
 Dim ans As String      'strに戻す値
 Dim tmp As Integer     'numを入れ替えるための変数
'----------------------------------
'numの値の決定
'----------------------------------
 num() = Int_MulDiv_Num_Select(level)
 
'----------------------------------
'割り算用の処理
'----------------------------------
 If version = 2 Then
    tmp = num(1)
    num(1) = num(3)
    num(3) = tmp
 End If
'----------------------------------
'計算式を文字列にする
'----------------------------------
 Select Case version
    Case Is = 1
        ans = "a×b=c"
    Case Is = 2
        ans = "a÷b=c"
 End Select
 
 ans = Replace(ans, "a", num(1))
 ans = Replace(ans, "b", num(2))
 ans = Replace(ans, "c", num(3))

'----------------------------------
'文字列を戻す
'----------------------------------
 Int_MulDiv = ans
End Function

Int_MulDiv_Num_Select

命名法にのっとって「Int_Multiplication_Num_Select」の名前を変えただけです。

まとめ

この統合は概念的にはだいぶ大きい変化な気がするのですが
コードにしてみると全然大したことないですね。
ちょろっと数行足しただけだし。
別に関数を足したわけでもないし。

こちらもAddSubと同様にlevelの反映が適切かどうか疑問ですが
やっぱり保留!

次回はAddSubとMulDivを統合しようと思います。
統合というか仕分けが似ている関数を合併するだけというか。。