【疑似言語問題の解き方】ITパスポート過去問 令和5年 問64(ていねいな方法)

ITパスポート疑似言語問題解説(令和5年度問64) 特集

アルゴリズムの問題は、必ず出ます。

一見、面倒ですが、解き方を身につけると確実に点数が取れます。

スポンサーリンク

令和5年 問64

関数sigmaは、正の整数を引数maxで受け取り、 1からmaxまでの整数の総和を戻り値とする。プログラム中のaに入れる字句として、適切なものはどれか。

〔プログラム〕
 ○整数型: sigma(整数型: max)
  整数型: calcX ← 0
  整数型: n
  for (nを 1 から max まで 1 ずつ増やす)
   (  a  )
  end for
  return calcX

ア calcX ← calcX × n
イ calcX ← calcX + 1
ウ calcX ← calcX + n
エ calcX ← n
 

問題を解く手順

Step 1 構成を整理して、問題文を読み解く。

説明(条件)

説明文にある入力と出力に着目し、関数をイメージします。

関数sigmaは、正の整数を引数maxで受け取り、 1からmaxまでの整数の総和を戻り値とする。

関数は、複数の処理を一つにまとめたものです。

プログラム言語によっては、手続とも呼ばれます。

自動販売機と対比すると、イメージしやすいと思います。

ITパスポート 令和5年問64解説 関数sigmaのイメージ

設問

設問から、問題を解く大きな流れをイメージします。

プログラム中のaに入れる字句として、適切なものはどれか。

プログラム中に入れる字句を選ぶ問題の場合、次の方法が確実です。

ITパスポート 令和5年問64解説 選択肢の選び方

手順(動作)

プログラム詳細見る前に、何をするプログラムなのか確認しておきます。

関数sigmaは、正の整数を引数maxで受け取り、 1からmaxまでの整数の総和を戻り値とする。

ここが、プログラムの動作と対応する部分であることを意識しておきましょう。

選択肢

( a )に入るものが、どんなものか確認します。

ア calcX ← calcX × n
イ calcX ← calcX + 1
ウ calcX ← calcX + n
エ calcX ← n

「←」は、「代入する」という意味です。

たとえば、ア calcX ← calcX × n の場合、

「calcX に n を掛けて、その結果を新たに calcX に代入する。」という意味です。

プログラム

プログラム全体で、何がどこに書かれているのか確認します。

ITパスポート 令和5年問64解説 プログラムの構成

プログラムの一行一行にこだわらず、準備、入力、処理、出力など大きなブロックを確認しましょう。

Step 2 入力と出力に注目して、関数の働きを確認する。

問題文の説明から出力を考えます。

関数sigmaは、正の整数を引数maxで受け取り、 1からmaxまでの整数の総和を戻り値とする。

問題文の説明にある「1 から max までの整数の総和」というのは、

たとえば、max =3の場合

1+2+3=6

を計算することです。

ITパスポート 令和5年問64解説 関数sigmaの動作

Step 3 具体的な値を使って、関数の動作を確認する。

はじめに、プログラム中の( a )の前後を確認します。

ITパスポート 令和5年問64解説 プログラムの処理部分

意味
 (  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 と、問題文の説明から求めた出力(戻り値)が一致したのは、ウ でした。

よって、正解は  です。

  前の問題  問題一覧  次の問題 
問63 令和5年 問65

ここまで、令和5年 問64を例にして、疑似言語問題の解き方を紹介しました。

解説が長く、一度読んだだけでは頭に入らないかもしれません。

でも、問題を解く流れを繰り返し追うことで、いずれ、解説の通り手順を踏まなくとも解けるようになります。

解き方を身につけて、確実に点数を取りましょう。

コメント

タイトルとURLをコピーしました