ログイン
編集不可のページディスカッション情報添付ファイル
"alstamber/2013FreshmanRubySeminar5Homework"の差分

MMA
1と21のリビジョン間の差分 (その間の編集: 20回)
2013-06-07 00:36:03時点のリビジョン1
サイズ: 1326
編集者: alstamber
コメント:
2013-06-07 16:45:50時点のリビジョン21
サイズ: 3834
編集者: alstamber
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 1: 行 1:
== るびー系 ==
行 2: 行 3:
次の2つの文字列について、両方に含まれる最も長い文字列を求めてください。 === a ===
前回の必修問題を解いた状態で新しくUniversityクラスを作りましょう。

=== b ===
Universityクラスが大学名を表すnameインスタンス変数と所属する学生を表わすstudentsインスタンス変数をもつようにしてください。<<BR>>
studentsインスタンス変数はStudentクラスのインスタンスの配列をもつことにします。

=== c ===
Universityクラスのインスタンスメソッドとして全ての学生の情報を出力するメソッドprint_all_infoを定義してください。

== 2 ==
Studentクラスに次のようなクラスメソッドconvert_studentを定義してください。
行 4: 行 16:
RzFcLkjwGQxT6aLHGgCy
BBAqk8GQxT6aTsVwkl99a2
"(id)/(name)/(dept)/(sex)"の書式で与えられた文字列を引数にとって、与えられた情報をもったStudentクラスのインスタンスを返す
}}}
例えば次のように使います。
{{{#!highlight ruby
st = Student.convert_student("1011203/Aragaki Ayase/i/f")
# stに学籍番号1011203、名前新垣あやせ、学科I、性別女性という情報が入ったStudentクラスのインスタンスが代入される
}}}
== 3 ==
putsメソッドと文字列のlengthメソッドを比較します。
{{{#!highlight ruby
puts "love live!"
"love live!".length
行 8: 行 30:
== 1-2 ==
次の2つの文字列について、両方に含まれる最も長い文字列を求めてください。
見て分かる通り、putsメソッドには'''〜.'''というものがついていません。

 * a) なぜ'''〜.'''がなくても良いのか説明してください。
 * b) 普通は書きませんが、putsメソッドに対して'''〜.'''をつけることができます。〜に入るものを答えてください。


== 4 ==
クラスAとクラスBがあります。クラスAはクラスBの親クラスであるとします。クラスAとクラスBはそれぞれ次のようなメソッドを持っています。
{{{#!highlight ruby
class A
    def abc
        "abc"
    end
end

class B
    def abc
        "abc!!"
    end

    def def
        "def!!"
    end
end
}}}

この状態で次のようなプログラムを書きます。
{{{#!highlight ruby
hoge = A.new
fuga = B.new

puts hoge.abc
puts fuga.def
puts fuga.abc
}}}

 * a) どのような出力が得られますか。
 * b) なぜそうなりますか。

== あるごりずむ系 ==
=== 1 ===
芽兎(めう)めう氏が経営する兎月堂では今、お客様感謝セールとして袋に好きなだけ商品を詰めてそれを1,000円均一で買うことができるセールを行なっている。<<BR>>
ただし条件があり袋には2kgまでしか商品を入れられない。<<BR>>
今、和泉一舞(いぶき)氏はこのセールで出来るだけお得に商品を買いたいと思っている。<<BR>>
兎月堂の商品は次のとおりである。

||商品||値段||重さ||
||A||700円||1kg||
||B||200円||0.4kg||
||C||900円||0.5kg||
||D||400円||0.1kg||
||E||900円||0.7kg||
||F||700円||0.3kg||
||G||400円||0.6kg||
||H||500円||0.3kg||

条件を破らずに、和泉一舞氏ができるだけお得に商品を持ち帰るにはどのような組み合わせで袋に詰めれば良いだろうか。

=== 2-1 ===
次の2つの文字列について、最も長い共通部分列を求めてください。<<BR>>
部分列とは、文字列からいくつかの文字をとって並べたものです。取り方は飛び飛びでも構いませんが、順番を入れ替えてはいけません。
行 11: 行 92:
RzFcLkjwGQxT6aLHGgCy4bppTesCEsxaLAphTHJ3h6HQAEuQ6msNByhyJdSTgMS4cwLWPtH7DQgcm3s6xjtjUMkBA24mWD2eNc8a
Y2crFAVRVS9BJXsWEtQPzxF8UXXdSZ3NuzAme4UutL3fdi87ThirXhuN2P8bsLEx9nbNxpjeEhTeRhPDkmdN9LaEtD3RU2b8NgCF
PjTGcZxmfh7L6zfJ6xHyCWEC3fAHT5NYxRwzsRhZTsdh2G682CNT9UAfGhWTxs3FfZmcMTHU84dpKL68PLfgmYN6MUm6JPVCWY3B
ghRARGYec4bwtFgnJKmDamzW8CYRgtJ3WJ4xZf3gJdQibkyntEGBCpBuYziMcgJCiZf7MS5FKeb7EfuBETECEUKGh95tz6b6zZHd
GMsV7r8jYNdRdtkaBfiQGyM8QGNPY6byhShZZfP6KmETu2HayfBVeisAfcVRcAPJNnCybfSiDVaym6HThAPfQGKZFNDcmNa4kfUn
zFcLkjwGQxT6
BBGQxT6aTsVw
}}}
行 17: 行 96:
YY7QsWxLYwNptrGPUG5mAcJmdw67nRHEV7VwYEguUuhmRjRt4Tixp6mhYGiAyzgxCA8WcRLhWLpUJJHcH9WLNk6MbaatuF4aDzmf
KDKUx2nS7G45peKKn2LP6GBARx7ETu2HayfBVeisAfcVRcAPJNnYEeeNfXjJhu8JfbYkVTQQyFXkVFKgk8mti9a9fQmpSSY7KXwB
x9NYCte7cQj5TYfiHraK3tGnk5CeAit7TB3JpVyZ3sQu9AbidYkJCjVb7HTpw5CkyTTRs9bd4jRYdVETkZjW5MDe6N99QtsiLptk
iWAbT6bEYJfBd3GPdGTMErMHQ3Ty9t7Z92NSMaShaDFPFxVK7mEGzy8dWgZw33JTZN7yDGAWd4DUzPTN9mRhSTbjUTiP9sAi9fyy
fr9xrigCBHx56w7eU5unyKgMmEVBukctXhGMSinSwy44yMrafF44BDiLNpfgFtWpd5FMQzMUCDMNiyhwNFjJbu3YF4eksyGCVJCf
=== 2-2 ===
2-1で作ったプログラムは次の2つの文字列でも動作しますか?試してみてください。
{{{
Y2crFAVRVS9BJXsWEtQPzxF8UXXdSZ3NuzAme4UutL3fdi87ThirXhuN2P8bsLEx9nb

fr9xrigCBHx56w7eU5unyKgMmEVBukctXhGMSinSwy44yMrafF44BDiLNpfgFtWpd5F

るびー系

1

a

前回の必修問題を解いた状態で新しくUniversityクラスを作りましょう。

b

Universityクラスが大学名を表すnameインスタンス変数と所属する学生を表わすstudentsインスタンス変数をもつようにしてください。
studentsインスタンス変数はStudentクラスのインスタンスの配列をもつことにします。

c

Universityクラスのインスタンスメソッドとして全ての学生の情報を出力するメソッドprint_all_infoを定義してください。

2

Studentクラスに次のようなクラスメソッドconvert_studentを定義してください。

"(id)/(name)/(dept)/(sex)"の書式で与えられた文字列を引数にとって、与えられた情報をもったStudentクラスのインスタンスを返す

例えば次のように使います。

   1 st = Student.convert_student("1011203/Aragaki Ayase/i/f")
   2 # stに学籍番号1011203、名前新垣あやせ、学科I、性別女性という情報が入ったStudentクラスのインスタンスが代入される

3

putsメソッドと文字列のlengthメソッドを比較します。

   1 puts "love live!"
   2 "love live!".length

見て分かる通り、putsメソッドには〜.というものがついていません。

  • a) なぜ〜.がなくても良いのか説明してください。

  • b) 普通は書きませんが、putsメソッドに対して〜.をつけることができます。〜に入るものを答えてください。

4

クラスAとクラスBがあります。クラスAはクラスBの親クラスであるとします。クラスAとクラスBはそれぞれ次のようなメソッドを持っています。

   1 class A
   2     def abc
   3         "abc"
   4     end
   5 end
   6 
   7 class B
   8     def abc
   9         "abc!!"
  10     end
  11 
  12     def def
  13         "def!!"
  14     end
  15 end

この状態で次のようなプログラムを書きます。

   1 hoge = A.new
   2 fuga = B.new
   3 
   4 puts hoge.abc
   5 puts fuga.def
   6 puts fuga.abc
  • a) どのような出力が得られますか。
  • b) なぜそうなりますか。

あるごりずむ系

1

芽兎(めう)めう氏が経営する兎月堂では今、お客様感謝セールとして袋に好きなだけ商品を詰めてそれを1,000円均一で買うことができるセールを行なっている。
ただし条件があり袋には2kgまでしか商品を入れられない。
今、和泉一舞(いぶき)氏はこのセールで出来るだけお得に商品を買いたいと思っている。
兎月堂の商品は次のとおりである。

商品

値段

重さ

A

700円

1kg

B

200円

0.4kg

C

900円

0.5kg

D

400円

0.1kg

E

900円

0.7kg

F

700円

0.3kg

G

400円

0.6kg

H

500円

0.3kg

条件を破らずに、和泉一舞氏ができるだけお得に商品を持ち帰るにはどのような組み合わせで袋に詰めれば良いだろうか。

2-1

次の2つの文字列について、最も長い共通部分列を求めてください。
部分列とは、文字列からいくつかの文字をとって並べたものです。取り方は飛び飛びでも構いませんが、順番を入れ替えてはいけません。

zFcLkjwGQxT6
BBGQxT6aTsVw

2-2

2-1で作ったプログラムは次の2つの文字列でも動作しますか?試してみてください。

Y2crFAVRVS9BJXsWEtQPzxF8UXXdSZ3NuzAme4UutL3fdi87ThirXhuN2P8bsLEx9nb

fr9xrigCBHx56w7eU5unyKgMmEVBukctXhGMSinSwy44yMrafF44BDiLNpfgFtWpd5F

alstamber/2013FreshmanRubySeminar5Homework (最終更新日時 2013-07-06 08:52:05 更新者 alstamber)