未開始10

変数と条件分岐を1行ずつ追う

代入の順番と境界値に注意して、プログラムの状態を表にします。

この教材でできるようになること

  • 代入を等式と区別する

  • 独立したifと分岐の組を区別する

  • 境界値を代入して条件を検証する

1

考え方と手順

代入では右辺を現在の値で計算し、その結果で左辺を更新します。x ← x + 1は「同じ数が等しい」という式ではなく、xを1増やす操作です。上から順に処理し、各行の直後の値を表にすると混乱しにくくなります。

独立した二つの「もし」はどちらも評価します。一方「もし〜そうでなければ」では片側だけを実行します。「以上」と「より大きい」は境界値で結果が変わるので、境界の1つ下・一致・1つ上を試します。本教材の ← は代入、= は等しいかの比較とし、字下げされた行を条件内の処理とします。

2

例題

←は代入、>=は「以上」を表します。字下げされた行は条件が真のときだけ実行します。

x ← 4
y ← x + 2
x ← y - 1
もし x >= 5 ならば:
  y ← y + x

問い:上から順に実行した後のxとyを求めましょう。各行の直後の値も書き出してください。

3

解答と考え方

  1. 1

    解答:最終状態はx=5、y=11です。途中の状態は次の手順で確認できます。

  2. 2

    1行目の後はx=4。2行目の後はy=6。

  3. 3

    3行目でx=5に更新する。yは6のまま。

  4. 4

    x>=5は真なのでy=6+5=11。最終状態はx=5、y=11。

4

別の条件で試す

x=10のとき「もし x > 10 ならば x ← 0」を実行すると?

条件と処理の意味を確かめて選びましょう。

最も適切な答え
5

確認問題の前に

  • 代入を等式と区別する

  • 独立したifと分岐の組を区別する

  • 境界値を代入して条件を検証する

仕上げ

確認問題

確認問題に合格するとこの単元を完了します。

合格ラインを読み込み中