課題
プログラムにおける繰り返しと条件分岐について学習した上で,このページの問題に答えてください.解答はPandAで提出してください.
まず次のページの説明を読んで,繰り返しと条件分岐について学習してください. 同じページでサンプルプログラムも提供しています. ダウンロードして,エディタで開いてみて,また動かしてみてください.
プログラムのファイルは,これまでに本科目で作成したプログラムと同じフォルダに保存してください.
ExBasicInfo > Programming
問題
学習を終えた後,次の問題に答えてください.
次にタートルグラフィクスのプログラムを示します.
このプログラムでは,実行後に9行目の処理で指定されるnの値によって,描かれる図形の構成が変化します. nの値はNmin以上の奇数であることを想定しています(5行目でNmin=3と指定していて,Nmin自体も奇数です). このプログラムを,以下の1,2にしたがって変更して, 変更したプログラムを提出してください.
IDLEでプログラムを開いて,メニューの[Options]から[Show Line Numbers]を選ぶと行番号が左端に表示されますので,活用してください.
[Options] → [Show Line Numbers]
- このプログラムには同一の処理が(2行以上を単位として)連続で繰り返し記述されている箇所があります.それらをfor文でそれぞれ書き直してください.
-
上で述べたように,プログラムの9行目では,Nmin以上の奇数を指定することを想定しています(Nmin=3と定義していて,Nminも奇数です).
しかし想定される条件を満たさない数が誤って指定されることも考えられます.
そこで指定された値が適切でない場合,次のようにnを補正することを考えます.
・nがNmin未満なら,nをNminに補正する ・nがNminより大きい偶数であれば,nをn+1に補正する
このような補正を行う処理を9行目のすぐ下に追加してください. なお9行目の処理でnには整数が代入されるようになっています(数値以外を指定した場合は警告が表示されます.入力を「キャンセル」するとプログラムがすぐに終了します).
[参考] 剰余算
「a % b」によって,aをbで割った余りを計算できます.
10 % 3 # ==> 1 16 % 7 # ==> 2