5 月 9 日のレポートについて 語学クラス: XXXX語 XX 系: XXXX系 学籍番号: C106XXXX 氏名: XXXXXXXXX 1、筆記問題。説明は端的かつ明確にせよ。意味の通らない解答は採点しない。 A. 2進数表示の 100011 すなわち "0b100011" は 10 進数、および 16 進数ではいくつか。 10 進数では 0d**, 16 進数では 0x** と、その進数をあらわして書け。 途中式を用いて答えよ。 10進数 1の部分を計算すると 2の5乗+2の1乗+2の0乗=35 od35 16進数 100011を分けて考える。つまり0010と0011になる。この数を16進数に変換する。 0010=2 0011=3 組み合わせると23 Ox=23 B. 今日の始めに学んだように、何かの出来事を if 文や while 文を使って分解して書け。ルビ緒ロボットの例を参考にせよ。 テストの点数をきそっていたところ 「AならばBをして...そうでなければ...」 という行動をとっていたことがわかった。これをプログラムにする。 if テストの結果を見る if A自分より点が高い(かどうか調べる) then B(点が高いならば)泣く else (そうでなければ)喜ぶ end 2、ある日付と曜日を指定する。(例えば 2007 年 6 月 1 日は 金曜日である。) その日から何日か後の日付 (例えば 6 月いっぱいまでの日付まで) を入力する と、その日が何曜日であるか答え、平日は OK、土日は NG と表示するプログラ ム bank.rb 。銀行のインターネットバンキングのシステムである。(B+) 作ったプログラム #!/usr/koeki/bin/ruby STDERR.print("12 月の日にちを入力して下さい: ") day = gets.chomp.to_i d = (4 + day) % 7 # 12 月 1 日は土曜日なので # day == 1 なら d = 5 となるよう調節 # days = に OK か NG か入力 if d == 0 wday = "月" days = "OK" elsif d == 1 wday = "火" days = "OK" elsif d == 2 wday = "水" days = "OK" elsif d == 3 wday = "木" days = "OK" elsif d == 4 wday = "金" days = "OK" elsif d == 5 wday = "土" days = "NG" else wday = "日" days = "NG" end printf("%d 日は%s曜日です。銀行は %s です。\n", day, wday, days) # 曜日と銀行がOKかNGか表示する。 実行結果 irsv{c106089}% chmod +x bank.rb [~/Ruby] irsv{c106089}% ./bank.rb [~/Ruby] 12 月の曜日を当てます。日にちを入力して下さい: 1 1 日は土曜日です。銀行は OK です。 3、感想 今回はIF文を詳しいところまで学んだと思う。特に難しかったところは余りを出 すプログラムだと思う。授業中にわからなかったところはレポートのときに復習 できたのでよかったと思う。次回は比較検討などをするようなので、わからない ところが多くなると思うがしっかり復習して覚えるようにしたい。