استفاده عملی از اپراتورها در قالب پروژه ی محاسبه ی وزن خود روی سایر سیارات


سناریویی که در این آموزش قرار است بر آن اساس یک برنامه بنویسیم به این شکل است که می خواهیم وزن کنونی خود را که روی کره زمین قرار داریم را وارد برنامه کرده سپس ببینیم که وزن ما روی سیارات دیگری مثل مشتری و زحل چه قدر است (به خاطر داشته باشیم که در زبان انگلیسی معادل مشتری Jupiter و معادل زحل Saturn می باشد.) بر اساس روشی که پیش از این توضیح داده شد، یک پروژه جدید جاوا ایجاد کرده و یک کلاس با نام Operator در آن ایجاد می کنیم. پس از باز کردن فایل، کدی همچون کد زیر را مشاهده خواهیم کرد:

public class Operator {
    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    }
}

همانطور که در آموزش های پیشین توضیح داده شد، در زبان برنامه نویسی جاوا سه نوع کامنت وجود دارد که در کد بالا ما دو نوع از کامنت ها را مشاهده می کنیم. حال کلیه کامنت ها را حذف کرده و کد ما به شکل زیر در خواهد آمد:

public class Operator {
    public static void main(String[] args) {
    
    }
}

به خاطر داشته باشیم که برای حذف یک خط از کد می توانیم نشانگر موس خود را روی خطی از کد که می خواهیم حذف کنیم قرار داده سپس کلید Ctrl را هم زمان با دکمه E فشار دهیم (البته ممکن است که بسته به تنظیمات پیش فرض نسخه ای از اکلیپس که نصب نموده اید، برای این کار مجبور شوید از ترکیب کلیدهای دیگری استفاده نمایید.)

به خاطر داشته باشید
نکته ای که در همین ابتدای برنامه نویسی می بایست جزو عادات خود به عنوان یک برنامه نویس حرفه ای قرار دهیم این است که برای هر بخش از کد خود که می نویسیم یک کامنت قرار دهیم که در آینده دچار سردرگمی نشویم (روالی که در این سری از آموزش ها پیش گرفته شده، انتقال کامل مفاهیم با کمترین حجم مطلب ممکن است. از این رو فقط در موارد خیلی ضروری از کامنت ها استفاده خواهیم کرد.)

اگر علاقمندان به برنامه نویسی با زبان انگلیسی آشنایی نداشته باشند، می توانند هم کامنت های خود را به صورت فینگلیش بنویسند و هم به صورت فارسی بنویسند. فقط بایستی به خاطر داشته باشیم که اگر کامنت های خود را به صورت فارسی بنویسیم، حتماً می بایست در حین Save کردن فایل جاوای خود گزینه Save as UTF-8 را انتخاب نماییم. پس از نوشتن کامنت در مورد اولین خط از کد، می خواهیم اولین جمله را در بخش کنسول نمایش دهیم. به همین منظور طبق کد زیر عمل می کنیم:

public class Operator {
    public static void main(String[] args) {
        // این بخش از کد مربوط وزن من روی کره زمین است
        System.out.print("My weight on the Earth");
    }
}

از آنجا که خیلی از دوستان ممکن است دوست داشته باشند که از وزن خود در سیارات دیگر مطلع شوند، توصیه می کنیم که مقدار متغیر وزن روی کره زمین را وزن دقیق خودشان وارد نمایند. برای همین منظور یک متغیر از جنس double ایجاد می کنیم. علت این که متغیری از جنس int ایجاد نکردیم این است که ممکن است وزن برخی از ما دارای اعشار باشد که در این صورت حتماً نیاز داریم تا متغیری از جنس اعشاری را در نظر بگیریم. حال کد ما به صورت زیر خواهد بود:

public class Operator {
    public static void main(String[] args) {
        // این بخش از کد مربوط وزن من روی کره زمین است
        System.out.print("My weight on the Earth ");
        double myWeightOnEarth = 85.5;
        System.out.println(myWeightOnEarth);
    }
}

اولین دستور نوشته شده بعد از کامنت وظیفه دارد که جمله ی My weight on the Earth به معنی وزن من روی کره زمین را در کنسول به نمایش در آورد. متد ()print این وظیفه را دارا است که چیزی را روی صفحه نمایش نشان دهد (چیزی که در مورد این متد حائز اهمیت است این است که پس از نمایش دادن متن داخلش، برنامه به خط بعد نرفته و هر آنچه که بخواهد در پنجره کنسول به نمایش در آید در ادامه آن خط قرار خواهد گرفت.) در خط بعد ما اقدام به تعریف یک متغیر از جنس double کرده ایم که این قابلیت را دارا است که اعداد اعشاری را در خود ذخیره سازد.

