プログラミングの基礎(擬似言語のトレース)
m[i, j] は二次元配列 m の i 行目 j 列目の要素を表し、要素番号は1から始まる。次のプログラムを実行した後の s の値はどれか。
整数型の二次元配列: m ← {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
整数型: s ← 0
for (i を 1 から 3 まで 1 ずつ増やす)
for (j を 1 から i まで 1 ずつ増やす)
s ← s + m[i, j]
endfor
endfor
- A15
- B26
- C34
答えと解説を見る
正解:C. 34
内側の {…} がそれぞれ1行を表します。j は1から i まで動くので、1行目は m[1, 1] = 1、2行目は 4 + 5、3行目は 7 + 8 + 9 を足し、s = 1 + 9 + 24 = 34 になります。対角線とその左下(下三角)の要素の合計です。行と列を取り違えて m[j, i] とすると、右上(上三角)の 1 + 2 + 5 + 3 + 6 + 9 = 26 になります。
- A. 対角線の要素 1 + 5 + 9 だけを足した値です。j は1から i まで動きます。
- B. 行と列を取り違えて、上三角の要素を足した値です。
- C. 正しい。下三角の 1 + 4 + 5 + 7 + 8 + 9 = 34 です。