未開始約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
解答:最終状態はx=5、y=11です。途中の状態は次の手順で確認できます。
- 2
1行目の後はx=4。2行目の後はy=6。
- 3
3行目でx=5に更新する。yは6のまま。
- 4
x>=5は真なのでy=6+5=11。最終状態はx=5、y=11。
4
別の条件で試す
x=10のとき「もし x > 10 ならば x ← 0」を実行すると?
条件と処理の意味を確かめて選びましょう。
5
確認問題の前に
代入を等式と区別する
独立したifと分岐の組を区別する
境界値を代入して条件を検証する
仕上げ
確認問題
確認問題に合格するとこの単元を完了します。