0

آموزش برنامه نویسی جاوا

 
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش برنامه نویسی جاوا - قسمت ۴۵: بررسی کلاس Math قسمت دوم
چهارشنبه 2 بهمن 1392  12:12 PM


در ادامه مبحث متدهای کلاس Math در این آموزش از پروژه ای که در آموزش چهل و چهارم ایجاد کردیم استفاده خواهیم کرد و متد های max و min و pow و sqrt و round را مورد بررسی قرار خواهیم داد.

اولین متدی که می خواهیم مورد بررسی قرار دهیم، متد max() است که مخفف واژه maximum به معنی "حداکثر" می باشد. در واقع این متد برخلاف متدهای پیش دو پارامتر را در خود جای می دهد که با یک کاما از یکدیگر جدا می شوند. وظیفه این متد آن است که از بین این دو عدد، عددی که بزرگ تر را گرفته و نمایش دهد. برای روشن شدن این مسئله کد فوق را به شکل زیر تغییر می دهیم:

  1. public class MathClass {
  2. public static void main(String[] args) {
  3. System.out.println(Math.max(12, 22));
  4. }
  5. }

همانطور که ملاحظه می شود، در کد فوق پس از استفاده از متد max دو پارامتر 12 و 22 داخل این متد قرار داده ایم که با استفاده از یک کاما از یکدیگر جدا شده اند. حال انتظار می رود پس از اجرای برنامه خود، عدد بزرگ تر (عدد 22) روی صفحه مانیتور نمایش داده شود:

920704-j45-IMAGE1.jpg

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

  1. public class MathClass {
  2. public static void main(String[] args) {
  3. System.out.println(Math.max(12.1, 22));
  4. }
  5. }

برای روشن شده مسئله برنامه را یک بار اجرا می کنیم:

920704-j45-IMAGE2.jpg

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

  1. public class MathClass {
  2. public static void main(String[] args) {
  3. System.out.println(Math.min(12.1, 22));
  4. }
  5. }

پس از اجرای کد فوق، می بایست عدد کوچکتر که در این مثال عدد 12.1 است در پنجره Console نمایش داده شود:

920704-j45-IMAGE3.jpg

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

  1. public class MathClass {
  2. public static void main(String[] args) {
  3. System.out.println(Math.pow(2, 3));
  4. }
  5. }

چنانچه بخواهیم کد فوق را تفسیر نماییم، بایستی بگوییم که پس از نوشتن نام کلاس Math یک نقطه قرار داده سپس مد توان تحت عنوان pow را نوشته و دو پارامتر ورودی را به صورت فوق داخل پرانتزها می نویسیم. در حقیقت عدد 2 به عنوان عددی است که می خواهد به توان عدد 3 برسد، به عبارت دیگر عدد 2 می بایست در عدد 2 ضرب شده و سپس حاصلضرب آن در عدد 2 مجدد ضرب گردد. اکنون برنامه را اجرا می کنیم:

920704-j45-IMAGE4.jpg

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

  1. public class MathClass {
  2. public static void main(String[] args) {
  3. System.out.println(Math.sqrt(9));
  4. }
  5. }

در کد فوق نام متد sqrt نوشته شده و سپس داخل پرانتز مرتبط با آن عدد 9 را نوشته ایم. در حقیقت علت انتخاب عدد 9 در این مثال این است که این عدد دارای یک مجذور رند می باشد. اکنون پس از اجرای برنامه خواهیم دید که جذر عدد 9 که معادل به 3 می باشد نمایش داده خواهد شد:

920704-j45-IMAGE5.jpg

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

  1. public class MathClass {
  2. public static void main(String[] args) {
  3. System.out.println(Math.round(12.3));
  4. }
  5. }

همانطور که ملاحظه می شود عدد 12.3 برای این متد در نظر گرفته شده است و بر اساس توضیحات پیشین انتظار می رود که خروجی برنامه عدد 12 باشد. برای حصول اطمینان از این خروجی برنامه را یک بار اجرا می کنیم:

920704-j45-IMAGE6.jpg

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

920704-j45-IMAGE7.jpg

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

تشکرات از این پست
دسترسی سریع به انجمن ها