読者です 読者をやめる 読者になる 読者になる

Ruby 様々なプログラムを組む

今月はRubyを一通り勉強しました。その中からいくつか取り上げてプログラムを組みたいと思います。(今回は久々にpaiza.ioを利用しました。)

 

Hello, Ruby!

f:id:shika16:20170324072045j:plain

f:id:shika16:20170324072056j:plain

 

まずは基本中の基本から始めましたが、これだけでも他プログラミング言語に比べてかなり取っつきやすい(覚えやすい)ものであるなと思います。過去にRubyJavaを同時進行で勉強した時期がありなんやかんや混乱してしまったのですが・・・

 

f:id:shika16:20161229031626j:plain

f:id:shika16:20161229031709j:plain

 

改めてここだけ見ても文字量にかなりの差があるなと感じます。

 

直方体の表面積と体積を求める

変数を利用して、直方体の表面積と体積を求めていきます。

f:id:shika16:20170324072617j:plain

f:id:shika16:20170324072802j:plain

 

以上が実行結果になります。この手の数学自体は昔から苦手ですが、プログラム(PC)に任せてしまえば苦手意識も薄れるのかなということは常々考えています。とりわけRubyはやはり覚えやすい&扱いやすいといった印象を受けました。

 

サイコロを作る

f:id:shika16:20170324073052j:plain

f:id:shika16:20170324073109j:plain

こういった乱数を利用して、サイコロを作っていきたいと思います。

 

①サイコロを振って出た目(1から6までのランダムな整数)を返すメソッドdiceを定義する

f:id:shika16:20170324073119j:plain

f:id:shika16:20170324073129j:plain

 

実際にプログラムを組む前はめんどくさいかなと感じたのですが、いざ組んでみたら思った以上に簡潔に作ることができちょっと拍子抜けといった感がありました。というのも、以前Javaで同じく乱数を使って数字当てゲームを作った際に・・・

f:id:shika16:20161229033544j:plain

 

こちらもまとまってはいるのですが、どうしても全体的な文字量の多さに辟易してしまう部分がありました。

 

②10個のサイコロを振って出た目の合計を返すメソッドdice10を定義する

f:id:shika16:20170324074810j:plain

先ほど定義したメソッドdiceを利用しつつ、新たにdice10を定義し実行します。

f:id:shika16:20170324074846j:plain

 

以上が実行結果です。繰り返しを有効活用するとプログラム自体をかなりすっきりさせられるなと感じることが出来ました。

 

おわりに

過去にJavaと同時進行で勉強して混乱して、途中で投げ出してしまったRubyですが・・・改めて1つ1つやっていけば混乱も避けられ各々のプログラミング言語の良さが見えました。とりわけ、Rubyに関しては全体的に取っつきやすさはある分覚えることも多く他言語とのしっかりとした使い分けが重要であると感じました。

 

参考

 

たのしいRuby 第3版

たのしいRuby 第3版