هنر برنامه نویسی

چرا و چطور برنامه نویس خوبی باشیم ؟!

هنر برنامه نویسی

چرا و چطور برنامه نویس خوبی باشیم ؟!

۱۲ مطلب با موضوع «برنامه نویسی :: جاوا :: آموزش» ثبت شده است

برنامه ساده محاسبه

فهیم آیت | يكشنبه, ۲۴ ارديبهشت ۱۳۹۱، ۰۹:۱۰ ب.ظ | ۰ نظر

این جلسه  ، نوبت رسیده به محاسبات.

هدف اینه که یک ماشین حساب ساده بنویسیم که به این صورت کار می کنه :

از کنسول (همون صفحه سیاه cmd که جلسه صفرم در مورد صحبت کردیم) دو تا عدد بخونه ، جمع بزنه و توی همون کنسول نمایش بده.

 

قبل از اینکه این درس رو شروع کنیم، فرضم بر اینه که در مورد متغیر ها اطلاعات کافی دارید.  اگر نه ، درس متغیر ها و نام گذاری اونها رو حتما بخونید .

 

برای این برنامه یک کلاس می نویسیم به نام SimpleConsoleCalculator. دقت داشته باشد که این کلاس رو توی یک فایل دقیقا با همین نام (بزرگ و کوچک بودن حروف رو دقت کنید) با پسوند java ذخیره می کنیم . مانند SimpleConsoleCalculator.java .

خیلی خوبه که سعی کنید از الان با یکی از IDE های متداول جاوا مثل NetBeans یا Eclipse کار کنید. هم راحتتر هستید و هم کار کردن با IDE ها رو یاد می گیرید..

 

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

 

 

import java.util.Scanner;


public class SimpleConsoleCalculator {


 public void run(){

  Scanner scanner = new Scanner(System.in) ;
  System.out.println("Please enter an Integer number");
  int firstNumber = scanner.nextInt();
  System.out.println("Please enter another Integer number");

  int secondNumber = scanner.nextInt() ;
  int sum = firstNumber + secondNumber ;

  System.out.println("Sum of " + firstNumber + " and " + secondNumber + " is " + sum);
 }


 public static void main(String[] args){
  SimpleConsoleCalculator calculator = new SimpleConsoleCalculator();
  calculator.run() ;
 }
}

در صورت تمایل می توانید فایل برنامه را از اینجا دانلود کنید.

اجرای این کلاس نیز مانند کلاس درس قبل ساده خواهد بود :

 

به زودی نحوه دانلود و استفاده ابتدایی از Netbeans و Eclipse رو هم اضافه می کنم که کارتون راحتتر باشه.
 
خب می رسیم به این که این کلاس چه می کنه ؟
قبل از همه میریم سراغ متد main ، توی جلسه قبلی توضیح دادم که این متد ، متدی هست که دستور java اون رو اجرا می کنه. یعنی وقتی برنامه رو اجرا می کنید ، این متد اجرا میشه .
خط اول :
SimpleConsoleCalculator calculator = new SimpleConsoleCalculator();
قبل از اینکه این خط رو توضیح بدم ، بد نیست اگه با دستور انتساب در جاوا آشنا نیستید ، مبحث انتساب در جاوا رو مطالعه کنید.
 
در این خط یک متغیر از جنس SimpleConsoleCalculator به نام calculator ساختیم ، یک شی از همین جنس ساختیم و متغیر calculator رو به اون شی نسبت دادیم.
 
در خط بعد متد run شی جدیدی که ساختیم رو اجرا می کنیم. ( اگر با مفاهیم متد ها آشنا نیستید ، مطلب مربوط به متد ها رو مطالعه کنید !)
 
  calculator.run() ;
 
 
خب ، می رسیم به اصل داستان : متد run
 
 public void run(){

  Scanner scanner = new Scanner(System.in) ;
  System.out.println("Please enter an Integer number");
  int firstNumber = scanner.nextInt();
  System.out.println("Please enter another Integer number");

  int secondNumber = scanner.nextInt() ;
  int sum = firstNumber + secondNumber ;

  System.out.println("Sum of " + firstNumber + " and " + secondNumber + " is " + sum);
 }
