0
0

More than 1 year has passed since last update.

getsメソッドを利用したプログラムの備忘録

Posted at

今日も学んだことを忘れないてためにメモします。

getsメソッドの種類

getsメソッドが実行されるとターミナルがコマンド入力待ちの状態に変わりユーザーがエンターキーを押すまで文字を入力できる。
送られてきた文字列オブジェクトの後には改行が入る。
gets.chompとすることで改行が入らない。
getsとgets.chompは「数字」を入力しても「文字列」の扱いにしてしまう。
gets.to_iとすることで「数字」として扱える

プログラム内容

getsメソッドを利用しての位と一の位の数字の足し算、十の位と一の位の数字の掛け算をそれぞれ行い、最後に2つの結果を足し合わせて出力するプログラムになります。

> 二桁の整数を入力してください
> 15

# 1 + 5 と 1 × 5 をそれぞれ計算

> 足し算結果と掛け算結果の合計値は11です

10の位は整数を10で割ったものを更に10で割った計算結果、
1の位は整数を10で割った計算結果の余りで求められる。

Rubyの性質上、整数同士(integer型)の計算だと返り値は整数になるので、小数点以下は切り捨てられる。

記述内容

def addition(a, b)
  a + b
end

def multiplication(a,b)
  a * b
end

def slice_num(num)
  tens_place = (num / 10) % 10
  ones_place = (num / 1) % 10
  return tens_place, ones_place
end

puts "二桁の整数を入力してください"
input = gets.to_i
X, Y = slice_num(input)
add_result = addition(X, Y)
multiple_result = multiplication(X, Y)
puts "足し算結果と掛け算結果の合計値は#{add_result + multiple_result}です"

slice_numメソッドでは10の位と1の位を取得して、その返り値をX,Yという変数に代入している。
変数は定義する際に、カンマで区切ることによって、同時に複数の変数を定義できる。
Xに10の位、Yに1の位を同時に代入している。

additionメソッドで10の位と1の位の数字の足し算、multiplicationメソッドで十の位と一の位の数字の掛け算をそれぞれ行いadd_resultとmultiple_resultに代入。

最後にその結果を足して合計値を出力。

補足

ある整数について、任意の桁の数字を取り出す手順は、以下の通り。
①取り出したい数字の桁数で割る
② ①の結果をさらに10で割った、そのあまりが任意の桁の数字

# 1000の位
one_thousand_place = (num / 1000) % 10
# 100の位
hundred_place = (num / 100) % 10
# 10の位
tens_place = (num / 10) % 10
# 1の位
ones_place = (num / 1) % 10

以上になります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0