たま〜に朝寝坊するけど、某国営放送の朝ドラは、欠かさず見ている、ユゲタです。
九九プログラミングも、5日目を迎えました。
プログラム言語を実行する環境構築などは、無視して進めていますが、dockerやvagrantを使えば、簡単に用意できるので、このスタートラインに立てていない人がいたら、コメントくださいませ。
本日のIT謎掛け
「Ruby」と、かけまして・・・
「廃線電車」と、ときます。
そのココロは・・・
線路(on rails)に乗っていないと、使いづらいかもしれません。
Rubyで九九
早速、プログラミングしてみます。
for i in 1..9 do
for j in 1..9 do
print(j, " × ", i, " = ", (j*i) , "\t")
end
print("\n")
end
そしてターミナルで、実行
$ ruby 001.rb
1 × 1 = 1 2 × 1 = 2 3 × 1 = 3 4 × 1 = 4 5 × 1 = 5 6 × 1 = 6 7 × 1 = 7 8 × 1 = 8 9 × 1 = 9
1 × 2 = 2 2 × 2 = 4 3 × 2 = 6 4 × 2 = 8 5 × 2 = 10 6 × 2 = 12 7 × 2 = 14 8 × 2 = 16 9 × 2 = 18
1 × 3 = 3 2 × 3 = 6 3 × 3 = 9 4 × 3 = 12 5 × 3 = 15 6 × 3 = 18 7 × 3 = 21 8 × 3 = 24 9 × 3 = 27
1 × 4 = 4 2 × 4 = 8 3 × 4 = 12 4 × 4 = 16 5 × 4 = 20 6 × 4 = 24 7 × 4 = 28 8 × 4 = 32 9 × 4 = 36
1 × 5 = 5 2 × 5 = 10 3 × 5 = 15 4 × 5 = 20 5 × 5 = 25 6 × 5 = 30 7 × 5 = 35 8 × 5 = 40 9 × 5 = 45
1 × 6 = 6 2 × 6 = 12 3 × 6 = 18 4 × 6 = 24 5 × 6 = 30 6 × 6 = 36 7 × 6 = 42 8 × 6 = 48 9 × 6 = 54
1 × 7 = 7 2 × 7 = 14 3 × 7 = 21 4 × 7 = 28 5 × 7 = 35 6 × 7 = 42 7 × 7 = 49 8 × 7 = 56 9 × 7 = 63
1 × 8 = 8 2 × 8 = 16 3 × 8 = 24 4 × 8 = 32 5 × 8 = 40 6 × 8 = 48 7 × 8 = 56 8 × 8 = 64 9 × 8 = 72
1 × 9 = 9 2 × 9 = 18 3 × 9 = 27 4 × 9 = 36 5 × 9 = 45 6 × 9 = 54 7 × 9 = 63 8 × 9 = 72 9 × 9 = 81
for文の書き方は、pythonに似ていますが、終了宣言が無いpythonと比べて、endで締めくくるrubyの方が個人的にはしっくりします。
少しだけリファクタリング
上記を少し効率的に書き直してみたいと思います。
for i in 1..9 do
arr = []
for j in 1..9 do
str = "%s × %s = %s" % [j ,i , (j*i)]
arr.push(str)
end
print(arr.join("\t") , "\n")
end
※結果は、上記と同じです。
直接printするのではなくて、配列に格納して、joinすることで、区切り文字を毎回生成する無駄がなくなります。
文字列の扱いも、配列の扱いも、なんともスッキリと書けるruby言語です。
入力モード対応
pythonと同じように、入力値を反映してみたいと思います。
print("Input Number : ")
kuku = gets.to_i
for i in 1..kuku
arr = []
for j in 1..kuku
str = "%s × %s = %s" % [j ,i , (j*i)]
arr.push(str)
end
print(arr.join("\t") , "\n")
end
$ ruby 003.rb
Input Number : 5
1 × 1 = 1 2 × 1 = 2 3 × 1 = 3 4 × 1 = 4 5 × 1 = 5
1 × 2 = 2 2 × 2 = 4 3 × 2 = 6 4 × 2 = 8 5 × 2 = 10
1 × 3 = 3 2 × 3 = 6 3 × 3 = 9 4 × 3 = 12 5 × 3 = 15
1 × 4 = 4 2 × 4 = 8 3 × 4 = 12 4 × 4 = 16 5 × 4 = 20
1 × 5 = 5 2 × 5 = 10 3 × 5 = 15 4 × 5 = 20 5 × 5 = 25
inputさせたい箇所に"gets"を命令するだけなんですね。
受け取り値が文字列の時は、"gets.to_s"数値の場合は、"gets.to_i"とすると、入力後に方も整えてくれるので、便利に使えます。
このレベルであれば、rubyもチョロいですねwwwww
0 件のコメント:
コメントを投稿