第6回 基礎プログラミング II レポート課題 氏名:花木剛志 学籍番号:C109126A 語学クラス:英語3 コース(系):地域共創コース 1、筆記問題 A.アルファベットの小文字を配列に入れると、以下のようになる。 alphabet=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"] 配列は0から始まるため、alphabet[18]は19番目の要素である。 したがって、alphabet[18] = s また、アルファベットは26文字しかないため、 alphabet[40] = nil となる。 2、プログラミング問題 問題A [プログラム本体] #!/usr/koeki/bin/ruby def average(suimin) sum = 0.0 for zikan in suimin sum += zikan # printf("%d 人目 途中合計 sum=%d\n", score.length + 1, sum) end sum / suimin.length end points = Array.new while true STDERR.print "睡眠時間を入力して下さい: " line = gets if line == nil break end points << line.to_f end printf("\n みんなの平均睡眠時間は %3.1f時間 です\n", average(points)) [元にしたプログラムからの変更点] 授業で作成したdef_ary_movie.rbを元に作成。 ・入力した星の数の平均を出せるプログラムを、睡眠時間の平均を出せるプログラ ムにした。 ・scoreをsuiminにし、starsをzikanに変更した。 ・小数を入れる人もいると思ったので、line.to_iをline.to_fに変更した。 [実行結果] pan{c109126}% ./def_statistic.rb [~/Ruby] 睡眠時間を入力して下さい: 9 睡眠時間を入力して下さい: 5 睡眠時間を入力して下さい: 7 睡眠時間を入力して下さい: 6 睡眠時間を入力して下さい: 8.5 睡眠時間を入力して下さい: ^D みんなの平均睡眠時間は 7.1時間 です [考察] bc -lで確かめを行った。 pan{c109126}% bc -l [~/Ruby] (9+5+7+6+8.5)/5 7.10000000000000000000 以上のようになり、プログラムで算出された平均時間と一致した。 問題B [プログラム本体] #!/usr/koeki/bin/ruby def cry(ct) ct.times do print("ぱにゃ\t") end print("\n") sleep(0.5) end def message(name) STDERR.printf("%sを世話しよう: \n", name) STDERR.print("[1]\tご飯をあげる?\n") STDERR.print("[2]\t遊んであげる?\n") STDERR.print("[3]\tなでてあげる?\n") end def fat(y,z) x = y - z + 2 printf("%d日目\n",y) printf("体重増加分 %d\n", x) x end printf("たまごを拾った。\n") STDERR.printf("どんな名前にするの?") name = gets.chomp if name == "" name = "はなちゃん" end printf("%sという名前になった。\n",name) happy = 1 # しあわせ度 weight = 1 # 体重 day = 1 # 拾った日を一日目とした while true cry(happy) message(name) ans = gets.chomp.to_i print "*" * 80 happy += day + ans weight += fat(day,ans) if happy > 15 break end if weight > 8 break end cry(ans) day += 1 end cry(weight) # 最終段階の体重が鳴き声になる printf("%sは", name) if weight > 9 print("牛") elsif weight <= 6 print("ねずみ") else print("神々しい竜") end print("になりました\n") [元にしたプログラムからの変更点] 授業で作成したdef_rubiocci.rbを元に作成。 ・最終的な結果を牛、ねずみ、神々しい竜にした。 ・数値を諸所変更。 [実行結果] pan{c109126}% ./def_rollplaying_b.rb [~/Ruby] たまごを拾った。 どんな名前にするの? はなちゃんという名前になった。 ぱにゃ はなちゃんを世話しよう: [1] ご飯をあげる? [2] 遊んであげる? [3] なでてあげる? 2 ********************************************************************************1日目 体重増加分 1 ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ はなちゃんを世話しよう: [1] ご飯をあげる? [2] 遊んであげる? [3] なでてあげる? 3 ********************************************************************************2日目 体重増加分 1 ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ 1] ご飯をあげる? [2] 遊んであげる? [3] なでてあげる? 3 ********************************************************************************3日目 体重増加分 2 ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ はなちゃんを世話しよう: [1] ご飯をあげる? [2] 遊んであげる? [3] なでてあげる? 1 ********************************************************************************4日目 体重増加分 5 ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ ぱにゃ はなちゃんは牛になりました [考察] 神々しい竜はなかなか出ないようにした。数値設定が難しかったが、全て出るよ うになった。 また、個人的に鳴き声が煩わしかったので省いた。 名前も凝ったので可愛がって欲しい。 3、感想 「ひぐらしのなく頃に」というゲームがこの考えを使っていると思う。 選択肢によって違うエンディングが出てくる。 また、恋愛ゲームはおよそこの考えを使っているように思う。 4、参考文献など 参考にしたwebページ:http://roy/~madoka/2009/r2/06/crt.html 共同製作者:横山広樹君、遠藤孝之君