アルゴリズムの問題は、必ず出ます。
一見、面倒ですが、解き方を身につけると確実に点数が取れます。
令和5年 問64
関数sigmaは、正の整数を引数maxで受け取り、 1からmaxまでの整数の総和を戻り値とする。プログラム中のaに入れる字句として、適切なものはどれか。
〔プログラム〕 |
○整数型: sigma(整数型: max) |
整数型: calcX ← 0 |
整数型: n |
for (nを 1 から max まで 1 ずつ増やす) |
( a ) |
end for |
return calcX |
問題を解く手順
Step 1 構成を整理して、問題文を読み解く。
説明(条件)
説明文にある入力と出力に着目し、関数をイメージします。
関数sigmaは、正の整数を引数maxで受け取り、 1からmaxまでの整数の総和を戻り値とする。
関数は、複数の処理を一つにまとめたものです。
プログラム言語によっては、手続とも呼ばれます。
自動販売機と対比すると、イメージしやすいと思います。
設問
設問から、問題を解く大きな流れをイメージします。
プログラム中のaに入れる字句として、適切なものはどれか。
プログラム中に入れる字句を選ぶ問題の場合、次の方法が確実です。
手順(動作)
プログラムの詳細を見る前に、何をするプログラムなのか確認しておきます。
関数sigmaは、正の整数を引数maxで受け取り、 1からmaxまでの整数の総和を戻り値とする。
ここが、プログラムの動作と対応する部分であることを意識しておきましょう。
選択肢
( a )に入るものが、どんなものか確認します。
ア calcX ← calcX × n
イ calcX ← calcX + 1
ウ calcX ← calcX + n
エ calcX ← n
「←」は、「代入する」という意味です。
たとえば、ア calcX ← calcX × n の場合、
「calcX に n を掛けて、その結果を新たに calcX に代入する。」という意味です。
プログラム
プログラム全体で、何がどこに書かれているのか確認します。
プログラムの一行一行にこだわらず、準備、入力、処理、出力など大きなブロックを確認しましょう。
Step 2 入力と出力に注目して、関数の働きを確認する。
問題文の説明から出力を考えます。
関数sigmaは、正の整数を引数maxで受け取り、 1からmaxまでの整数の総和を戻り値とする。
問題文の説明にある「1 から max までの整数の総和」というのは、
たとえば、max =3の場合
1+2+3=6
を計算することです。
Step 3 具体的な値を使って、関数の動作を確認する。
はじめに、プログラム中の( a )の前後を確認します。
意味
( a )を、n を 1 から 1 ずつ増やしながら繰り返し、 max になったら終了する。
次に、任意の小さな値をプログラムに入力したときのプログラムの出力(戻り値)を、( a )に各選択肢を入れて求めます。
また、問題文の説明から求めた出力(戻り値)と一致するか確認します。
選択肢 ア calcX ← calcX × n の場合
n=1のとき
calcX ×1=0×1=0
0に何を掛けても0なので、n =3のときも calcX =0 です。
プログラムから求めた出力(戻り値)=0 は、問題文の説明から求めた出力(戻り値)=6 と一致しません。
選択肢 イ calcX ← calcX +1 の場合
n=1のとき
calcX +1=0+1=1
1 を代入して、calcX =1 です。
n=2のとき
calcX +1=1+1=2
2 を代入して、calcX =2 です。
n=3のとき
calcX +1=2+1=3
3 を代入して、calcX =3 です。
プログラムから求めた出力(戻り値)=3 は、問題文の説明から求めた出力(戻り値)=6 と一致しません。
選択肢 ウ calcX ← calcX + n の場合
n=1のとき
calcX + n =0+1=1
1 を代入して、calcX =1 です。
n=2のとき
calcX + n =1+2=3
3 を代入して、calcX =3 です。
n=3のとき
calcX + n =3+3=6
6 を代入して、calcX =6 です。
プログラムから求めた出力(戻り値)=6 は、問題文の説明から求めた出力(戻り値)=6 と一致します。
選択肢 エ calcX ← n の場合
n=1のとき
1 を代入して、calcX =1 です。
n=2のとき
2 を代入して、calcX =2 です。
n=3のとき
3 を代入して、calcX =3 です。
プログラムから求めた出力(戻り値)=3 は、問題文の説明から求めた出力(戻り値)=6 と一致しません。
Step 4 選択肢を選ぶ。
プログラムから求めた出力(戻り値)=3 と、問題文の説明から求めた出力(戻り値)が一致したのは、ウ でした。
よって、正解は ウ です。
ここまで、令和5年 問64を例にして、擬似言語問題の解き方を紹介しました。
解説が長く、一度読んだだけでは頭に入らないかもしれません。
でも、問題を解く流れを繰り返し追うことで、いずれ、解説の通り手順を踏まなくとも解けるようになります。
解き方を身につけて、確実に点数を取りましょう。
コメント