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)


●感想

今回作成したプログラムを、誕生日の他に、過去へ遡って日本国憲法が施行され
た曜日や、年間カレンダーでは確認できない曜日を調べたりするのに活用しても
らいたいなと思います。
プログラムにまだブランクはあるものの、徐々に感覚を取りもどして行きたいで
す。