{{category HSP}} !!!03. 配列、繰り返し、データの記録と保存など {{outline}} ---- * 各自の「10問クイズ」の課題をお互いに試す。 * 感心した点と、改善するとよい点を、コメントする。 ** それぞれの人のプログラムのスレッドにコメントを「返信」する。 !! 10問作ってみての感想は? * 行数は何行? * 次は、20問作ってみようかな? !! 3-1 配列 *プログラム例: {{ref 10monQuiz01.hsp}} ! 3-1-1 配列とは * 変数に複数のものを入れられるようにしたもの。 * 番号付の箱をならべてひとまとめにしたイメージ。 * 番号で要素を指定できる(0番から始まる点に注意) * 要素の数を調べる length(配列名) ! 3-1-2 配列を使ったプログラミングのコツ * 番号で対応付ける。1番の問題には1番の解答。 * 真・偽を数字で表しておく。(1は真、0は偽) * ポイント:呈示内容と、処理部分をわけて書く。 !! 3-2 forを使った繰り返し {{pre for 変数, はじめの数, 繰り返し回数, 増やす量 処理を書く next }} * i を0から10回繰り返す。1ずつ増やす。 {{pre for i, 0, 10, 1 mes i next }} * 0から9まで10個の数字が「メッセージ」出力される。 !! 3-3 ifとelse で場合分け {{pre if 条件 { すること } else { その他の場合にすること } }} !! 3-4 計算(+ - * /): 整数と小数 * デフォルトは整数 * 小数まで扱うには、別途宣言する。double() * 整数にするには、int() {{pre wariai = double(wariai) ; 割合を実数(小数も)で maru = double(maru) zenbu = double(zenbu) wariai = (maru/zenbu) * 100 ; 小数点以下も含めて計算 wariai = int(wariai) ; 整数(小数点以下切捨て)に戻す }} !! 3-5 その他の注意点 * 同じことを何度もするときは、サブルーチンにまとめること * 利用者にフィードバックを返すこと !! 3-6 データの記録と保存:結果をファイルに記録する *二つ目のプログラム例:{{ref 10monQuizB.hsp}} ! 3-6-1 使いやすくする改善ポイント * 問題番号も出るように * 条件に応じてメッセージを変える。 ** よくできました、がんばりましょう、もういちど * 背景を変えることで、場面の変化をユーザーに知らせる。 ** 変化には「意味」をもたせる ** 注意:無意味な変化は混乱のもと ! 3-6-2 回答の記録:note系の命令群 {{pre notesel 変数 noteadd 記録内容 notesave "ファイル名" }} * notesel で事前に「記録ノート」を用意。 * noteadd する度に「記録ノート」に一行ずつ記入されていく * 最後に、「記録ノート」を、ファイルとして保存する。 {{pre noteadd "正答率は"+wariai+"%でした" notesave "log.txt" }} !! 今日の課題 ! 自分の「10問クイズ」を数を増やし、改良してください。 +配列を使うこと +問題数を何問(11問以上)にしても、「処理部分」を変えなくてすむようにすること +使う人にとってわかりやすくすること +結果をファイルに保存できるようにすること