5月9日のレポートについて 氏名 : XXXXXXXX 学籍番号 : c106XXXX 系 : XXXX系 語学 : XXXX語XX 1. A."Ob100011"を10進数にする。 2進数で100011という数は以下のように表すことができる。 1*2の5乗 + 0*2の4乗 + 0*2の3乗 + 0*2の2乗 + 1*2の1乗 + 1*2の0乗 これを計算すると 35 になる。よってOd35となる。 "Ob100011"を16進数にする。 上記で計算した10進数を使う。16進数は10進数を商が0になるまで16で割り続ける ことで表すことが出来る。 35/16 = 2余り3 2/16 = 0余り2 最後の余りから先頭に並べ、答えは 23 になる。 参考文献 : http://www.asahi-net.or.jp/~AX2S-KMTN/ref/bdh.html B.次の日、1限があった場合は早起きをする。もし2限からなら弁当を作る。学校 が休みならゆっくり休む。というプログラムをつくる。 if 明日は1限がある 早く起きる elsif 2限からである 弁当をつくる else ゆっくり休む 2.A. ●プログラム● #!/usr/koeki/bin/ruby total = 50 a = 1 while true STDERR.printf("歩いた歩数[歩] ( 入力終了は q ) : ") a = gets.chomp if a == "q" break end total -= a.to_i if total < 40 then print "ダイエット成功おめでとう!\n" break end printf("ただ今の体重は %d[kg] でした\n", total) end ●結果● irsv{c106052}% ./diet.rb [~/Ruby] 歩いた歩数[歩] ( 入力終了は q ) : 3 ただ今の体重は 47[kg] でした 歩いた歩数[歩] ( 入力終了は q ) : 2 ただ今の体重は 45[kg] でした 歩いた歩数[歩] ( 入力終了は q ) : 4 ただ今の体重は 41[kg] でした 歩いた歩数[歩] ( 入力終了は q ) : 5 ダイエット成功おめでとう! ●もとにしたプログラムからの変更点● カロリー計算のプログラムをもとに作った。変数を変え、一定の数値に達すると プログラムが終了するようにした。 ●考察● 1歩で1キロ減る計算なので、プログラム」に間違いはない。 C. ●プログラム● #!/usr/koeki/bin/ruby while true STDERR.print("6 月の曜日を当てます。日にちをどうぞ: ") day = gets.chomp.to_i if day<1|| day>30 then print("1日から30日までの日付を入力してください。\n") else break end end d = (4 + day) % 7 # 6 月 1 日は金曜日なので # day == 1 なら d = 5 となるよう調節 if d == 0 wday = "日" elsif d == 1 wday = "月" elsif d == 2 wday = "火" elsif d == 3 wday = "水" elsif d == 4 wday = "木" elsif d == 5 wday = "金" else wday = "土" end if d == 0 || d == 6 then printf("%d 日は%s曜日なので、使用不能です。\n", day, wday) else printf("%d 日は%s曜日なので、使用可能です。\n", day, wday) end ●結果● irsv{c106052}% ./bank.rb [~/Ruby] 6 月の曜日を当てます。日にちをどうぞ: 48 1日から30日までの日付を入力してください。 6 月の曜日を当てます。日にちをどうぞ: 3 3 日は日曜日なので、使用不能です。 ●考察● 30以上の数値を入力すると振り出しに戻るプログラムを入れた。 ●感想● 今回のプログラムは本当に悩んだが、なんとか自分の力でつくることができた。 この調子で次も自分の力で解決出来るよう、頑張りたい。