<一覧に戻る

擬似言語の代入とは何か

代入は、変数に値を入れる操作です。

擬似言語では を使います。 矢印が出てきたら、右側から左側へ値が入る、と読みます。

変数が「値を入れるための入れ物」なら、代入は「その入れ物に値を入れる作業」です。 基本情報技術者試験の擬似言語でも、代入はほとんどのプログラムで使われます。

右のシミュレーターで、基本の形を確認しましょう。

右側の値を左側へ入れる

○main
整数型: x
x ← 3
print(x)

出力は 3 です。

x ← 3 は、x に3を入れるという意味です。 左側にある x が変数で、右側にある3が入れる値です。

ここで大切なのは、 の向きです。 数学の等号のように「左右が同じ」という意味ではありません。

x ← 3 は、「3をxに入れる」と読みます。 矢印の向きに合わせて、右から左へ値が移動すると考えると分かりやすいです。

計算結果を代入する

代入では、数字をそのまま入れるだけでなく、計算した結果を入れることもできます。

○main
整数型: x
整数型: y
x ← 3
y ← x + 7
print(y)

出力は 10 です。

y ← x + 7 では、右側の x + 7 を先に計算します。 このとき、x には3が入っているので、3 + 7 になります。 計算結果は10です。

その10を、左側の y に入れます。

つまり、代入を読むときは、次の順番で考えます。

  • 右側にある式を見る
  • 変数があれば今の値に置き換える
  • 計算する
  • 結果を左側の変数へ入れる

この順番はとても大切です。 擬似言語のトレースでは、右側を先に処理することを忘れないようにしましょう。

代入と等号は違う

擬似言語では、代入に を使います。 一方で、値が等しいかどうかを調べるときは = を使います。

x ← 5

これは、x に5を入れるという意味です。

x = 5

これは、x は5と等しいですか、という比較です。

最初は似ているように感じるかもしれません。 しかし、意味はまったく違います。

代入は「値を入れる」。 比較は「値を比べる」。

この違いを押さえておくと、if文などの条件式を学ぶときにも混乱しにくくなります。

変数の値を別の変数に入れる

代入では、ある変数の値を別の変数に入れることもできます。

次のコードの出力を予想してから実行してください。

○main
整数型: a
整数型: b
a ← 5
b ← a
print(b)

出力は 5 です。

b ← a では、a に入っている値を b に入れています。 この時点で a は5なので、b にも5が入ります。

ここで、ba そのものになるわけではありません。 a の中に入っていた値をコピーして、b に入れていると考えると分かりやすいです。

代入後に元の変数が変わっても、別の変数は自動では変わらない

次のコードを見てください。

○main
整数型: a
整数型: b
a ← 5
b ← a
a ← 9
print(b)

出力は 5 です。

b ← a の時点で、b にはそのときの a の値5が入ります。 その後で a が9になっても、b は自動では変わりません。

流れを追うと、次のようになります。

  • a に5を入れる
  • b に、今の a の値5を入れる
  • a に9を入れる
  • b は5のまま
  • b を表示する

この考え方は、擬似言語の問題でとてもよく出てきます。 代入は、その瞬間の値を左側に入れる操作です。

右側と左側に同じ変数がある代入

次のような代入もよく出てきます。

○main
整数型: count
count ← 1
count ← count + 1
print(count)

出力は 2 です。

count ← count + 1 は、最初は少し不思議に見えるかもしれません。 左側にも右側にも count があるからです。

この場合も、右側を先に計算します。

  • 右側の count + 1 を見る
  • 今の count は1
  • 1 + 1 を計算して2になる
  • その2を左側の count に入れる

つまり、count の値が1から2に変わります。

この形は、繰返し処理で回数を数えるときによく使います。 基本情報技術者試験のアルゴリズムでも、カウンタや合計の更新で何度も登場します。

合計を更新する代入

もう少し実用的な例を見てみましょう。

○main
整数型: sum
整数型: score
sum ← 0
score ← 80
sum ← sum + score
print(sum)

出力は 80 です。

sum は合計を入れるための変数です。 最初に0を入れておき、あとから score の値を足しています。

sum ← sum + score は、今の合計に点数を足して、新しい合計に更新するという意味です。

このような代入は、配列や繰返しを学ぶとさらによく出てきます。 今は、「右側を計算して、その結果で左側を更新する」と読めれば大丈夫です。

代入はプログラムの流れを作る

代入が分かると、プログラムの流れが見えやすくなります。 なぜなら、変数の値は代入によって変わるからです。

擬似言語を読むときは、次のことを意識しましょう。

  • を見つけたら代入だと判断する
  • 右側を先に読む
  • 変数があれば今の値に置き換える
  • 計算結果を左側へ入れる
  • その後は新しい値として扱う

最初は、1行ずつメモしながら読むのがおすすめです。 シミュレーターで実行して、予想した値と出力が合っているか確認しましょう。

代入は、擬似言語の中でも特に基本になる考え方です。 ここをしっかり押さえると、条件分岐や繰返し処理、アルゴリズムのトレースも読みやすくなります。

このトピックの他のセクション:

  1. 擬似言語の変数とは何か
  2. 擬似言語の代入とは何か(現在表示中)
  3. 擬似言語で値の上書きする方法

出力結果:


            

診断:


            

変数: