[お題にTRY] 九九の表示 #ruby

2020年6月2日

Ruby テクノロジー プログラミング 特集

t f B! P L
たま〜に朝寝坊するけど、某国営放送の朝ドラは、欠かさず見ている、ユゲタです。 九九プログラミングも、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

このブログを検索

プロフィール

自分の写真
町田市, 東京都, Japan
プログラミングとサーバーを心の底から楽しむクリエーターです。 経営者であり、開発者でもありますが、得意としているのは、アイデア創出です。

ブログ アーカイブ

QooQ