خط اول تعریف متده :
 public void run()
تعریف این متد که خیلی ساده است. صرفا گفتیم متدی به نام run داریم که نه ورودی داره نه خروجی
 
خط بعد یه شی از جنس Scanner  ساختیم و یک چیزی به نام System.in رو به اون دادیم :
  Scanner scanner = new Scanner(System.in) ;

اینکه Scanner دقیقا چطور کار میکنه و یا System.in چیه رو توی درس stream ها ،  مفصل توضیح می دم. اما فعلا در همین حد بدونید که اگه scanner رو به این صورت تعریف کنید ، می تونید با کمک اون از console (همون پنجره سیاه معروف) اطلاعاتی که کاربر وارد می کنه رو بخونید. البته این رو هم بگم که اگه از IDE های پیشرفته ای مثل Netbeans یا Eclipse استفاده می کنید ، به جای اون پنجره سیاه، از پنجره ای که خود IDE در اختیارتون میگذاره (معمولا به نام console یا output) استفاده می کنید.

خط بعدی هم خیلی ساده است.

  System.out.println("Please enter an Integer number");

یک شی خیلی بدرد بخور داریم به نام System.out ، این شی به شما اجازه می ده با استفاده از متد print و println هر چی دوست دارید تو console بنویسید. اینجا ما گفتیم بنویس

"Please enter an Integer number"

خیلی خیلی خیلی خیلی مهم ! دقت داشته باشید

به علامت های نقل قول (")  که قبل و بعد از جمله (لطفا یک عدد صحیح وارد کنید) اومدن توجه کنید. این علامت ها به این معنی هستند که چیزی که بین اینهاست ، یک دستور جاوا یا نام متغیر نیست. صرفا یک رشته حروف هستند که قرار نیست اجرا شوند.

در این مثال ما که گفتیم

  System.out.println("Please enter an Integer number");

به این معنی هست که عینا این عبارت رو توی console چاپ کن. اگه علامت های نقل قول رو نگذارید ، کامپایلر فکر می کنه که جمله Please enter an integer number یک دستوره و چون نمی تونه معنی اون رو بفهمه error می ده.

 

دستور بعدی هم ساده است :

 int firstNumber = scanner.nextInt();

به scanner گفتیم یک عدد صحیح از console بخون و اون رو توی متغیر firstNumber که همین الان معرفی کردیم بریز.

سوال : اگه کاربر به جای اینکه یک عدد صحیح وارد کنه ، چیز دیگه ای بنویسه ، مثلا بنویسه Salam ، چه اتفاقی می افته ؟

جواب این سوال رو در مباحث Exception Handling به طور مفصل بررسی خواهیم کرد. اما الان به طور خلاصه بدونید که برنامه error خواهد داد و اجرای برنامه متوقف می شه.

سه خط بعدی هم که شبیه به خطوط قبلی هستند و نیازی به توضیح ندارند :

 System.out.println("Please enter another Integer number");
 int secondNumber = scanner.nextInt() ;
 int sum = firstNumber + secondNumber ;

و اما آخرین خط برنامه که یکمی گیج کننده به نظر میاد! :

System.out.println("Sum of " + firstNumber + " and " + secondNumber + " is " + sum);

چیزی که مشخصه اینه که وقتی گفتیم System.out.println یعنی می خواهیم یه چیزی رو توی console نشون بدیم :

"Sum of " + firstNumber + " and " + secondNumber + " is " + sum

اما این علامت های + این وسط چه نقشی دارند ؟  ما توی این خط داریم یک string می سازیم که تشکیل شده از چند عبارت مختلف که این عبارات رو با عملگر + به هم اضافه می کنیم.دقت داشته باشید که اون بخش هایی از عبارت که میان علامت نقل قول قرار گرفته اند ، عینا توی خروجی دیده می شوند، اما بقیه ، متغیر ها یا دستوراتی هستند که مقدارشون جایگزین می شه.

مثلا اگه firstNumber یک متغیر عددی باشه و مقدار ۱۴ توی اون باشه ، عبارت

System.out.println("Sum of " + firstNumber);

این عبارت رو در console نمایش خواهد داد :

Sum of 14

 

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

  • فهیم آیت