条件で分かれることと、同じことを繰り返すこと。この 2 つが入ると、プログラムは急に賢く見える
50分 | キーボードがあるとよい準備 教室コードは新しいものにする。「教師」を押す。Python はページの中で動く。前回のコードは端末に残っている。
時間配分 前回まとめ・目標 4分 / 節1 分かれる 14分 / 節2 繰り返す 14分 / 節3 止まらない 12分 / まとめ・自己評価・ふりかえり 6分
教科書: 新編情報Ⅰ 26 プログラムの基本構造 2(p.74)。Python。
この回の評価(指導要領 (3) ア(イ) イ(イ)。分岐構造と反復構造。単元設計は 単元設計のページ)
ふりかえりの枚の自己評価の分布を見て、「まだ」が多い目標を次回冒頭で拾い直す。
前回のプログラムは全部、上から下へ一直線だった。第4回のフローチャートには「ひし形」(判断)と「戻る矢印」(繰り返し)があった。今日はその 2 つを書く
x が偶数なら Guusuu、そうでなければ Kisuu。どう書くか
前回「まだ」が多かった変数を、x=x+5 を 1 問やって拾う(2分)。
偶数か奇数か
3 回、10 未満の間
無限ループを直す
もし〜なら、そうでなければ

※ if の行の終わりに「:」。条件が成り立つときの処理は、行の頭を 4 つ空ける(字下げ)。== は「等しいか」、= は「入れる」。比較: == != < > <= >=
進め方(12分) 実行 → Kisuu。x=20 → Guusuu。「x%2==0 は何を調べている?」→ 2 で割った余りが 0 か(前回の %)。
教科書問題①: 3 の倍数(if x%3==0:)、Child/Adult(if x<12:)。
よくあるエラー 字下げがない(IndentationError)、: を忘れる、= と == を間違える(x=2 は代入なので if の条件には書けない)。「字下げは『この処理は if の中』という印」。Tab キーで 4 つ空く。目標 01。
コンピュータは同じことを正確に何度でも

※ for は「回数が決まっている」繰り返し。range(3) は 0,1,2 の 3 回。while は「条件が成り立つ間」繰り返す。字下げした行だけが繰り返される。end は字下げがないので 1 回
進め方(12分) 実行。「end が 3 回出なかったのはなぜ?」→ 字下げがないから繰り返しの外。
for と while の使い分け: 回数が決まっているなら for(range)。条件で止めるなら while。
教科書問題②: 50 未満の偶数。k=2 while k<50: print(k) k=k+2。range(2,50,2) でも書ける(発展)。
「range(1,10) は 1〜9」(終了値は含まない)を強調。目標 02。
必ず終わる、を書き忘れると

※ k が変わらないので、k<10 がずっと成り立つ。「必ず終了する」はアルゴリズムの条件(第4回)。繰り返しの中で、条件に関わる変数を変えているかを確かめる
進め方(10分) 実行すると 1 が大量に出て、4 秒で「止めました」。「なぜ?」→ k=k+1 がない。直すと 1〜9 と end。
「10 以下」(<=)にすると 10 まで出る。境界の条件を確かめる習慣。
実際のコンピュータでは無限ループはアプリの「固まる」原因の一つ。「必ず終わる」を書くのは書く側の責任。目標 03。
| 分岐構造 if / else | 条件が成り立つ(真)とき if の中、成り立たない(偽)とき else の中を実行。条件は比較演算子(== != < > <= >=)で書く |
| 反復構造 for | 回数が決まった繰り返し。for cnt in range(3): で 3 回。range(1,10) は 1〜9 |
| 反復構造 while | 条件が成り立つ間、繰り返す。条件に関わる変数を中で変えないと無限ループ |
| 字下げ | if・for・while の中の処理は行の頭を 4 つ空ける。字下げが「どこまでが中か」を決める |
※ 順次・分岐・反復の組み合わせで、あらゆるアルゴリズムが表せる。第4回のフローチャートの四角・ひし形・戻る矢印がそのまま対応する
次回、分岐と反復を組み合わせ(7 の倍数だけ表示)、リストを使う。
if と for を変換し、Python の字下げの代わりに何が使われているかを見つけて出す
進め方 見つけた人から出す。全員に同じ答えを求めない。出てきたものを 2〜3 個読み上げ、共通点を言葉にする。
5分。if と for の対応だけ。もし〜ならば、繰り返し、の書き方を見る。
道具は外で公開されている Web アプリ。この授業のページの中で開くので、別のページへは移らない。閉じれば、そのままこの枚に戻る。ブラウザの中で動き、入力はこの授業のサーバーには送られない。
3 つの目標それぞれに、できた/だいたい/まだ、を 1 つ選ぶ。右の帯にクラス全体の分布が出る
1 分。「まだ」が多い目標は、次回の冒頭で拾い直す。
一文でよい。「〇〇で動かなかった。△△を直したら動いた」の形
3 分。詰まりの種類を投影で分類(字下げ・コロン・= と ==・range の範囲)。次回はリストと input。