Subject:#02 method From: c115163@g.koeki-u.ac.jp To: ruby-2-02@e.koeki-u.ac.jp Date: Sat, 01 Oct 2016 12:02:27 +0900 (JST) X-Mailer: Mew version 6.3 on Emacs 23.3 / Mule 6.0 (HANACHIRUSATO) 氏名:よ 学籍番号:c1151630 クラス:6 ●どんな計算をするメソッドを作るか 西暦、月、日を入れることで、誕生日や調べたい日の曜日を知ることができるプ ログラム(今回のは、誕生日がメイン) ●作成したプログラム ・プログラム #!/usr/koeki/bin/ruby # coding: utf-8 print("誕生日が1月、2月の人は、「西暦 - 1」で、1月は13月、2月は14月で計算してね。\n") def youbi(mae,ushiro,tsuki,hi) youbi = (hi+tsuki+ushiro+mae)%7 youbi.to_i end STDERR.print("あなたの誕生日の西暦の前2桁は?:") j = gets.to_i d = j/4 - 2*j STDERR.print("あなたの誕生日の西暦の後2桁は?:") k = gets.to_i c = k + k/4 STDERR.print("あなたの誕生日の月は?:") m = gets.to_i b = ((m+1)*26)/10 STDERR.print("あなたの誕生日の日は?:") a = gets.to_i printf("あなたの誕生日は%d番の曜日です。\n\n" , youbi(a , b , c , d)) print( "0:土曜日 1:日曜日 2:月曜日 3:火曜日 4:水曜日 5:木曜日 6:金曜日\n\n" ) ●実行結果 sime{c115163}% ./method-kadai.rb [~/Ruby] 誕生日が1月、2月の人は、「西暦 - 1」で、1月は13月、2月は14月で計算してね。 あなたの誕生日の西暦の前2桁は?:20 あなたの誕生日の西暦の後2桁は?:16 あなたの誕生日の月は?:10 あなたの誕生日の日は?:1 あなたの誕生日は0番の曜日です。 0:土曜日 1:日曜日 2:月曜日 3:火曜日 4:水曜日 5:木曜日 6:金曜日 ●プログラムの説明(メソッド定義と呼出しの部分) ・メゾッド定義 def youbi(mae,ushiro,tsuki,hi) youbi = (hi+tsuki+ushiro+mae)%7 youbi.to_i end 日にちが入った変数、月が入った変数、西暦の後2桁の入った変数、西暦の前2桁 の入った変数を足し算し、7で割った余りを計算しています。 ・引数 mae、ushiro、tsuki、hiで、「mae = d」、「ushiro = c」、「tsuki = b」、 「hi = a」としました。 また、それぞれ、「a = gets.to_i」、「b = ((m+1)*26)/10」、「c = k + k/4」、 「d = j/4 - 2*j」という計算を当てはめました。(j、k、m、aはそれぞれ変数で、 jは西暦前2桁、kは西暦後2桁、mは月、aは日の変数です。) ●参考文献 広瀬雄二編. "Rubyで利用できる演算". Operator of Ruby, http://roy/~yuuji/2016/pf1/03/op.html, (2016-10-01) Seesaaブログ編. "【数の構成】「ツェラーの公式」を読み解く". 【数の構成】 「ツェラーの公式」を読み解く | 大人が学び直す数学. 2011-10-21, https://jipsti.jst.go.jp/sist/handbook/sist02_2007/main.htm, (2016-10-01) ●感想 今回作成したプログラムを、誕生日の他に、過去へ遡って日本国憲法が施行され た曜日や、年間カレンダーでは確認できない曜日を調べたりするのに活用しても らいたいなと思います。 プログラムにまだブランクはあるものの、徐々に感覚を取りもどして行きたいで す。