コラム

計算ドリルボットの仕組み【ロボ団コラム】

皆さん、タイトルである「チャットボット」はご存知ですか?

皆さん、タイトルにある「計算ドリルボット」とはご存知でしょうか❓

ボットとは、一般的に簡単な動作を繰り返し行うプログラムの事を言います。

そして、今回の計算ドリルボットは文字通り、計算を行うボットの事です❕

 

今回は、簡単なこの計算ドリルボットを作って行きます❕

この計算ドリルボットのプログラムにおいて必要な事が大きく分けて2つ有ります。

それは、「計算問題出題する事」と「正解・不正解を判断する事」です。

 

そして今回、必須となるコマンドを紹介します。

while〇〇:条件〇〇の間繰り返す

if A==B:もしA==Bならば以下を実行する。

 

+:足し算 -:引き算 *:掛け算 /:割り算 %:割り算の余り

//:割り算の商

**べき乗:(例えば、2**3の場合8となる つまり2を3回掛ける)

必要・重要なコマンドは、以上になります。

 

では、早速プログラムを作成していきます。

始めに、出題部分を作成します。

x=3

y = 5

ans = x + y

print( x, “+”, y, “=”, ans) //画面に文字を出力する。

 

次に、ランダムで問題を出題し、プログラムを作成します。

from random import * //ランダムモジュールをインポートする。

cnt = 1

seikai = 0

print(“種類を選んでください[+,-,*,//]”)

ope = input() //入力された文字を変数nameに保存する。

while True: //無限ループ

x = randint(1,9) //1~9までのランダムな整数を作る。

y = randint(1,9) //1~9までのランダムな整数を作る。

if ope == ‘+’:  //opeの中身が’+’である時

ans = x + y

print( x, “+”, y, “は?”)

elif ope == ‘-‘: //’+’で無く、‘-’である時

ans = x – y

print( x, “-“, y, “は?”)

elif ope == ‘*’:

ans = x * y

print( x, “*”, y, “は?”)

else: //前の条件に合わなければ、次を実行する。

ans = x // y

print( x, “//”, y, “は?”)

rep = input()

if str(ans) == rep:

print(“正解!”)

seikai = seikai + 1

else:

print(“はずれ”)

print(“正解は”, ans)

print(“やめる?[yes/no]”)

fin = input()

if fin == “yes”:

break //ループから抜ける。

cnt = cnt + 1

rate = seikai/cnt * 100

print(“問題数は”, cnt, “問です。”)

print(“正解数は”, seikai, “問です。”)

print(“正解率は”, int(rate), “%です。”)

print(“おわります。”)

 

正解か不正解か教えてくれるプログラムを作成します。

from random import * //ランダムモジュール(random)をインポートしよう。

x = randint(1,10)  //変数xと変数yにランダムな数字を代入する。

y = randint(1,10)  //変数xと変数yにランダムな数字を代入する。

ans = x + y //xとyの足し算を変数ansに代入する。

print( x, “+”, y, “は?”) //計算式を表示して、答えを入力して貰う。

res = input() //入力した答えを変数に代入する。

 

if str(ans) == res:  //整数型のansを文字列型に変換してから変数resと

比較する。

print(“正解!”) //正解かどうかチェックする。

else:

print(“はずれ”)

print(“正解は”, ans)

 

 

実際に使用されている計算ドリルボットは、もっと複雑な計算が出来る計算ドリルボットも多数存在します。

今回は、その基礎となるプログラムを作成してきました。

もし、時間が有れば是非是非作成してみてください❕

 

それではまた、次回のコラムでお会いしましょう❕❕

コラムの一覧へ