جلسه سیزدهم - کلاس Math
در جلسات قبل با کتابخانه ها ، پکیج ها و کلاس های آماده جاوا و چگونگی استفاده از آن ها آشنا شدیم .
یاد گرفتیم که جاوا سری کلاس ها و دستورات اماده را برای ما فراهم کرده که راحت تر کد بزنیم.
در این جلسه قصد داریم یکی دیگر از این کلاس های آماده را بررسی کنیم.
ما گاهی در برنامه نویسی نیاز عملیات محاسبات ریاضی نظیر توان ، قدر مطلق ، عملیات مثلثاتی نظیر سینوس , کسینوس ، لگاریتم و..... داریم.خب باید چکار کنیم؟!!!! یعنی خودمون هر عملیات ریاضی را که خواستیم باید دستی کدشون رو بزنیم؟؟؟؟؟؟؟!!!!!!!!
پاسخ: جاوا زحمت این عملیات ریاضی را کشیده و بصورت آماده در کلاسی به نام Math برامون فراهم کرده است.
کلاس Math درون پکیج java.lang قرار دارد که شامل متدهایی است که عملیات عددی نظیر لگاریتم و توان و.... انجام می دهند.
برای استفاده از متدهای کلاس Math کافیست پکیج آن را درون سورس کد، بالای کلاس خودمون به اصلاح import کنیم:
import java.lang.Math; |
💡 متدهای درون کلاس Math همگی استاتیک هستند.
همان طور که میدونید برای استفاده از ویژگی و رفتار های یک کلاس باید از ان شی ساخت ، در یک صورت نیاز به شی ساختن نیست و مستقیم می توانیم به متغیرها و متدهای کلاس دسرسی پیدا کنیم و آن این هست که متغیر ها و رفتار های کلاس استاتیک باشند.
پس از آنجایی که کلاس Math استاتیک هست دیگر برای صدا زدن متدهای آن نیاز به شی ساختن از آن نیست .
مثال:در این مثال چون متدهای کلاس Math استاتیک هستند بدون شی ساختن از آن و تنها با بکار بردن مستقیم نام کلاس با حروف بزرگ و نقطه (.) و اسم متد مورد نظر می توان متد های آن را صدا زد.
✔ در این مثال متد pow دو پارامتر ورودی می گیرد، مقدار اول به توان مقدار دوم برده می شود .یعنی 2 به توان 4 که جواب 16 می شود.
Math.pow(2, 4) |
مثال: در این مثال مقدار عدد 2 به توان 4 در خروجی چاپ می شود:
package tutorial; import java.lang.Math; public class Power { public static void main(String[] args) { System.out.println(Math.pow(2, 4)); } } |
16.0 |
✔ دلیل ممیز صفر کنار 16 این هست که متدهای درون کلاس Math از نوع اعشاری( double ) هستند.
✔ اگه دوست ندارید که عدد 16 بصورت 16.0 نمایش داده شود یعنی تمایل دارید که بصورت صحیح نمایش داده شود کافیست عدد اعشار را به عدد صحیح تبدیل کنید!!!! به این کار یعنی تبدیل یک نوع به نوع دیگر را به اصلاح عمل cast کردن میگویند!!! اصلا نگران نباشید زیادم سخت نگیرید یک جلسه مفصل در مورد تبدیل نوع ها و عمل cast صحبت خواهیم کرد اینجا هم یک مقدمه چینی بود کلا فراموشش کنید :-)
✔ بخاطر این که سردرگم نشیم مبحث cast کردن رو میبندیم میریم سراغ ادامه موضوع کلاس Math
در زیر متدهای پر کاربرد عملیات ریاضی درون کلاس Math جمع آوری شده است:
متدهای کلاس Math همراه با توصیف:
static double abs(double a) |
✔ این متد قدر مطلق یک عدد را محاسبه و برمیگرداند.
✔ همان طور که مشاهده میکنید این متد از نوع اعشاری double میباشد و برخلاف متد های از نوع void یک مقدار را برمی گرداند نگران نباشید یک جلسه کاملا در مورد متدها بحث خواهیم کرد.
✔ یک پارامتر یا متغیر محلی به عنوان ورودی میگیرد اگر پارامتر مثبت بود مقدار مثبت بر می گرداند اگر منفی بود مقدار مثبت بر می گرداند اگر صفر یا صفر منفی بود صفر مثبت بر می گرداند اگر بی نهایت منفی بود بی نهایت مثبت بر میگرداند.
مثال:
package tutorial; public class MathDemo { public static void main(String[] args) { // get some doubles to find their absolute values |
خروجی:
Math.abs(4876.1874)=4876.1874 Math.abs(-0.0)=0.0 Math.abs(-9999.555d)=9999.555 Math.abs(-15)=15 |
✔ پارامتر ورودی متد abs اعشاری هست اما ما بهش عدد صحیح هم دادیم جواب داد!! دلیلش این هست که متد abs در کلاس Math از نوع های متفاوتی نظیر int,double,float,long می باشد!!!!
static float abs(float a) static int abs(int a) static long abs(long a) |
این رو بدون که با متد abs علاوه بر اعداد اعشاری میشه قدر مطلق اعداد صحیح را هم به دست آورد دیگه نیاز به فلسفه بافی نیست 😊😊
static double acos(double a) |
✔ این متد arc cosine (کسینوس معکوس) یک عدد را برمیگرداند.
💡 نکته:برای به دست اوردن عدد پی (π) در جاوا از دستور زیر استفاده میکنیم:
Math.PI |
مثال:
package tutorial; public class MathDemo { public static void main(String[] args) { // get a variable x which is equal to PI/2 // convert x to radians // get the arc cosine of x |
خروجی:
Math.acos(0.027415567780803774)=1.5433773235341761 |
توضیحات:
double x = Math.PI / 2; |
✔ عدد π بر 2 تقسیم شده است.چون جواب یک عدد اعشاری هست پس x از نوع اعشاری تعریف میکنیم.
x = Math.toRadians(x); |
✔ در محاسبات مثلثاتی اعداد باید بر حسب رادیان باشند و با استفاده از این متد عددمون را به رادیان تبدیل کردیم.
System.out.println("Math.acos(" + x + ")=" + Math.acos(x)); |
✔ در پایان مقدار کسینوس معکوس عدد x را به دست آوردیم.
static double asin(double a) |
✔ سینوس معکوس یک عدد که بصورت رادیان می باشد بر میگرداند.
✔ محدوده زاویه ای که برمیگرداند بین π/2 تا π/2 – می باشد.
مثال:
package tutorial; import java.lang.*; public class MathDemo { // get a variable x which is equal to PI/2 // convert x to radians // get the arc sine of x |
خروجی:
Math.asin(0.027415567780803774)=0.02741900326072046 |
توضیحات:
static double atan(double a) |
✔ تانژانت معکوس یک عدد که بصورت رادیان می باشد بر میگرداند.
✔ محدوده زاویه ای که برمیگرداند بین π/2 تا π/2 – می باشد.
مثال:
package tutorial; import java.lang.*; public class MathDemo { public static void main(String[] args) { // get a variable x which is equal to PI/2 // convert x to radians // get the arc tangent of x |
خروجی:
Math.atan(0.027415567780803774)0.0274087022410345 |
توضیحات:
static double cbrt(double a) |
✔ ریشه مکعب (توان 3) عدد را بر می گرداند. مثلا ریشه توان 3 عدد 125 برابر با 5 یا ریشه مکعب عدد 27 برابر 3 می باشد.
💡 نکته:cbrt(-x) == -cbrt(x)
💠 همان طور که می دانید توان 3 عدد منفی را مثبت نمی کند پس ریشه توان 3 عدد 125- می شود 5-
مثال:
package tutorial; import java.lang.*; public class MathDemo { public static void main(String[] args) { // get two double numbers // print the cube roots of three numbers } |
خروجی:
Math.cbrt(125.0)=5.0 Math.cbrt(10.0)=2.154434690031884 Math.cbrt(-27)=-3.0 |
سایر متدهای کلاس Math به شرح زیر می باشد:
static double cos(double a) |
💢 این متد کسینوس یک عدد را برمیگرداند.
static double cosh(double x) |
💢 کسیونس هایپربولیک عدد را بر می گرداند
static double log(double a) |
💢 لگاریتم عدد بر مبنای e را بر می گرداند.
static double log10(double a) |
💢 لگاریتم عدد بر مبنای 10 را بر می گرداند.
static double max(double a, double b) |
💢 ماگزیمم دو عدد را مشخص و بر میگرداند
static double min(double a, double b) |
💢 مینیمم دو عدد را مشخص و بر میگرداند
static double pow(double a, double b) |
💢 مقدار عدد اول به توان عدد دوم را بر میگرداند. a^b
static double random() |
💢تولید اعداد تصادفی،بصورت رندم یا تصادفی به ما عدد می دهد.
💢 اعداد تولیدی اعشاری و در بازه 0.0 تا کمتر از 1.0 می باشد.
☑ در مورد تولید عدد تصادفی در بازه دلخواه در یک جلسه بهش مفصل می پردازیم.
مثال:
package tutorial; import java.lang.*; public class MathDemo { public static void main(String[] args) { // get two random double numbers // print the numbers and print the higher one |
خروجی:
Random number 1:0.5171881476656942 Random number 2:0.22391213165734392 Highest number:0.5171881476656942 |
توضیحات:
static double sqrt(double a) |
✔ جذر عدد مورد نظر را به ما می دهد a√
static double tan(double a) |
✔ تانژانت عدد مورد نظر را بر می گرداند tan a
کلاس Math هنوز هم متد داره که ما در اینجا پر کاربردترین آنها را بررسی کردیم.
💥 تا می توانید مثال و تمرین حل کنید خیلی برای یادگیری جواب میده، تئوری کار کردن را رها کنید مستقیم برید تو گود مطمئن باشید دانش هم بعدش میاد.آرزوی موفقیت 😊😊😊
پیروز و موفق باشید
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)
لینک دانلود
نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
سایت جاواپرو با هدف تولید محتوای آموزشی با کیفیت رایگان در زمینه برنامه نویسی جاوا و اندروید فعالیت خود را در سال 1395 شروع کرد.امیدواریم بتوانیم دامنه گسترده تری از موضوعات پر نیاز در زمینه برنامه نویسی جاوا و اندروید را البته با حمایت شما پوشش دهیم.
دفتر مرکزی:بوشهر-برازجان-خیابان ماحوزی-سه راه اعتصامی
تلفن تماس: 09301904690