1.1
2.#!/usr/koeki/bin/ruby
# -*- coding: utf-8 -*-
total = 0
report = 1
score = []
x = 0
print"出席回数を入力してください。\n"
deta = gets.chomp!.to_i
while true
printf("%d回目のレポートの得点を入力してください(終了はexitと入力)\n", report)
score[x] = gets.chomp!.to_s
if score[x] == "exit"
report = report-1
break
elsif score[x].to_f > 8 #scoreが8点以上
print"最高得点は8点です。本当に間違いではありませんか\n"
print"y or n\n"
answer = gets.chomp!.to_s
if answer == "y"
end
if answer == "n"
print"入力しなおしてください。\n"
total -= score[x].to_f
redo
end
elsif score[x].to_f < 0 #scoreがマイナス
print"マイナスなんてことはありません。やりなおし\n"
total -= score[x].to_f
redo
end
total += score[x].to_f
if report >= 8
break
end
#p score
report += 1
x += 1
end
print"- - - - - - - - - - - - - - - - - - - - - \n"
sten = deta*2
printf("出席点%10d点\n",sten)
print"- - - - - - - - - - - - - - - - - - - - - \n"
print"レポート\n"
x = 0
total = 0
while x < score.length
if score[x] =="exit"
break
end
printf("%d回目 %10.1f点\n",x+1,score[x])
total += score[x].to_f
x += 1
end
print"- - - - - - - - - - - - - - - - - - - - - \n"
average = total / report.to_f
go = total + sten
printf("合計%12.1f点\n",go)
printf("平均%12.1f点\n",average)
if go >= 90
print"評価 秀\n"
elsif go >= 80
print"評価 優\n"
elsif go >= 70
print"評価 良\n"
elsif go >= 60
print"評価 可\n"
else
print"評価 不可\n"
end
3.
sime{c118xxx}% ./report4a.rb [~/program]
出席回数を入力してください。
12
1回目のレポートの得点を入力してください(終了はexitと入力)
8
2回目のレポートの得点を入力してください(終了はexitと入力)
7
3回目のレポートの得点を入力してください(終了はexitと入力)
6
4回目のレポートの得点を入力してください(終了はexitと入力)
7
5回目のレポートの得点を入力してください(終了はexitと入力)
5
6回目のレポートの得点を入力してください(終了はexitと入力)
8
7回目のレポートの得点を入力してください(終了はexitと入力)
6.5
8回目のレポートの得点を入力してください(終了はexitと入力)
8
- - - - - - - - - - - - - - - - - - - - -
出席点 24点
- - - - - - - - - - - - - - - - - - - - -
レポート
1回目 8.0点
2回目 7.0点
3回目 6.0点
4回目 7.0点
5回目 5.0点
6回目 8.0点
7回目 6.5点
8回目 8.0点
- - - - - - - - - - - - - - - - - - - - -
合計 79.5点
平均 6.9点
評価 良
★ブラックボックテスト
sime{c118xxx}% ./report4a.rb [~/program]
出席回数を入力してください。
12
1回目のレポートの得点を入力してください(終了はexitと入力)
5
2回目のレポートの得点を入力してください(終了はexitと入力)
-7
マイナスなんてことはありません。やりなおし
2回目のレポートの得点を入力してください(終了はexitと入力)
6
3回目のレポートの得点を入力してください(終了はexitと入力)
7
4回目のレポートの得点を入力してください(終了はexitと入力)
8
5回目のレポートの得点を入力してください(終了はexitと入力)
9
最高得点は8点です。本当に間違いではありませんか
y or n
n
入力しなおしてください。
5回目のレポートの得点を入力してください(終了はexitと入力)
7
6回目のレポートの得点を入力してください(終了はexitと入力)
6
7回目のレポートの得点を入力してください(終了はexitと入力)
8
8回目のレポートの得点を入力してください(終了はexitと入力)
7
- - - - - - - - - - - - - - - - - - - - -
出席点 24点
- - - - - - - - - - - - - - - - - - - - -
レポート
1回目 5.0点
2回目 6.0点
3回目 7.0点
4回目 8.0点
5回目 7.0点
6回目 6.0点
7回目 8.0点
8回目 7.0点
- - - - - - - - - - - - - - - - - - - - -
合計 78.0点
平均 6.8点
評価 良
☆ホワイトボックテスト
sime{c118xxx}% ./report4a.rb [~/program]
出席回数を入力してください。
12
1回目のレポートの得点を入力してください(終了はexitと入力)
7
2回目のレポートの得点を入力してください(終了はexitと入力)
8
3回目のレポートの得点を入力してください(終了はexitと入力)
6
4回目のレポートの得点を入力してください(終了はexitと入力)
7
5回目のレポートの得点を入力してください(終了はexitと入力)
exit
- - - - - - - - - - - - - - - - - - - - -
出席点 24点
- - - - - - - - - - - - - - - - - - - - -
レポート
1回目 7.0点
2回目 8.0点
3回目 6.0点
4回目 7.0点
- - - - - - - - - - - - - - - - - - - - -
合計 52.0点
平均 7.0点
評価 不可
4.
今回は、打ち込んだレポート得点を全て表示するために配列を使う。配列とは通
常は一つの値しかいれることのできない変数を、拡張して、複数の値を入れられ
るようにしたものだ。
5行目で score=[] でscoreは配列ということを表し、今回はインデックスとし
てxを用いており、配列の変数は0からスタートしているため、6行目で x=0 と
表している。前回と違う点は、scoreの後ろに[x]がついてることだ。これは繰
り返し継続する度、キーボードから打ち込まれた値はインデックスを1ずつ増加
させながら配列内に代入されことを表している。
40行目で、一番最初に打ち込まれた出席点に2を掛けることを表している。46行
目でいままで打ち込まれたレポートの点数を lengthメソッドを使って表示させ
る。47行目で exit を打ち込まれた終了することを表している。55、56行目で、
合計と平均を計算している。57、58行目の 12という数字は文字列をそろえるた
めの数字だ。59行目は、56行目でだした合計をif文を用いて、成績をつける。if
の横に書いてある条件を満たすか満たさないかで判定され、満たした場合にはそ
の下にかかれた処理が実行される。二つ以上の条件があるため elsif 使いなが
ら条件を増やしていく。
5。今回もかなり難しかったです。友達の協力のもと完成できて良かったです。
いままでの知識も使いながらだったので記憶力がためされました。実際、ここに
これいれてみようかなっておもっていれたのが当たったところもあり、完璧には
理解できていません。先生の解説をはやくききたいです。