配列(リスト)scoreには、あるゲームの10人分のキャラクタの能力値(腕力、知力、体力、運の良さの4つのパラメータ)が格納されています。
scoreのデータを集計し、キャラクタの能力値の合計と4つのパラメータの平均値を求めます。
配列scoreは次のような2次元配列で構成されています。
表は次のようなデータが入ります。
- 添字番号が4の列(5列目)は、各キャラクタの4つの能力値を加算した値が入ります。
- 添字番号が10の行(11行目)は、各パラメータごとに10人分の能力値を加算した値が入ります。
- 添字番号が11の行(12行目)は、パラメータごとの一人当たりの平均値が入ります。平均値は「各パラメータの能力値の合計/10」で計算します。
どのように値を集計していくか、集計方法を確認します。
① 配列(リスト)の初期状態です。キャラクタのデータと集計値、平均値の箇所には0が格納されています。
② 最初の要素score[0][0]を、キャラクタ集計用の要素score[0][4]と能力値集計用の要素score[10][0]に加算します。
③ 次の要素score[0][1]を、キャラクタ集計用の要素score[0][4]と能力値集計用の要素score[10][1]に加算します。
④ 次の要素score[0][2]を、キャラクタ集計用の要素score[0][4]と能力値集計用の要素score[10][2]に加算します。
⑤ 次の要素score[0][3]を、キャラクタ集計用の要素score[0][4]と能力値集計用の要素score[10][3]に加算します。
上の手順を行うためのフローチャートとPythonプログラムです。ただし、(1)、(2)、(3)は空欄になっています。
(1)~(3)を埋めてプログラムを完成させましょう。
# キャラクタ10人分の能力値データ(腕力, 知力, 体力, 運の良さ, 合計)
# 合計列(5列目)は0で初期化
score = [
[55, 80, 40, 50, 0], # キャラクタ1
[40, 55, 65, 75, 0], # キャラクタ2
[60, 65, 70, 85, 0], # キャラクタ3
[30, 45, 55, 60, 0], # キャラクタ4
[80, 75, 90, 95, 0], # キャラクタ5
[55, 60, 65, 70, 0], # キャラクタ6
[45, 50, 55, 65, 0], # キャラクタ7
[70, 80, 75, 85, 0], # キャラクタ8
[65, 60, 55, 70, 0], # キャラクタ9
[90, 85, 95, 100, 0], # キャラクタ10
[0, 0, 0, 0, 0], # 11行目: パラメータ合計
[0, 0, 0, 0, 0], # 12行目: パラメータ平均
]
# 各キャラクタの合計(5列目)と各パラメータの合計(11行目)を同時に処理
for i in range(10): # 10人分
for j in range(4): # 4つの能力値
# (1) # キャラクタの集計
# (2) # 能力値の集計
# 各パラメータの平均(12行目に代入)
for j in range(4):
# (3) # 平均値の計算(能力値の集計結果を10で除算)
# 表示処理
print("=== 能力値表 (腕力, 知力, 体力, 運, 合計) ===")
for row in score:
print(row)
正しくできた場合は次のような実行結果になります。
プログラムの実行例