آموزش برنامه نویسی جاوا - قسمت ۴۵: بررسی کلاس Math قسمت دوم
چهارشنبه 2 بهمن 1392 12:12 PM
در ادامه مبحث متدهای کلاس Math در این آموزش از پروژه ای که در آموزش چهل و چهارم ایجاد کردیم استفاده خواهیم کرد و متد های max و min و pow و sqrt و round را مورد بررسی قرار خواهیم داد.
اولین متدی که می خواهیم مورد بررسی قرار دهیم، متد max() است که مخفف واژه maximum به معنی "حداکثر" می باشد. در واقع این متد برخلاف متدهای پیش دو پارامتر را در خود جای می دهد که با یک کاما از یکدیگر جدا می شوند. وظیفه این متد آن است که از بین این دو عدد، عددی که بزرگ تر را گرفته و نمایش دهد. برای روشن شدن این مسئله کد فوق را به شکل زیر تغییر می دهیم:
همانطور که ملاحظه می شود، در کد فوق پس از استفاده از متد max دو پارامتر 12 و 22 داخل این متد قرار داده ایم که با استفاده از یک کاما از یکدیگر جدا شده اند. حال انتظار می رود پس از اجرای برنامه خود، عدد بزرگ تر (عدد 22) روی صفحه مانیتور نمایش داده شود:

همانطور که انتظار می رفت عدد 22 نمایش داده شد. حال ببینیم اگر یک عدد اعشاری داشته باشیم و یک عدد صحیح چه اتفاقی خواهد افتاد. برای این منظور کد فوق را به صورت زیر بازنویسی می کنیم:
برای روشن شده مسئله برنامه را یک بار اجرا می کنیم:

همانطور که انتظار می رفت باز هم عدد بزرگ تر نمایش داده شده اما چیز عجیبی که در مورد خروجی برنامه وجود دارد این است که عدد 22 که یک عدد صحیح بود به یک عدد اعشاری تبدیل شده است و عدد 22.0 در پنجره Console نمایش داده شده است. در پاسخ به این مسئله بایستی گفت که پارامترهای ورودی این متد می تواند هم از جنس متغیر int باشد و هم از جنس متغیر double ولی از آنجا که یکی از متغیرها در مثال فوق از جنس عدد صحیح است و عدد دیگر از جنس عدد اعشاری، علیرغم اینکه عدد 22 یک عدد صحیح است ولی به یک عدد اعشاری با همان مقدار قبلی تبدیل می شود. متدی که در مقابل متد max قرار دارد متد min است که مخفف واژه minimum به معنی "حداقل" است. وظیفه ای که این متد بر عهده دارد این است که از میان دو پارامتر ورودی، پارامتر کوچک تر را برگزیند. برای روشن شدن این مسئله، کد فوق را به شکل زیر بازنویسی می کنیم:
پس از اجرای کد فوق، می بایست عدد کوچکتر که در این مثال عدد 12.1 است در پنجره Console نمایش داده شود:

پس از اجرای برنامه خواهیم دید که عدد 12.1 نمایش داده می شود. یکی از معانی واژه power در زبان فارسی "توان" است. به طور مثال اگر بخواهیم بگوییم دو به توان سه بایستی در زبان انگلیسی گفت Two to the power of three . اکنون با دانستن این نکته می توانیم کاربرد متد pow() را حدس بزنیم. در حقیقت این متد می تواند دو پارامتر را در خود جای دهد به طوریکه پارامتر اول عددی است که می خواهیم به توان برسانیم و پارامتر دوم توان است(لازم به ذکر است که این دو پارامتر از یکدیگر بوسیله یک کاما جدا می شوند). اکنون با دانستن این نکته می توانیم کد فوق را به صورت زیر بازنویسی نماییم:
چنانچه بخواهیم کد فوق را تفسیر نماییم، بایستی بگوییم که پس از نوشتن نام کلاس Math یک نقطه قرار داده سپس مد توان تحت عنوان pow را نوشته و دو پارامتر ورودی را به صورت فوق داخل پرانتزها می نویسیم. در حقیقت عدد 2 به عنوان عددی است که می خواهد به توان عدد 3 برسد، به عبارت دیگر عدد 2 می بایست در عدد 2 ضرب شده و سپس حاصلضرب آن در عدد 2 مجدد ضرب گردد. اکنون برنامه را اجرا می کنیم:

همانطور که مشاهده می شود نتیجه 8.0 نمایش داده شده است(به عبارت دیگر حاصلضرب 2 در 2 می شود 4 و حاصلضرب 4 در 2 می شود 8). متدی دیگری که از کلاس Math می توان مورد استفاده قرار داد متدی است که جذر اعداد را به دست می آورد. در زبان فارسی واژه Square دارای معانی متعدی همچون "مربع، میدان" و غیره است اما در ریاضیات این واژه به معنی "مجذور" است. در زبان برنامه نویسی جاوا متدی که مجذور اعداد را به دست می آورد از مخفف این واژه و واژه Root به معنی "ریشه" بوده و به صورت sqrt نوشته می شود. به عبارت دیگر عبارت Square Root به معنی "جذر" در ریاضیات می باشد. اکنون پس از آشنایی با این متد می توانیم کد خود را به شکل زیر بازنویسی کنیم:
در کد فوق نام متد sqrt نوشته شده و سپس داخل پرانتز مرتبط با آن عدد 9 را نوشته ایم. در حقیقت علت انتخاب عدد 9 در این مثال این است که این عدد دارای یک مجذور رند می باشد. اکنون پس از اجرای برنامه خواهیم دید که جذر عدد 9 که معادل به 3 می باشد نمایش داده خواهد شد:

متد دیگر که در برنامه نویسی جاوا و اندروید بسیار کاربردی است، متد round() است. به طور خلاصه هر عددی که داخل پرانتز این متد قرار گیرد به عددی رند تبدیل خواهد شد اما نکته ای که در اینجا می بایست مد نظر قرار داده شود این است که اگر عددی همچون 21.3 وارد این متد شود، این عدد رو به پایین رند خواهد شد و عدد 21 به دست خواهد آمد. به طور کلی اگر خرده اعشاری این عدد کوچکتر از 5 باشد این عدد رو به پایین رند خواهد شد و اگر خرده اعشاری این عدد برابر با 5 و یا بزرگتر باشد(مثلا عدد 21.6 ) این عدد رو به بالا رند خواهد شد و عدد 22 به دست خواهد آمد. برای روشن شدن مطلب کد خود را به شکل زیر بازنویسی می کنیم:
همانطور که ملاحظه می شود عدد 12.3 برای این متد در نظر گرفته شده است و بر اساس توضیحات پیشین انتظار می رود که خروجی برنامه عدد 12 باشد. برای حصول اطمینان از این خروجی برنامه را یک بار اجرا می کنیم:

می بینیم که این عدد اعشاری رو به پایین رند شده و خروجی برنامه معادل با عدد 12 است. حال اگر عدد داخل این متد را به عدد 12.6 تغییر دهیم از آنجا که خرده اعشاری این عدد بزرگتر از 5 است، از این رو این عدد رو به بالا رند خواهد شد و خروجی برنامه عدد 13 را نشان خواهد داد. حال مجدد برنامه را به اعمال این تغییر اجرا می کنیم:

همانطور که گفته شد برنامه عدد 13 را نمایش می دهد.
مدیر تالار های: