0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

書籍『たのしいRuby』の練習問題を解いてみた Part.1

Last updated at Posted at 2019-07-05

はじめに

Railsの勉強を始めようと思い、Rubyを復習することに。大学1年生の頃に買った『たのしいRuby』を頭からやってみることにした。

本題

今回は第12章の練習問題を解いていく。それでは早速解いてみる。
(1) 摂氏温度を華氏温度に変換するメッソドcels_to_fahrを定義せよ。

cels_to_fahr.rb

def cels_to_fahr(n)
  (n * 9).fdiv(5) + 32
end

puts cels_to_fahr(37)
#実行結果: 98.6

一応、出力して確認した。
(2) (1)の逆、華氏温度を摂氏温度に変換するメソッドfahr_to_celsを定義せよ。また、摂氏1度~100度まで1刻みにし華氏温度との対応を出力せよ。

メソッドfahr_to_cels

fahr_to_cels.rb
def fahr_to_cels(n)
      5*(n-32).fdiv(9)
end

p fahr_to_cels(98)
#実行結果: 37.0

摂氏1度~100度まで1刻みにし華氏温度との対応

1to100.rb
def cels_to_fahr(n)
  (n * 9).fdiv(5) + 32
end

range=1..100
range.each do |i|
    print "#{i}℃ :"
    puts "#{cels_to_fahr(i)}°F"
end
#実行結果:割愛

(2)のfahr_to_celsメソッドは(1)で作ったメソッドの逆の式にすればよいだけでした。1~100°Cの華氏温度の対応は,rangeで範囲を決め対応して出力するようにしました。
(3) 1~6までのランダムな整数を返すメソッドdiceを定義せよ。

dice.rb
def dice
	return Random.rand(6)+1
end

puts dice
#実行結果:4(1~6ランダムに変わる)

ランダム関数を使うだけでそこまで難しくない。0~5までランダムに出してそれに1を足すことで、1~6を出すようにした。
(4) 10個のサイコロを振って出た目の合計を返すメソッドdice10を定義せよ。

dice10.rb
def dice10
	ans=0
	range=1..10
	range.each do |x|
		x = Random.rand(6)+1
		ans += x
	end
	return ans
end

puts dice10
#実行結果:38(10~60の範囲でランダムに変わる)

ansに作られたサイコロの目の数を順に足していくプログラムにした。
(5) 整数numが素数であるかどうか調べるメソッドprime?(num)を定義せよ。

prime.rb
def prime?(num)
	if num==0 or num ==1
	      puts "素数ではありません"
	      exit
	else
	end
	lis=Array.new
	range=1..num
	
	range.each do |i|
		if num % i ==0
			lis.push(i)
			if lis.length > 2
				puts "素数ではありません"
				exit
			end
		end
	end
	puts "素数です"
end

prime?(403)
#実行結果:素数ではありません

0,1には例外的に素数でないと処理させ、1~numまでの数字で割り切れた場合はansに1を足し、この値が3以上になったら素数では無いのでこれ以上処理を続けても意味は無いので処理を止めるようにしました。

最後に

今回はQiitaに初投稿の記事でした。今後、『たのしいRuby』の練習問題を解いてみたPart.2が出せるようにしたいと思います。

0
0
3

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?