پس از در نظر گرفتن نامی برای متغیر خود پس از علامت = عددی را به عنوان مقدار آن در نظر گرفته و علامت ; را در انتهای این دستور قرار می دهیم (به طور مثال، در اینجا وزن خود را 85.5 در نظر گرفته ایم.) در خط بعد مجدداً دستور System.out را نوشته اما این بار به جای متد ()print از متد ()println استفاده می کنیم و در نهایت یک علامت ; می گذاریم و نام متغیر خود را داخل آن می نویسیم تا از این طریق در بخش کنسول به نمایش در آید (در واقع فرق مابین کلمه print با کلمه println در این است که متد print متن ما را روی صفحه چاپ می کند اما خط را به اتمام نمی رساند و خروجی مابقی دستورات ما در بخش های بعدی را پس از خروجی های قبلی قرار می دهد اما این در حالی است که متد println همانند Enter در نرم افزار Word عمل می کند که جمله را نوشته و به خط بعدی می رود.)

علت این که ما در مورد اول از متد print استفاده کردیم این بود که می خواستیم مقدار عددی متغیر myWeightOnEarth بلافاصله پس از جمله My weight on the earth قرار گیرد. علت این هم که یک فاصله بعد از کلمه Earth قرار دادیم این بود که عدد 85.5 به واژه Earth نچسبد. حال چنانچه ما فرمان اجرا را از طریق منوی اصلی گزینه Run و مجدداً زیرشاخه Run یا کلید Fn + F5 صادر کنیم، در بخش کنسول نرم افزار اکلیپس جمله My weight on the earth 85.5 به نمایش در خواهد آورد.

در این بخش از برنامه نویسی می خواهیم وزن خود را در سیارات مشتری و زحل محاسبه نماییم. با یک سرچ ساده در اینترنت، میزان جاذبه دو سیاره دیگر را نسبت به کره زمین پیدا کرده که عبارتند از مشتری معادل با 2.54 و زحل معادل با 1.08 (لازم به ذکر است که این نوع محاسبه و اعداد ممکن است تا حدودی با واقعیت تفاوت داشته باشند. نکته ای که در این تمرین مد نظر ما است به کار گیری اپراتورها یا اعمال اصلی ریاضیاتی در زبان برنامه نویسی جاوا می باشد.) حال به صورت زیر کد های مرتبط با دو سیاره دیگر را می نویسیم:

public class Operator {
    public static void main(String[] args) {
        // این بخش از کد مربوط وزن من روی کره زمین است
        System.out.print("My weight on the Earth ");
        double myWeightOnEarth = 85.5;
        System.out.println(myWeightOnEarth);
        // این بخش از کد مربوط به وزن من روی سیاره مشتری است
        System.out.print("My weight on the Jupiter ");
        double myWeightOnJupiter = myWeightOnEarth * 2.54;
        System.out.println(myWeightOnJupiter);
        // این بخش از کد مربوط به وزن من روی سیاره زحل است
        System.out.print("My weight on the Saturn ");
        double myWeightOnSaturn = myWeightOnEarth * 1.08;
        System.out.println(myWeightOnSaturn);
    }
}

در بخش بعدی از کد خود یک کامنت قرار می دهیم تا متوجه شویم که کد مربوط به وزن ما روی سیاره مشتری در کجای برنامه قرار گرفته است. سپس همچون مراحل قبل عمل کرده اما این بار جمله My weight on the Jupiter به معنی وزن من روی سیاره مشتری را داخل علامت های " " می نویسیم.

همان طور که در کد فوق مشاهده می شود ما مقدار متغیر myWeightOnEarth را قبلاً ذخیره کرده ایم. حال می خواهیم مقدار متغیر مرتبط با مشتری را ایجاد کنیم برای این منظور متغیر ی از جنس double به نام myWeightOnJupiter ایجاد کرده و مقدار اولیه آن را نام متغیر myWeightOnEarth ضرب در عدد 2.54 می کنیم (در واقع نام این متغیر حاکی از عدد 85.5 است). اکنون وزن ما روی سیاره مشتری به دست آمده است و با قرار دادن نام متغیر مرتبط با مشتری در دستور ;()System.out.println می توانیم وزن خود را در کنسول نمایش دهیم. به همین روشن متغیری برای سیاره زحل ایجاد کرده به این شکل که همان طور که در کد فوق مشاهده می شود متغیری از جنس double به نام myWeightOnSaturn ایجاد کرده و مقدار اولیه آن را نام متغیر مرتبط با وزن ما روی کره زمین ضرب در عدد 1.08 قرار می دهیم و با قرار دادن نام متغیر مرتبط با زحل در دستور ;()System.out.println مقدار آن را در پنجره ی کنسول نمایش می دهیم.

پس از اجرای موفقیت آمیز برنامه، در بخش کنسول نتیجه زیر مشاهده خواهد شد(لازم به ذکر است چنانچه وزن شما 85.5 باشد، نتایج زیر را مشاهده خواهید کرد و در صورتی که وزن شما چیزی دیگری مثلاً 76 کیلو باشد، نتایج کاملاً متفاوت خواهند بود):

