※2024年4月以降受験する方で、生成AIに関する出題対策をしていない方、以下の動画を見ないと20点損します!
今回の記事ではITパスポート試験で出題される「擬似言語の基礎と基本的な文法」の説明を行います。
今回の記事を読んで頂ければ、これまで全く擬似言語の知識がゼロの方でも
「なんだか擬似言語は解けそうだな」
「できそうだな」
と思ってもらえるような内容になっています。ぜひ、こちらの記事を読んで擬似言語にチャレンジしてみてください。
なお、動画で内容をチェックしたい方は、本記事のYouTube版をご覧いただければと思います。
目次
擬似言語とは?
突然ですが、魚釣りで使うルアーをご存知でしょうか。
ルアーは日本語で疑似餌(ぎじえ)と訳されます。疑似餌とは「本物に似せた、ニセモノの餌」。つまり、擬似言語とは「本物に似せたニセモノのプログラミング言語」ということになります。
なぜ、ニセモノである擬似言語を使うのか?
なぜ、ニセモノのプログラミング言語を使うのかというと、そのメリットは2つあります。
1つ目は、英語だけではなく日本語も使用して簡単に勉強できることです。擬似言語は「解答を出力する」「値を1つずつ増やす」などの日本語の文章で指示を書く部分もあります。
2つ目は、プログラミング的思考能力を磨くことに集中できることです。
実際のプログラミング言語はそれを変換してプログラムとして動かすために、プログラムの内容を考えること以外に、いろいろ面倒くさいことに気を使う必要があります。しかし、擬似言語では、プログラミング的思考能力を磨くことだけに集中できます。
以上の2点です。
プログラミング的思考能力とは?
それでは、プログラミング的思考能力とは何でしょうか? プログラミング思考能力とは、アルゴリズムを読み解いたり考えたりする力のことです。
そして、アルゴリズムとは順次、選択、繰り返し、この3つとこの3つの組み合わせだけです。順次・選択・繰り返しの例をフローチャートで見ていきましょう。
上図はたこ焼きの作り方をフローチャートにしたもので、
- 作成開始から容器に水を入れ
- 小麦粉をかき回す
- 小麦粉が全部溶けた?(イエス)焼き器に溶けた小麦粉とタコを入れて焼く、(ノー)小麦粉がまだ溶けてなかったらさらにかき回す
- タコを入れて焼く
- 焼く間、焦げないように、ひっくり返すことを3分間 繰り返す
- そして3分たつと繰り返し終了でたこ焼きがおいしそうにホカホカ焼ける
というプロセスがあります。この過程での「イエスかノーか」で処理が変わる部分が「選択」、タコを入れて焼く間、ひっくり返すことを3分間繰り返す部分が「繰り返し」となります。また、「順次」というのはまっすぐ進むことを指し、これらの組み合わせだけでアルゴリズムが成り立ちます。
擬似言語において、まずは覚えてほしい5つの用語
続きまして、この動画で覚えてほしい用語を紹介します。最初にまず覚えてほしいのは、次の5つです。
- 変数
- データ型
- 配列
- 関数
- コメント
これらの5つの用語を理解することで、基本的な疑似言語のプログラミング文の意味が分かるようになります。これらは英語よりも全然簡単です。
変数
変数については、中学や高校の数学で習ったxやyがありますね。数学ではx = 10やy = 20のようにxやyの中に入っている数字を求めました。
擬似言語では数学のxやyなどとは異なり、新しい変数xを使う際には「xという変数を使いますよ」とコンピューターに教える必要があります。これを「宣言」と言います。
数学の変数xの中身は主に数値が入りますが、擬似言語の変数には文字列(文字の並びのこと)なども入ります。そのため、「この変数には整数が入りますよ」とか「この変数には文字列が入りますよ」とコンピューターに詳しく教えなければなりません。
この「変数」に入る種類を「データ型」といい、iパス(ITパスポート)では主に以下の3種類のデータ型が出題されます。
- 整数型:例)0,1,-1,16,100,-99 など
- 実数型:整数に加え、小数点のある数値も含む
- 文字列型:文字の並び
変数のイメージは「箱」です。例えば、「kyouka」と書かれた箱があり、これは文字列のデータを入れる変数とします。そのことを宣言するには、以下のようにプログラムを記述します。
文字列型:kyouka
これは「kyoukaという名前の変数、つまり箱を使いますよ」とコンピューターに教えています。変数「kyouka」に値を入れることを「代入」と言います。代入の書き方は
kyouka ← “国語”
のようになります。代入は実際には「上書き」の意味を持ちます。変数には様々な値を次々と代入することが一般的です。文字列型の値はダブルクォーテーション(””)で囲みますが、数字を代入する場合はクォーテーションは不要です。
ここでは練習問題を解いてみましょう。変数ABCがあり、以下のような操作をした場合、最終的にABCの中の値はいくつになるでしょうか。これは3行の簡単なプログラムです。
まず、「整数型:ABC」という宣言があります。これはABCという整数型の変数をこれから使いますよ、という意味です。ABCという変数、整数型の変数の箱を用意してください、と言う意味です。
そして、2行目で1を代入します。すると、変数ABCの中には1が入ります。
続いて、3行目で「2プラスABC」をABCの箱に代入します。つまり、2プラス1を改めてABCに上書きすることで、ABCは3になります。最終的にこの3行が終わった時点で、ABCの中身は3となります。
配列
続いて覚えておきたい用語として「配列」があります。配列とは、同じデータ型の変数が並んだものです。これはコインロッカーのイメージで理解できます。
コインロッカーはロッカーごとに番号が割り振られており、配列もそれぞれの要素を特定するための添字と呼ばれる数字を使用します。
例えば、「kamoku」という名称の配列が5つの要素を持つ場合、kamoku[1 ]、kamoku[2 ]などと記述することで、それぞれの要素を特定できます。添字(そえじ)は0または1から始まる整数値で、配列kamokuには5つの要素が並んでいます。
このkamoku[1 ]には「世界史」、kamoku[2 ]には「日本史」という文字列を入れるなど、配列を使ってデータを管理することができます。
関数
関数は、簡単に言えばミニプログラムです。例えば、「nibai」という名前の関数があるとしましょう。この関数は、数字を一つ渡すとその数字を2倍にして結果を返します。擬似言語でこれを記述すると、
〇nibai(整数型: a)
return a*2
となります。これは、数字を1つ渡すと2倍にして結果を返す関数の記述です。アスタリスクは掛け算の意味で、aに2を掛けたもの、つまりaを2倍したものを返すという意味になります。
変数aには任意の数字を代入できます。この「整数型: a」というのは、aという整数型の変数を宣言しているという意味です。nibai関数を使うと、渡された数値aの2倍を返します。
※なお、上記のnibai の前に付いている「○」は「『nibai』という名前の関数を使う」と宣言するための記述ルールです。
この関数は自動販売機のようなもので、コインを入れると缶ジュースが出てくるように、数値を入力するとその2倍の数値が出力されます。一度宣言した関数は、大元のプログラムの中で何度でも使うことができます。
例として、以下の2行を見てみましょう。
整数型:kekka ← nibai(5)
kekka を出力する
この行のプログラムでは、nibai関数を呼び出し、整数型の変数kekkaに5を渡し、関数nibaiの結果をkekkaに代入しています。つまり、5を2倍した10をkekkaに代入しています。この場合、プログラムの実行結果として10が出力されます。
関数を呼び出す際に渡すデータ(この例では5)を引数(ひきすう)と呼び、関数を実行した後の結果を戻り値と呼びます。nibai関数では、引数を2倍にした数値が戻り値となります。自動販売機で言えば、コインが引数で、出てくる缶ジュースが戻り値となります。
コメント
コメントはプログラミングにおける簡単な用語で、人間用のメモや注意書きを意味します。例えば、プログラムに「kekkaにnibai 5を引数とするnibai関数の値を代入」という説明を加える際、スラッシュ二つ(//)を使用して書きます。
kekka ← nibai(5) // 関数nibai(5) の戻り値をkekka に代入
この部分はコンピューターには不必要で、他の人がプログラムを理解するために用います。コンピューターは「//」以降のコメントを無視するため、プログラミングのロジックには影響しません。
コメントは試験のプログラム部分にもよく出てくるので、問題を解く際にはコメント文にも注目すると良いでしょう。また、複数行にわたる長いコメントを書きたい場合は、「/*」と「*/」で括ることで、何行に渡ってもコメントを記述できます。冒頭と文末にこれらの記号があれば、その間の全てのテキストがコメントとして扱われます。
擬似言語入門① まとめ
以上、ITパスポートの記事言語で覚えておきたい用語を5つご説明しました。
英語などの外国語や本物のプログラミング言語に比べても、はるかに覚えることが少ないことがお判りかと思います。
次回は、実際に疑似言語のサンプル問題(令和3年サンプル問題1)を解きながら、アルゴリズムを実現する「順次」「選択」「繰り返し」のうち、「繰り返し」についてご説明します。
ぜひ頑張ってくださいね。
■
<本シリーズは全7回続きます>