第4回 基礎プログラミング I レポート課題 氏名:XXXXXXXX 学籍番号:C10XXXX 語学クラス:英語XX コース(系):社会系 1.筆記問題 A. 0b10111を0dつまり10進方表示にする。それにはまず、10111を五つに分けてから、 以下の通りにする。 2^4 2^3 2^2 2^1 2^0 1 0 1 1 1 こうなると、16*1、8*0、4*1、2*1、1*1となって、さらに計算を進めると、16、 0、4、2、1となってさいごにすべてを足すと23になり、0b23になる。そして計算 と解の確認は以下の通りである。 2^4*1 16 2^3*0 0 2^2*1 4 2^1*1 2 2^0*1 1 16+0+4+2+1 23 確認の結果が一致していることが証明された。 つぎに、0b10111を0x16進方でひょうじする。これには、先に行ったように、10 進法で表示する。その結果である数字の23を商が0になるまで16で割って、余り の数に着目する。 確認のため、実際に計算する。 23/16=1 余り7 7/16=0 余り7 と言うことになる。 B. もしA(時間)が6時ならばB(行動)は散歩する もしA(時間)が8時ならばB(行動)は入浴する それ以外のA(時間)ならばB(行動)は散歩する →if 第一の選択肢 →elsif 第3、第4移行の選択肢 →それ以外(第2)の選択肢 A = "時間" B = "行動" B =gets.to_i if A == 6 B = "散歩" elsif A == 8 B =入浴 else B = 寝る : end 2.プログラム問題 選択した問題:A. a.作成したプログラム #!/usr/koeki/bin/ruby print("いらっしゃっしゃいませ。どちらのサービスを利用しますか?\n") print("お客様の預金残高:10000円\n") print("1:出金する\n") print("2:入金する\n") STDERR.print("サービス番号を入力して下さい \n") STDERR # 実行者に任意の文字列を入力させる d = gets.to_i STDERR.print("御利用金額はいくらですか?: \n") money =gets.to_i money # 入力金額を表す引数 gets.to_i # 引数を数字として扱う kane = 10000 kane # 所持金 if d == 1 d # 選択を表す引数 if money <10000 printf("出金金額は%d円です\n",money) printf("預金残高は%d円です\n",kane-money) print("御利用ありがとうございました") else print("残高不足です") end else printf("入金金額は%d円です\n",money) printf("預金残高は%d円です\n",kane+money) print("御利用ありがとうございました\n") end b.実行結果 pan{c107194}% ./while_bookkeeper.rb [~/Ruby] いらっしゃっしゃいませ。どちらのサービスを利用しますか? お客様の預金残高:10000円 1:出金する 2:入金する サービス番号を入力して下さい 1 御利用金額はいくらですか?: 15000 残高不足です% pan{c107194}% ./while_bookkeeper.rb [~/Ruby] いらっしゃっしゃいませ。どちらのサービスを利用しますか? お客様の預金残高:10000円 1:出金する 2:入金する サービス番号を入力して下さい 1 御利用金額はいくらですか?: 5000 出金金額は5000円です 預金残高は5000円です 御利用ありがとうございました% pan{c107194}% ./while_bookkeeper.rb [~/Ruby] いらっしゃっしゃいませ。どちらのサービスを利用しますか? お客様の預金残高:10000円 1:出金する 2:入金する サービス番号を入力して下さい 2 御利用金額はいくらですか?: 8000 入金金額は8000円です 預金残高は18000円です 御利用ありがとうございました c.考察 このプログラムの問題はかなり論理的にして、尚且つ慎重になりながら手を加え ることになった。それほどに実際挑んでみると複雑なものだった。 d.感想 前回までのもので、ある程度感覚がつかめてきた気がしていたのだが、今回の課 題は、またさらに手強かった。構成などを考えて、そこからまたその内容を実際 に作り始めると、本当に手がかかって、細部の方などは解くに油断出来なかった。 これは文法をしっかり理解しておかないとまずいなとも思った。それから、引数 の使い方などもそれなりに明確に見えて来た気はしている。 e.参考文献 西村先生のページ 基礎プログラミング I第4回「もしもそうならば」 http://roy/~madoka/2010/r1/04/04_03_theme_01_branch.html 基礎プログラミング I 第4回 「曜日を調べるプログラム」 http://roy/~madoka/2010/r1/04/04_20_theme_11_wday.html 協力してくれたTA 五代儀公大