基本情報技術者試験の擬似言語をPythonで表現してみた【初心者にオススメ】

基本情報技術者試験の擬似言語をマスターすれば、基本情報技術者試験で確実に点が取れるようになります。

さらに、擬似言語ができれば、実際のプログラミングもできるようになります。

「やったー、基本情報技術者試験の擬似言語を頑張って勉強しよう」と思われましたよね?

ただ残念ながら、擬似言語と実際のプログラミングには、明確な差があることも事実です。

一つ目の理由は、擬似言語にルールがあるように、実際のプログラミングにもルールがあるからです。

例えば、基本情報技術者試験の擬似言語は、プログラミング初心者でも理解しやすいように、日本語で処理が書かれています。

ですが、実際のプログラミングでは、日本語で処理を記載することはほとんどありません。

二つ目の理由は、プログラムを動かすための環境を用意する必要があります。

初心者にとって、環境を準備するのは一苦労です。

そのため、擬似言語と実際のプログラミングの差を埋めるのは、初心者の方が一人でやるのは、結構大変なのです。

そこで、擬似言語を理解したあなたが、実際のプログラミングを最短ルートで学習できるよう、基本情報技術者試験の擬似言語で書かれたプログラムを、Pythonというプログラム言語で表現してみました。

また、たった1分でプログラムを実行できる環境もご紹介します。

あなたは、この記事を読むだけで、お金をかけずに一瞬でプログラムを動かせます。

Python(パイソン)とは、AIやアプリ開発など、さまざまな開発に対応できる汎用プログラミング言語です。私はディープラーニングの勉強や、Webサイトをスクレイピングする際に利用したことがあります。

目次

プログラミングを実行する環境【準備不要、無料】

プログラミングを仕事や趣味で行っている人は、PC上にPythonを実行できる環境を用意することが多いです。

ただ、初心者の方は、その環境を準備しようとすると、うまくいかなかったり、時間がかかったりして、途中で挫折してしまうことが多いと思います。

そこで、初心者の方でも、準備不要、無料で使えるpaiza.ioというサイトをご紹介したいと思います。

Pythonが無料で実行できるサイト(paiza.io)

上記のサイトにアクセスした後に、画面の左上にある緑色の部分から「Python3」を選択することで、Pythonが実行できるようになります。

このあと紹介するプログラムを黒い部分にコピー&ペーストしたのち、「実行(Ctrl-Enter)」を実行すると、実行結果がかえってきます。

プログラム

基本情報技術者試験 科目B サンプル問題(2022年4月25日掲載) 問1

ある施設の入場料は、0歳から3歳までは100円、4歳から9歳までは300円、10歳以上は500円である。関数feeは、年齢を表す0以上の整数を引数として受け取り、入場料を返す。

[プログラム]
○整数型: fee(整数型: age)
 整数型: ret
 if (age が 3 以下)
   ret ← 100
 elseif (age が 9 以下) /* 下線が空欄 */
   ret ← 300
 else
   ret ← 500
 endif
 return ret

引用元:https://www.ipa.go.jp/shiken/syllabus/ps6vr7000000oett-att/fe_kamoku_b_sample.pdf

Pythonで表現してみた

# プログラム
def fee(age):
    # 整数型: ret

    if (age <= 3):
      ret = 100
    elif (age <= 9 ):
      ret = 300
    else:
      ret = 500

    return ret

# 呼び出し
entrance_fee = fee(10)
print(entrance_fee)

出力結果は、500 です。

基本情報技術者試験 科目B サンプル問題(2022年4月25日掲載) 問2

次のプログラムは、整数型の配列arrayの要素の並びを逆順にする。ここで、配列の要素番号は1から始まる。

[プログラム]
 整数型の配列: array ← {1, 2, 3, 4, 5}
 整数型: right, left
 整数型: temp
 for (left を 1 から (arrayの要素数 ÷ 2 の商) まで 1 ずつ増やす)
   right ← array の要素数 - left + 1 /* 下線がa */
   tmp ← array[right]
   array[right] ← array[left]
   array[left] ← tmp                /* 下線がb */
 endfor

引用元:https://www.ipa.go.jp/shiken/syllabus/ps6vr7000000oett-att/fe_kamoku_b_sample.pdf

Pythonで表現してみた

comming soon

出力結果は、5, 4, 3, 2, 1 です。

基本情報技術者試験 科目B サンプル問題(2022年4月25日掲載) 問4

要素の多くが0の行列を疎行列という。次のプログラムは、二次元配列に格納された行列のデータ量を削減するために、疎行列の格納に適したデータ構造に変換する。
関数 transformSparseMatrix は、引数 matrix で二次元配列として与えられた行列を、整数型配列の配列に変換して返す。関数 transformSparseMatrix({{3, 0, 0, 0, 0}, {0, 2, 2, 0, 0}, {0, 0, 0, 1, 3}, {0, 0, 0, 2, 0}, {0, 0, 0, 0, 1}})として呼び出した時の戻り値は、x, x, xである。

[プログラム]
○整数型配列の配列: transformSparseMatrix(整数型の二次元配列: matrix)
 整数型: i, j
 整数型配列の配列: sparseMatrix
 sparseMatrix ← {{}, {}, {}} /* 要素数0の配列を三つ要素にもつ配列 */
 for (i を 1 から matrixの行数まで 1 ずつ増やす)
   for (j を 1 からmax
     if (matrix[i, j] が 0 でない)
       sparseMatrix[]の末尾に の値を追加する
       sparseMatrix[]の末尾に の値を追加する
       sparseMatrix[]の末尾に の値を追加する
     endif
   endfor
 endfor
 return sparseMatrix 

引用元:https://www.ipa.go.jp/shiken/syllabus/ps6vr7000000oett-att/fe_kamoku_b_sample.pdf

Pythonで表現してみた

comming soon

出力結果は、xxxです。

まとめ

上記のプログラムが、Pythonで実行できたら、次のことも試してみてください。

  • 関数に渡す引数を変えてみる
  • print関数を使って、変数の遷移を確認する
  • 間違った選択肢にすると、どのような動きになるか確認する

プログラミングは「習うより慣れろ」が大きいです。

一つずつできるようになりましょう。

もし、基本情報技術者試験の擬似言語が難しいと思ったら、ITパスポート試験の擬似言語をやってみましょう。

ITパスポート試験の方が簡単です。

一度レベルを下げて理解してから、基本情報技術者試験に戻ってきましょう。

急がば回れです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

現役ITエンジニア。ITパスポート、情報処理技術者(高度)6区分に合格。"勉強が苦手な人が「分からない」から「分かる」へ"をテーマに発信しています。

目次