ماژول Math

در Ruby، از ماژول math برای انجام محاسبات ریاضی استفاده می‌شود. از متدهای این ماژول می‌توان برای گرفتن جذر یا محاسبه لگاریتم و … استفاده کرد. برای استفاده از متدهای این ماژول باید به صورت زیر عمل کنید:

Math::methodName

همانطور کد در کد بالا مشاهده می کنید، ابتدا کلاس Math سپس علامت :: و در نهایت نام متد مورد نظر را می نویسید. در جدول زیر لیست برخی از متدهای پر کاربرد این ماژول آمده است :

متد توضیح
cos() کوسینوس یک زاویه مشخص را بر می‌گرداند.
log10() لگاریتم یک عدد در مبنای 10 را بر می‌گرداند.
sin() سینوس یک زاویه مشخص را بر می‌گرداند.
sqrt() جذر یک عدد را بر می‌گرداند.
tan() تانژانت یک زاویه را بر می‌گرداند.

حال فرض کنید می خواهیم جذر عدد 9 را محاسبه کنیم. این کار را می توانیم با استفاده از متد sqrt به صورت زیر انجام دهیم:

puts Math::sqrt(9)
3.0

همانطور که مشاهده می کنید این متد یک آرگومان می گیرد که همان عددی است که می خواهیم جذر ان را محاسبه کنیم. خروجی این تابع هم یک عدد از نوع float است.

 

Math::PI

ماژول Math دارای ثابت هایی هم هست که یکی از آنها ثابت PI می باشد. از ثابت PI که مقدار 3.141592653589793 را در خود ذخیره دارد، زمانی که بخواهید محیط یا مساحت یک دایره را پیدا کنید، استفاده می‌شود. برای یافتن محیط یک دایره به صورت زیر عمل می‌شود که در آن radius شعاع می‌باشد :

area = Math::PI * (radius * radius)

در ادامه در مورد متدهایی توضیح می دهیم که جزء ماژول Math نیستند، ولی چون هنگام کار با اعداد کاربرد فراوانی دارند، بهتر است در همین درس آنها را توضیح دهیم.

گرد کردن اعداد

می‌توان با استفاده از ceil() و floor() یک عدد با قسمت اعشار را گرد کرد. متد ceil() یک عدد از نوع float را گرفته و یک مقدار از نوع int گرد شده را بر می‌گرداند. نتیجه این متد بزرگتر یا مساوی آرگومان دریافت شده است. floor یک عدد float را گرد کرده و نتیجه کوچکتر یا مساوی آرگومان گرفته شده است. برای روشن شدن مطلب به مثال زیر توجه کنید :

number = 34.567

puts "number.ceil(#{number})  = #{number.ceil}"
puts "number.floor(#{number}) = #{number.floor}"
number.ceil(34.567) = 35
number.floor(34.567) = 34

اگر بخواهید یک عدد به عددی با قسمت اعشاری مشخص گرد کنید، می‌توانید از متد ()round استفاده کنید :

number = 3.31674

puts number.round
puts number.round(1)
puts number.round(2)
puts number.round(3)
3
3.3
3.32
3.317

اعداد 1، 2 و 3، تعداد ارقام بعد از ممیز را مشخص می کنند.

به توان رساندن یک عدد

برای به توان رساندن یک عدد از متد pow() استفاده می‌شود. این متد یک آرگومان قبول کرده و عدد مورد نظر ما را به توان این آرگومان می رساند. به کد زیر توجه کنید :

for number in 1..10
  puts "2^#{number} = #{2.pow(number)}"
end
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
2^9 = 512
2^10 = 1024

در کد بالا، ما از متد ()pow خواسته ایم که عدد 2 را به توان اعداد 1 تا 10 برساند.

قدر مطلق یک عدد

برای محاسبه قدر مطلق یک عدد از متد abs() استفاده می‌شود. این متد یک عدد به عنوان آرگومان قبول می‌کند که همان عددی است که می‌خواهیم قدر مطلق آن را محاسبه کنیم:

number = -5

puts number.abs
5

کد بالا را به صورت زیر هم می توانیم بنویسیم:

puts -5.abs

یافتن بزرگترین و کوچکترین عدد

از متدهای min و max برای یافتن بزرگترین و کوچکترین عدد از بین چندین عدد می‌باشد. هر دو متد آرگومان از نوع آرایه قبول می‌کنند.

numbers = [1, 5, 7, 3, 6, 10]

puts numbers.min
puts numbers.max
1
10