基本情報技術者試験の擬似言語をマスターすれば、基本情報技術者試験で確実に点が取れるようになります。
さらに、擬似言語ができれば、実際のプログラミングもできるようになります。
「やったー、基本情報技術者試験の擬似言語を頑張って勉強しよう」と思われましたよね?
ただ残念ながら、擬似言語と実際のプログラミングには、明確な差があることも事実です。
一つ目の理由は、擬似言語にルールがあるように、実際のプログラミングにもルールがあるからです。
例えば、基本情報技術者試験の擬似言語は、プログラミング初心者でも理解しやすいように、日本語で処理が書かれています。
ですが、実際のプログラミングでは、日本語で処理を記載することはほとんどありません。
二つ目の理由は、プログラムを動かすための環境を用意する必要があります。
初心者にとって、環境を準備するのは一苦労です。
そのため、擬似言語と実際のプログラミングの差を埋めるのは、初心者の方が一人でやるのは、結構大変なのです。
そこで、擬似言語を理解したあなたが、実際のプログラミングを最短ルートで学習できるよう、基本情報技術者試験の擬似言語で書かれたプログラムを、Pythonというプログラム言語で表現してみました。
また、たった1分でプログラムを実行できる環境もご紹介します。
あなたは、この記事を読むだけで、お金をかけずに一瞬でプログラムを動かせます。
Python(パイソン)とは、AIやアプリ開発など、さまざまな開発に対応できる汎用プログラミング言語です。私はディープラーニングの勉強や、Webサイトをスクレイピングする際に利用したことがあります。
プログラミングを実行する環境【準備不要、無料】
プログラミングを仕事や趣味で行っている人は、PC上に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パスポート試験の方が簡単です。
一度レベルを下げて理解してから、基本情報技術者試験に戻ってきましょう。
急がば回れです。