1.実施した課題の番号 1 2.作成したプログラム #!/usr/koeki/bin/ruby # -*- coding: utf-8 -*- code = [] total = 0 number = 1 x = 0 print"出席回数を入力してください\n" kaisu = gets.chomp!.to_f ten = kaisu*2 print"レポートの合計得点、平均点を求めます。\n" print"途中でレポートの合計得点、平均点を求める場合はexitを入力。\n" while true if number == 9 break end printf("%dつ目のレポートの得点は?(終了はexit)\n", number) code[number-1] = gets.chomp! score = code[number-1].to_f if code[number-1] =="exit" break elsif code[number-1].to_f < 0 print" マイナスはありえません。得点を再入力してください。\n" redo elsif code[number-1].to_f > 8 printf("得点が%.1f点です\n",score) print"得点が正しけばyesを入力してください\n" print"得点が間違っていればnoを入力してください\n" mozi = gets.chomp! if mozi == "yes" print"先程の得点のままですね\n" elsif mozi == "no" print"再入力をお願いします\n" redo end end number += 1 total += score end printf("出席点 %3.1f点\n",ten) print"レポート\n" while x < code.length printf("%d回目 %3.1f点\n",x+1,code[x].to_f) x += 1 if code[x] == "exit" break end end average = total / (number-1) goukei = total + ten printf("合計 %3.1f点\n",goukei) printf("%d回のレポート平均 %3.1f点\n",number-1,average) if goukei >= 70 print"評価 秀 \n" elsif goukei >= 60 print"評価 優 \n" elsif goukei >= 50 print"評価 良\n" elsif goukei >= 40 print"評価 可\n" else print"評価 不可\n" end 3.プログラムの実行結果 出席回数を入力してください 8 レポートの合計得点、平均点を求めます。 途中でレポートの合計得点、平均点を求める場合はexitを入力。 1つ目のレポートの得点は?(終了はexit) 10 得点が10.0点です 得点が正しけばyesを入力してください 得点が間違っていればnoを入力してください yes 先程の得点のままですね 2つ目のレポートの得点は?(終了はexit) 10 得点が10.0点です 得点が正しけばyesを入力してください 得点が間違っていればnoを入力してください no 再入力をお願いします 2つ目のレポートの得点は?(終了はexit) 5 3つ目のレポートの得点は?(終了はexit) 8 4つ目のレポートの得点は?(終了はexit) 8 5つ目のレポートの得点は?(終了はexit) 8 6つ目のレポートの得点は?(終了はexit) 8 7つ目のレポートの得点は?(終了はexit) 8 8つ目のレポートの得点は?(終了はexit) 8 出席点 16.0点 レポート 1回目 10.0点 2回目 5.0点 3回目 8.0点 4回目 8.0点 5回目 8.0点 6回目 8.0点 7回目 8.0点 8回目 8.0点 合計 79.0点 8回のレポート平均 7.9点 評価 秀 4.プログラムの説明 code = []では配列に入るのが変数なのでこのように指定しない形にし、入力し た値を保持するようにした。number = 1というように初期値を設定したので code[number-1] = gets.chomp! score = code[number-1].to_f というように[number-1]してレポートの何回目と得点が配列でずれないようにし た。 while x < code.length ではlengthメソッドを使うことにより配列に代入した値を返すようにした。 printf("%d回のレポート平均 %3.1f点\n",number-1,average) では %3.1fというように全体で3桁の小数第1まで表記されるようにした。 5.感想 10人くらいの人に今回の課題のアドバイスなど教えたりして自分の理解が深まっ た。また、自分で課題を終わらせた後、人に教えていくうちに新たな発見があり このよう?にすればプログラムが短縮できるというように学ぶことがあったので良 かった。 6.参考文献 神田先生の説明 http://roy/~naoya/ruby/6.html (参照2019/5/19)