در آموزش آینده، به بررسی نحوه نام گذاری صحیح متغیرها خواهیم پرداخت.

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
کاربر میهمان
کاربر میهمان
با درود و خدا قوت فکر میکنم اشتباه جزئی که در این برنامه صورت گرفته این است که بعد از نمایش وزن روی زمین می بایست عدد تقسیم بر 9.8 (جاذبه زمین ) شود . و سپس خروجی ان برای محاسبه وزن روی سیارات دیگر ارسال گردد. البته این هیچ چیز از کیفیت اموزش های شما کم نمی کند ولی اگر کسی برای محاسبه دقیق خواست استفاده کنه اضافه کردن این خط کد به کارکرد صحیح برنامه کمک میکند. در نهایت با تشکر از کیفیت بسیار بالای مطالب در تمامی بخش ها
korosh5775
korosh5775
سلام شما درست میگین.جرم و وزن با هم متفاوته.اینجا ۸۵.۵ جرم روی زمین بود و باید ابتدا در ۹.۸ ضرب (اینکه شما گفتین تقسیم میشد اشتباهه در حقیقت باید ضرب بشه)میشد و وزن را روی زمین نشان میداد.
از آقای مرادی هم صمیمانه ممنونم.خیلی آموزشهای خوبی هست.
البته مقدمه ای بر شی گرایی یکم نامفهومه که اگه یه ویرایشی بهش بدن ممنون میشیم.

در پاسخ به

homefront242
homefront242
سلام دوست عزیز اشتباه از شماست ما ایرانیا به جرم میگیم وزن در صورتی که وزن مثال 80 کیلو باید 800 نوشته باشه

در پاسخ به

کاربر میهمان
کاربر میهمان
لطفا جواب من رو بدین
با تشکر
red fire
red fire
سلام و درود به اساتید محترم و با تشکر از توضیحات عالیتان

من یک مبتدی هستم و چند سوال اساسی دارم و امید وارم که اساتید گرامی پاسخ مرا بدهد :

1.ایا جاوا برای ساخت app است؟؟؟اگر اری برای چه نوع سیستم عاملی ؟؟؟
2.اگر برای ساخت app است چه نوع از ان را میتوان ساخت ؟؟؟ ایا برنامه هایی مثل برنامه اندروید "بازار" و یا برنامه های پخش mp3 mp4 را میتوان ساخت؟؟؟
3.چگونه میتوان کد را به برنامه تبدیل کرد؟؟؟
4.برای ظاهر بخشیدن به برنامه مثل اضافه کردن background و style باید چه کرد ؟؟؟

منتظر جواب شما بزرگواران هستم
با تشکر
کاربر میهمان
کاربر میهمان
داخل متد اصلی یک متد جدید ایجاد کرده ام اما ارور زیررا میدهد
illegal start of expression .. علت چی هست؟

علت چی هست
کاربر میهمان
کاربر میهمان
درجه یک :)
hamid7394
hamid7394
سلام.بسیار عالی نوشتین.
فقط نمیدونم چرا خط ها ی دوم وسوم پشت سر هم قرار میگیرن با اینکه مثل شما نوشتم.
M.reza Nasiri
M.reza Nasiri
بسیار بسیار عالــــــی
hamid_r_9750
hamid_r_9750
خیلی عالی بود.قبل از اینکه آموزش رو بخونم خودم سعی کردم بنویسمش.و راحت نوشتمش.این نشون میده چقد آموزشتون قویه.
Mohsen.A
Mohsen.A
سلام
در هنگام run برنامه به جای اعداد وارد شده متن نوشته را در جواب می نویسد
مثلا به جای My weight on the earth 85
My weight on the earth myweightonearth چاپ می شود.
مشکل چیه؟؟؟
ممنون از سایت عالیتون
ُSoroush
ُSoroush
سلام دوست عزیز
چیزی که شما نوشتید:
"myWeightOnEarth"

اشتباه شما "" این ها هستن،حذفشون کنید درست میشه
یعنی به این صورت:
myWeightOnEarth

در پاسخ به

ُSoroush
ُSoroush
سلام دوست عزیز
کد نوشته شده توسط شما دقیقا به این صورت هست ;

در پاسخ به

کاربر میهمان
کاربر میهمان
سلام
یه سوال
پس چرا 217.1700000002؟
عیسی پور
عیسی پور

اینکه مطالب قبلی رو تو مطالب پیش رو تکرار میکنید خیلی خوبه و ملکه ذهن میشه
موفق و پایدار باشید
کاربر میهمان
کاربر میهمان
بسیار عالی و ساده
کاربر میهمان
کاربر میهمان
تشکر