「みちともデジタル」は、ITパスポート試験の合格を目指す方を応援する無料学習サイトです。

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

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

擬似言語問題の解き方を、令和5年 問60を例にして解説します。

今回、紹介する方法は、ていねいな方法です。

繰り返し、解き方をトレースしながら、基本的なことを覚えましょう。

スポンサーリンク

問題(令和5年 問60)

手続printArray は、配列integerArray の要素を並べ替えて出力する。手続print Arrayを呼び出したときの出力はどれか。ここで、配列の要素番号は1から始まる。

〔プログラム〕
 ○print Array()
  整数型: n,m
  整数型の配列: integerArray ←{2, 4, 1, 3}
  for (n を 1 から(integerArrayの要素数- 1)まで 1 ずつ増やす)
   for (m を 1 から( integerArrayの要素数- n)まで 1 ずつ増やす)
    if (integerArray[m] > integerArray[m + 1])
     integerArray[m]とintegerAr ray[m + 1]の値を入れ替える
    end if
   end for
  end for
  integerArrayの全ての要素を先頭から順にコンマ区切りで出力する

ア 1、2、3、4
イ 1、3、2、4
ウ 3、1、4、2
エ 4、3、2、1
 

解 説      次 へ

問題を解く手順(ていねいな方法)

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

擬似言語問題を解く手順
  • Step 1
    構成を整理して、問題文を読み解く。

    ・説明(条件)
    ・設問
    ・手順(動作)
    ・選択肢
    ・プログラム

  • Step 2
    入力と出力に注目して、手続の働きを確認する。
  • Step 3
    具体的な値を使って、手続の動作を確認する。
  • Step 4
    選択肢を選ぶ。

説明(条件)

手続printArray は、配列integerArray の要素を並べ替えて出力する。

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

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

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

配列は、同じデータ型の複数の変数(箱)を1つにまとめて、扱いやすくしたものです。

このようなイメージです。

ITパスポート 令和5年問60解説 配列 integerArrayのイメージ

設問

手続printArrayを呼び出したときの出力はどれか。

ここでは、

プログラムを実行した結果が問われている

ことを覚えておきましょう。

手順(動作)

この問題文には、手順が書かれていません。このような場合は、プログラムから読み解きます。

選択肢

ア 1、2、3、4
イ 1、3、2、4
ウ 3、1、4、2
エ 4、3、2、1

設問に「出力はどれか。」とありましたが、各選択肢について、値の並ぶ順番が異なるので、

値の並ぶ順番がポイント

と覚えておきましょう。

プログラム

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

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

Tパスポート 令和5年問60解説 プログラムの全体

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

擬似言語問題を解く手順
  • Step 1
    構成を整理して、問題文を読み解く。
  • Step 2
    入力と出力に注目して、手続の働きを確認する。
  • Step 3
    具体的な値を使って、手続の動作を確認する。
  • Step 4
    選択肢を選ぶ。

入力と出力に注目して、手続printArrayの働きを具体化します。

プログラムの入力部分は、

Tパスポート 令和5年問60解説 プログラムの入力部分

「配列 integerArrayに{2, 4, 1, 3}を順番に代入する。」

という意味です。

また、出力部分は、具体的な値が選択肢にあります。

図にすると、手続 printArrayの働きは、次のようになります。

ITパスポート 令和5年問60解説 手続printArrayの働き

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

擬似言語問題を解く手順
  • Step 1
    構成を整理して、問題文を読み解く。
  • Step 2
    入力と出力に注目して、手続の働きを確認する。
  • Step 3
    具体的な値を使って、手続の動作を確認する。

    ・プログラムの隠されている部分を明らかにして、動作を考えやすくする。

    ・プログラムの処理部分の構造を確認する。

    ・具体的な値をプログラムに入れて、動作を確認する。

  • Step 4
    選択肢を選ぶ。

プログラムの隠されている部分を明らかにして、動作を考えやすくする。

プログラムの中にある、「integerArrayの要素数」とは、なんでしょうか?

変数の型宣言の部分(準備の部分)に「integerArrayの要素数」がないので、変数ではありません。

プログラムの入力部分に、次のようにあります。

Tパスポート 令和5年問60解説 配列integerAttayの要素数の説明

そのため、

integerArrayの要素数=4

です。

次のように、少し考えやすくなりました。

ITパスポート 令和5年問60解説 プログラムの処理部分(要素数を代入)

プログラムの処理部分の構造を確認する。

for~endfor、if~endifに注目してプログラムを色分けすると、次にように3つに分かれます。

3つに分けた部分ごとに確認すると、考えやすいです。

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

部分ごとに考えましょう。

(1)if~endif 部分

ITパスポート 令和5年問60解説 プログラムの入れ替え部分に注目

意味は、

integerArrayの左(m)側の要素と右(m+1)の要素を比べて、左(m)側が大きい場合は中身の値を入れ替える。

です。

(2)for(mを….)~endfor 部分

ITパスポート 令和5年問60解説 プログラムのmによる繰り返し部分に注目

意味は、

if~endif 部分を、m を 1 から 1 ずつ増やしながら繰り返し、 4-nになったら終了する。

です。

(3)for(nを….)~endfor 部分

ITパスポート 令和5年問60解説 プログラムのnによる繰り返し部分に注目

意味は、

for(mを….)~endfor 部分を、n を 1 から 1 ずつ増やしながら繰り返し、 3 になったら終了する。

具体的な値をプログラムに入れて、動作を確認する。

繰り返しの問題は、表にすると考えやすいです。

(1)n = 1 のとき

ITパスポート 令和5年問60解説 プログラム動作n=1のとき

一番右の値は4になるので、この時点で、選択肢の候補は、ア と イ に絞られます。

(2)n = 2 のとき

配列 intederArrayのはじめの状態は、n=1の結果から考えます。

ITパスポート 令和5年問60解説 プログラム動作n=2のとき

配列 intederArrayの状態は、ア と同じになりました。

(3) n = 3 のとき

問題を解く上では必要ありませんが、参考に、n = 3 の場合を示します。

ITパスポート 令和5年問60解説 プログラム動作n=3のとき

Step 4 選択肢を選ぶ。

配列 intederArrayの最終の状態は、ア と同じです。

ア 1、2、3、4
イ 1、3、2、4
ウ 3、1、4、2
エ 4、3、2、1

よって、正解は  です。

ここまで、令和5年 問60を例にして、擬似言語問題のていねいな解き方を紹介しました。

簡略した解き方もありますが、まずは、基本を覚えることから始めましょう。

(令和5年 問60)
令和5年 問題番号順
アルゴリズム 学習優先順
一覧

コメント

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