講評: 面白かったです。- からはじまるプログラムは禁止されます。 この調子で次週も頑張って下さい。 ---- 学籍番号:C106XXXX 氏名:XXXX 語学クラス:XXXX語XX 系: 社会系 1. 筆記問題 A. なぞときを一題以上考えよ。 「梨とかけて、リストラと解きます。」 「その心は?」 「洋梨と解く」 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー B.2 変数による数式の設定を 2 例書き出せ。また、それに対する数値を入れ、 解答を得よ。 日本酒一升2600円と麦焼酎1400円があった店に出す本数分を買うといくらにな るか 2600*3+1400*2=10600 irsv{c106107}% bc -l [~] 2600*3+1400*2 10600 米1kg300円と食パン一斤800円あって買った合計がいくらか 300*10+800*3=5400 irsv{c106107}% bc -l [~] 300*10+800*3 5400 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 2.以下のプログラムについて、できる範囲まで提出せよ。 A.変数が 2 つ以上定義されている def -- end を用いた数値の計算を導く プログラム #!/usr/koeki/bin/ruby def sankakukei(x,y) x * y / 2 if x < 0 || y < 0 return nil else return x * y / 2 end end STDERR.print("三角形の面積を求めます。底辺を入力して下さい。\n") a = gets.chomp!.to_f STDERR.print("三角形の面積を求めます。高さを入力して下さい。\n") b = gets.chomp!.to_f if sankakukei(a,b) == nil print("HAZARD!!!!!!!!!!!\n") exit else printf("%f \n", sankakukei(a,b)) end 実行結果 irsv{c106107}% ./twoparam.rb [~/Ruby] 三角形の面積を求めます。底辺を入力して下さい。 -5 三角形の面積を求めます。高さを入力して下さい。 3 HAZARD!!!!!!!!!!! irsv{c106107}% ./twoparam.rb [~/Ruby] 三角形の面積を求めます。底辺を入力して下さい。 5 三角形の面積を求めます。高さを入力して下さい。 3 7.500000 計算確かめ irsv{c106107}% bc -l [~/Ruby] 5*3/2 7.50000000000000000000 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー B.変数が 1 つ以上定義されている def -- end を 用いたプログラム プログラム #!/usr/koeki/bin/ruby def joukigen(ni) 3570 * ni end def syoutyuu(mu) 818 * mu end def hatumago(ha) 2691 * ha end def tateno(ta) 8400 * ta end print("買い物をします\n") STDERR.print("上喜元 山廃 雄町 3570円 何本??: \n") jouki = gets.chomp.to_i STDERR.print("かのか 瓶詰め 818円 何本??: \n") mugi = gets.chomp.to_i STDERR.print("初孫 秋上がり 2691円 何本??: \n") hatu = gets.chomp.to_i STDERR.print("楯野川 大吟醸 限定斗瓶囲い 雄町40% 8400 何本??: \n") tate = gets.chomp.to_i #a = 3570 #日本酒1本の値段 #b = 818 #麦焼酎1本のねだん printf("上喜元 山廃 雄町 合計金額: %5d [円]\n", joukigen(jouki)) printf("かのか 瓶詰め 合計金額: %6d [円]\n", syoutyuu(mugi)) printf("初孫 秋上がり 合計金額: %7d [円]\n", hatumago(hatu)) printf("楯野川 大吟醸 限定斗瓶囲い 雄町40% 合計金額: %7d [円]\n", tateno(tate)) print("買い物は終わりました\n") 実行結果 irsv{c106107}% ./mymethod.rb [~/Ruby] 買い物をします 上喜元 山廃 雄町 何本??: 5 かのか 瓶詰め 何本??: 2 初孫 秋上がり 何本??: 4 楯野川 大吟醸 限定斗瓶囲い 雄町40% 何本??: 3 上喜元 山廃 雄町 合計金額: 17850 [円] かのか 瓶詰め 合計金額: 1636 [円] 初孫 秋上がり 合計金額: 10764 [円] 楯野川 大吟醸 限定斗瓶囲い 雄町40% 合計金額: 25200 [円] 買い物は終わりました 計算確かめ irsv{c106107}% bc -l [~/Ruby] 3570 * 5 17850 818 * 2 1636 2691 * 4 10764 8400 * 3 25200 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー C.今まで作成したプログラムを method を使って書き直したプログラム プログラム #!/usr/koeki/bin/ruby def karori(x,y,z) x + y + z end def heikin(l,m,n) (l + m + n) /3 if l < 0 || m < 0 || n < 0 return nil else return (l + m + n) / 3 end end STDERR.print("朝摂取したカロリー [kcal]: ") a = gets.chomp!.to_i STDERR.print("昼摂取したカロリー [kcal]: ") b = gets.chomp!.to_i STDERR.print("夜摂取したカロリー [kcal]: ") c = gets.chomp!.to_i if heikin(a,b,c) == nil print("マイナスって何さ!!") exit else printf("本日の総摂取カロリーは %d[kcal] でした\n", karori(a,b,c)) printf("平均の摂取カロリーは %d[kcal でした\n]", heikin(a,b,c)) end if karori(a,b,c) > 2200 printf("ちょっとこれは食べすぎじゃない?\n") end if karori(a,b,c) < 1700 printf("もっとちゃんと食べなさい!!\n") end 実行結果 irsv{c106107}% ./calory.rb [~/Ruby] 朝摂取したカロリー [kcal]: 1500 昼摂取したカロリー [kcal]: 1500 夜摂取したカロリー [kcal]: 1000 本日の総摂取カロリーは 4000[kcal] でした 平均の摂取カロリーは 1333[kcal でした ]ちょっとこれは食べすぎじゃない? 計算確かめ irsv{c106107}% bc -l [~/Ruby] 1500 + 1500 + 1000 4000 4000 / 3 1333.33333333333333333333 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 3.感想。忘れていたところや、よく復習したところについて述べ、どこの何を参考 に解決したか、などを記せ。 なんとか全ての課題を終わらせることが出来てよかった。 今回の def -end の文は自分に取っては今までと比べればできた方だとおもった。 printf文だと%でダメで%なら大丈夫だった このせいで30分ほど考えてしまった。 2Cの問題で-method.rbとしたファイルをつくり、chmod +x としようとしたら irsv{c106107}% chmod +x -method.rb [~/Ruby] chmod: 警告: -- を使用できません。 となってしまったので、ファイル名をmethod.rbとしました。 厳撰地酒 酒田駅前(有)阿部酒店<上喜元>(上喜元 純吟 山廃仕込 雄町) http://www.abesaketen.co.jp/shop6/jyoukigen200609.htm 楯野川 楯の川酒造(株)(楯野川 大吟醸 限定斗瓶囲い 雄町40%) http://www.tutitatu.com/ ようこそ初孫のホームページへ 東北銘醸造株式会社 {商品紹介}(初孫 秋上がり) http://www.hatsumago.co.jp/index1.html むぎ焼酎 かのか (本格焼酎/焼酎甲類乙類混和) | アサヒビール(かのか 25度 900ml 瓶) http://www.asahibeer.co.jp/products/shochu/mugi/kanoka_mugi/ 2Cの def -end をつかったプログラム(カロリーメータープログラム) http://roy/~madoka/2007/r1/03/03-10-caloryprog.html