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